全國熱線電話:

0519-8918 1758
產(chǎn)品中心PRODUCT SHOW
聯(lián)系我們CONTACT US

    聯(lián)系人:聶經(jīng)理

    手機:18605199068  18602586200

    電話:0519-89181758  83700750  

    Q Q:710285815

    郵箱:18605199068@126.com

    地址:江蘇省常州市武進區(qū)大通西路200號。

直流無刷電機和無刷直流電機信息智能網(wǎng)

智能小車的直流電機控制
2022-06-20

智能小車的直流電機控制【實驗?zāi)康摹苛私庖詥纹瑱C為核心的直流電機控制系統(tǒng)掌握此系統(tǒng)中直流電機驅(qū)動與調(diào)速原理熟悉ICCAVR 軟件編譯環(huán)境,會編寫控制程序【實驗器材】智能小車一部,下載線一根【實驗原理】直流電機驅(qū)動控制系統(tǒng)示意圖: 在本實驗中所分析的是以單片機ATMEGA8515L 為核心的直流電機控制系統(tǒng)。ATMEGA8515L 芯片的引腳圖如下: 功放驅(qū)動電路采用基于雙極性H-橋型脈寬調(diào)整方式PWM 的集成電路L293D。L293D是單塊集成電路,高電壓,高電流,四通道驅(qū)動,設(shè)計用來接受DTL 或者TTL 邏輯電平,驅(qū)動感性負載(比如 繼電器,直流和步近馬達),和開關(guān)電源晶體管。其引腳圖如下: 口作為單片機控制指令的輸出,連接到驅(qū)動電路中L293D 的相應(yīng)管腳上。其真值表如下: 對于電機的轉(zhuǎn)速調(diào)整,我們是采用脈寬調(diào)制(PWM)辦法,控制電機的時候,電源并非連續(xù)地向電機供電,而是在一個特定的頻率下以方波脈沖的形式提供電能。不同占空比的方波信號能對電機起到調(diào)速作用,這是因為電機實際上是一個大電感,它有阻礙輸入電流和電壓突變的能力,因此脈沖輸入信號被平均分配到作用時間上,這樣,改變在始能端PE2 和PD5 上輸入方波的占空比就能改變加在電機兩端的電壓大小,從而改變了轉(zhuǎn)速。此實驗中用微處理機來實現(xiàn)脈寬調(diào)制,通常的方法有兩種:(1)用軟件方式來實現(xiàn),即通過執(zhí)行軟件延時循環(huán)程序交替改變端口某個二進制位輸出邏輯狀態(tài)來產(chǎn)生脈寬調(diào)制信號,設(shè)置不同的延時時間得到不同的占空比。(2)硬件電路自動產(chǎn)生PWM 信號,不占用CPU 處理的時間。這就要用到ATMEGA8515L 的在PWM 模式下的計數(shù)器1,具體內(nèi)容可參考相關(guān)書籍。 【實驗步驟】(1) 連接好電路,把數(shù)據(jù)線,下載線連接好,打開電源(2) 進入ICCAVR 編譯環(huán)境,調(diào)試程序直至沒有錯誤,編譯環(huán)境簡介請參見附錄一(3) 下載,燒錄進單片機,觀察實驗結(jié)果(4) 反復(fù)修改調(diào)試程序,逐漸增強其功能(5) 寫好實驗報告,實驗心得體會【程序示例】1、小車前進一段——>左轉(zhuǎn)一圈——>右轉(zhuǎn)一圈——>前進一段——>后退一段——>停下//ICC-AVR applicaTIon builder : 2005-5-19 19:12:13// Target : M8515// Crystal: 4.0000Mhz#include #include unsigned int TIme;unsigned int yan;void port_init(void){PORTA = 0x00;DDRA = 0xFF;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00;DDRC = 0x00;PORTD = 0x00;DDRD = 0xFF;PORTE = 0x00;DDRE = 0xFF;}//call this rouTIne to iniTIalize all peripheralsvoid init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();MCUCR = 0x00;EMCUCR =0x00;GICR = 0x00;TIMSK = 0x00;SEI(); //re-enable interrupts//all peripherals are now initialized}void delay(unsigned int yan){while(yan>0)yan--;}void runforth(void){while(time<1000){PORTE=0x04;PORTD=0x70;delay(2000);time++;}time=0;}void zuozhuanwan(void){while(time<1000){PORTE=0x00;PORTD=0X70;delay(2000);time++;}time=0;}void youzhuanwan(void){while(time<1000){PORTE=0x04;PORTD=0x50;delay(2000);time++;}time=0;}void houtui(void){while(time<1000){PORTE=0x04;PORTD=0x20;delay(2000);time++;}time=0;}void stop(void){PORTE=0x00;PORTD=0x00;}void main(void){ init_devices();time=0;runforth();zuozhuanwan();youzhuanwan();runforth();houtui();stop();}2、調(diào)速程序以下是用兩定時器來控制加在兩方向控制口的方波占空比,以此來對電機進行調(diào)速,而同學(xué)們可以利用對兩始能端高低電平進行不同延時來實現(xiàn)調(diào)速功能。//ICC-AVR application builder : 2005-5-18 16:45:27// Target : M8515// Crystal: 4.0000Mhz#include #include unsigned char a;unsigned char p;unsigned char m;unsigned char n;void port_init(void){PORTA = 0x00;DDRA = 0x00;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00;DDRC = 0x00;PORTD = 0x00;DDRD = 0x70;PORTE = 0x00;DDRE = 0x04;}//TIMER0 initialize - prescale:64// WGM: Normal// desired value: 40Hz// actual value: Out of rangevoid timer0_init(void){TCCR0 = 0x00; //stop timerTCNT0 = 0xfa /*INVALID SETTING*/; //set count valueTCCR0 = 0x03; //start timer}#pragma interrupt_handler timer0_ovf_isr:8void timer0_ovf_isr(void){TCNT0 = 0xfa /*INVALID SETTING*/; //reload counter valueif(m==a){PORTD=0x70;TCCR1B=0x03;TCCR0=0x00;n=1;}else{m++;}}//TIMER1 initialize - prescale:64// WGM: 0) Normal, TOP=0xFFFF// desired value: 40Hz// actual value: 40.013Hz (0.0%)void timer1_init(void){TCCR1B = 0x00; //stopTCNT1H = 0xff; //setupTCNT1L = 0xfa;OCR1AH = 0x06;OCR1AL = 0x1A;OCR1BH = 0x06;OCR1BL = 0x1A;TCCR1A = 0x00;TCCR1B = 0x00;}#pragma interrupt_handler timer1_ovf_isr:7void timer1_ovf_isr(void){TCNT1H = 0xff; //reload counter high valueTCNT1L = 0xfa; //reload counter low valueif(n==250-a){PORTD=0x20;TCCR0=0x03;TCCR1B=0x00;m=1;if(p==0){if(a==125){p=1;}else{a++;}}else{{if(a==1){p=0;}else{a--;}}}}else{n++;}}//call this routine to initialize all peripheralsvoid init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();timer0_init();timer1_init();MCUCR = 0x00;EMCUCR = 0x00;GICR = 0x00;TIMSK = 0x82;SEI(); //re-enable interrupts//all peripherals are now initialized}void main(void){a=0;p=0;m=1;n=1;init_devices();while(1){PORTE=0x04;}}

0519-8918 1758
聯(lián)系人:聶經(jīng)理 郵箱:niejli@126.com 地址:江蘇省常州市武進區(qū)大通西路200號。 電話:0519-8918 1758

版權(quán)所有 ? 常州永沛機電技術(shù)有限公司 直流無刷電機|無刷直流電機|直流防爆電機|常州永沛機電技術(shù)有限公司|電動平車電機|電動船電機|直流減速電機


蘇ICP備13004000號