Trường mình vừa thi xong nên có thời gian rảnh nên mình định làm 1 con xe oto nho nhỏ để chơi cho hết tết
, mình đã làm xong phần mạch điều khiển dùng atmega8 , đã làm ra mạch in và chạy ngon


Nhưng mình còn thiếu mạch điều khiển động cơ nữa
Do mình dùng nguồn Pin nên mình định dùng L298 để đk động cơ , mạch mô phỏng như thế này

code cho mô phỏng
Mình dùng codevision avr !
Mong ae góp ý !
, mình đã làm xong phần mạch điều khiển dùng atmega8 , đã làm ra mạch in và chạy ngon
Nhưng mình còn thiếu mạch điều khiển động cơ nữa
Do mình dùng nguồn Pin nên mình định dùng L298 để đk động cơ , mạch mô phỏng như thế này
code cho mô phỏng
Code:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 6/14/2013
Author : NeVaDa
Company :
Comments:
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
#include <alcd.h>
#define dir1 PORTB.0
#define dir2 PORTB.3
#define tien 1
#define lui 0
//-------------------PWM-------------------------//
void pwm1(unsigned int tocdo_r)
{
OCR1AH=tocdo_r/256;
OCR1AL=tocdo_r%256;
}
void pwm2(unsigned int tocdo_l)
{
OCR1BH=tocdo_l/256;
OCR1BL=tocdo_l/256;
}
//--------------dk tren tung banh--------------//
void banhphai(unsigned int tocdo_r,unsigned char chieu)
{
pwm1(tocdo_r);
dir1 = chieu;
}
void banhtrai(unsigned int tocdo_l,unsigned char chieu)
{
pwm2(tocdo_l);
dir2 = chieu;
}
void stopdc()
{
pwm1(0);
pwm2(0);
PORTB.3=PORTB.4=0;
}
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xF3;
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
TCCR1A=0xA2;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
//------------------TAN SO 1KHZ---------------------//
ICR1H=1000/256;
ICR1L=1000%256;
// Alphanumeric LCD initialization
// Characters/line: 16
lcd_init(16);
while (1)
{
banhphai(800,tien);
delay_ms(2000);
banhphai(1000,lui);
delay_ms(2000);
}
}
Mong ae góp ý !
có gì mình trao đổi thêm được ko ^^

Comment