|
發(fā)布時間: 2017-3-11 10:04
正文摘要:最近在做一個藍牙控制的智能小車,本人是個單片機小白,學校還沒開始相關課程,所以自己一邊自學一邊做著個智能小車。 在網(wǎng)上查詢了相關資料以后自己選擇做一個四輪驅(qū)動的藍牙控制小車,只有藍牙控制 ... |
| 單片機不用另外給電源了的,L298N5V端口就可以給單片機供電,另外單片機一定要和L298N共地 |
| 你的小車做好了嘛,可以教教我怎么做嘛。。 |
凌晨丶 發(fā)表于 2017-3-15 21:21 我這邊幫你試試 |
|
其他步驟都對,不接藍牙模塊,直接用串口助手分別發(fā)送R、L,看看電機運轉(zhuǎn)情況 |
imxuheng 發(fā)表于 2017-3-13 16:26 能不能留個QQ 這上面回復實在是不方便 我QQ1187879733 謝謝你的指點 感謝 |
imxuheng 發(fā)表于 2017-3-13 16:26 額 我不太明白這個串口調(diào)試是怎么搞 是不是把程序?qū)戇M單片機 然后在開發(fā)板上面調(diào)試 電腦連接開發(fā)板 然后在STC調(diào)試軟件上面調(diào)試 開發(fā)板上面需要接電機和藍牙模塊對嗎 |
凌晨丶 發(fā)表于 2017-3-13 10:05 有串口調(diào)試軟件吧,其實STC的程序下載軟件自帶串口調(diào)試,一眼就找到了。把下面的程序下載到你的單片機里 #include <reg52.h> #define uint unsigned int #define uchar unsigned char #define BAUD 9600 #define XTAL 11059200 sbit in1 = P1^0; sbit in2 = P1^1; void main() { LED1=LED2=1; SCON = 0x50; TMOD = 0x20; PCON = 0x00; TH1 = (unsigned char)(256 - XTAL/12/32/BAUD); TL1 = TH1; TI = 0; RI = 0; TR1 = 1; IE = 0x90; while(1) { } } void Serial_INT() interrupt 4 { if(RI) { RI = 0; switch(SBUF) { case 'L': in1=1;in2=0;break;//正轉(zhuǎn) case 'R': in1=0;in2=1;break;//反轉(zhuǎn) } } } 用串口調(diào)試軟件分別發(fā)送“L”、“R”,注意是文本模式發(fā)送,看看電機運轉(zhuǎn)情況,good luck. |
imxuheng 發(fā)表于 2017-3-12 20:30 我安裝你說的接了一下 電機可以轉(zhuǎn) 但是現(xiàn)在我就是不太會編串口的程序 加上串口程序后就沒辦法遙控 應該可能是輸出波率的問題 我現(xiàn)在小車用的是2個L298N的驅(qū)動模塊,我把兩個驅(qū)動的ENA和ENB都接到最小系統(tǒng)上面的5V上面, 然后兩個驅(qū)動的IN口都接到p2口了 現(xiàn)在程序還是有問題 我用的HC-06這個藍牙模塊 出波率應該是9600 程序應該就是串口程序這一塊有問題。 |
|
模塊IN1和IN2分別接最小系統(tǒng)5V和GND當然可以使電機轉(zhuǎn)動,把驅(qū)動程序換成下面的試試電機是否運轉(zhuǎn) sbit in1=P1^0; sbit in2=P1^1; void main() { in1=1; in2=0; while(1); } 模塊IN1和IN2分別接最小系統(tǒng)P1.0口和P1.1口 我覺得肯定沒問題,如果能驅(qū)動,那再把串口程序加進去 |
imxuheng 發(fā)表于 2017-3-12 09:40 程序是我從網(wǎng)上找的 我現(xiàn)在自學單片機還沒有學到程序這一塊,我就是不太看得懂程序, 現(xiàn)在我把小車都組裝好了 驅(qū)動模塊IN1和IN2分別接最小系統(tǒng)5V和GND 是可以帶動電機轉(zhuǎn)動了 但是我加上藍牙模塊 把網(wǎng)上找的的程序?qū)戇M去 通過手機APP遙控時就控制不了電機的轉(zhuǎn)動。 |
admin 發(fā)表于 2017-3-11 17:49 #include #define uchar unsigned char #define uint unsigned int uchar a; void init() { TMOD=0X20; //設置定時器1為方式2 TH1=0xfd ; TL1=0xfd ; //裝初值 TR1=1; //啟動定時器1 REN=1; // 使能接收 SM0=0; SM1=1; //設置串口為工作方式1 EA=1; // 打開總中斷開關 ES=1; // 打開串口中斷開關 } void main() { init(); while(1); } void ser() interrupt 4 { ES=0; RI=0; //將接受中斷標志位清0; a=SBUF; //將接受到的數(shù)據(jù)賦值給a switch(a) { case 65: P1=0Xa5; break; // 發(fā)送的是A 前進指令 case 66: P1=0X55; break; // 發(fā)送的是B 右轉(zhuǎn)指令 case 67: P1=0Xaa; break; // 發(fā)送的是C 左轉(zhuǎn)指令 case 68: P1=0X5a; break; // 發(fā)送的是D 后退指令 case 97: P1=0X00; break; //發(fā)送的是a 停止指令 case 98: P1=0X00; break; //發(fā)送的是b 停止指令 case 99: P1=0X00; break; //發(fā)送的是c 停止指令 case 100: P1=0X00; break; //發(fā)送的是d 停止指令 //P2口是我的電機驅(qū)動的控制端 default: break; } ES=1; } 這是我網(wǎng)上找的程序 你能不能幫我看一下 |
你看這個圖:
買的L298N驅(qū)動模塊一般都會有pdf資料的 ena,enb 是控制小車左右輪速度的,接PWM口 |
| 我是用一個驅(qū)動控制左邊兩個輪子 另一個驅(qū)動控制右邊兩個輪子來達到四輪驅(qū)動的效果,左邊兩輪正轉(zhuǎn),右邊兩輪停止,小車右轉(zhuǎn)。右邊兩輪正轉(zhuǎn),左輪停止,小車左轉(zhuǎn)。 |
Powered by 單片機教程網(wǎng)