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
![Click image for larger version
Name: dk.PNG
Views: 1
Size: 47.5 KB
ID: 1420272](filedata/fetch?id=1420272&d=1389020217)
![Click image for larger version
Name: dk2.PNG
Views: 1
Size: 56.8 KB
ID: 1420273](filedata/fetch?id=1420273&d=1389020230)
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
![Click image for larger version
Name: dl.PNG
Views: 1
Size: 20.1 KB
ID: 1420274](filedata/fetch?id=1420274&d=1389020381)
code cho mô phỏng
Mình dùng codevision avr !
Mong ae góp ý !
![41](http://dientuvietnam.net/forums/images/smilies/41.gif)
![41](http://dientuvietnam.net/forums/images/smilies/41.gif)
Nhưng mình còn thiếu mạch điều khiển động cơ nữa
![18](http://dientuvietnam.net/forums/images/smilies/18.gif)
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 ý !
Comment