|
大學畢業后,就利用業余時間做一個藍牙遙控小車,就在網上找資料及購買配件。用STC89S52單片機控制小車, LN298電機驅動模塊驅動小車電機,BC04-B主從一體 藍牙串口適配器 接收上位機指令。現在小車已經成功,特和大家分享我的小車。
0.png (70.05 KB, 下載次數: 182)
下載附件
2016-8-20 02:08 上傳
全部制作資料下載:
藍牙小車上位機和下位機程序.rar
(908.78 KB, 下載次數: 77)
2016-8-20 02:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
221321uy8qy97qyq1qzy88.jpg.thumb.jpg (48.69 KB, 下載次數: 192)
下載附件
2016-8-20 02:56 上傳
淘寶上買的配件: 1 小車四驅動底座。 2. LN298電機驅動模塊。 3 BC04-B主從一體 藍牙串口適配器
222058adhxhlk7suj3z0l0.jpg.thumb.jpg (38.54 KB, 下載次數: 189)
下載附件
2016-8-20 02:56 上傳
222104gbbg5b0rp0ap1rad.jpg.thumb.jpg (18.43 KB, 下載次數: 200)
下載附件
2016-8-20 02:56 上傳
222110d0yrd9mept0yrstb.jpg.thumb.jpg (32.28 KB, 下載次數: 216)
下載附件
2016-8-20 02:56 上傳
由于藍牙模塊買之前不知道需要外圍電路,買回來后自己焊接了外圍電路。
222948jxmbzn0ph63lez88.jpg.thumb.jpg (32.43 KB, 下載次數: 196)
下載附件
2016-8-20 02:56 上傳
自己做的51單片機最小系統,純手工。
223228u77j22q2dcs2siij.jpg.thumb.jpg (28.48 KB, 下載次數: 146)
下載附件
2016-8-20 02:56 上傳
電源模塊用的是之前我自己做的備用電源,輸出5V,給單片機和電機驅動供電。5V給電機供電,電機速度較慢,可以用10的電壓。
223508gi1ti64il5itu6tz.jpg.thumb.jpg (22.87 KB, 下載次數: 161)
下載附件
2016-8-20 02:56 上傳
223633pm46msml5c6bfovo.jpg.thumb.jpg (49.76 KB, 下載次數: 177)
下載附件
2016-8-20 02:56 上傳
然后組裝到一起的效果
223809goovqcvc3hnnvhnh.jpg.thumb.jpg (35.96 KB, 下載次數: 185)
下載附件
2016-8-20 02:56 上傳
上位機軟件
224435rz43reatqkaauykf.jpg.thumb.jpg (34.72 KB, 下載次數: 145)
下載附件
2016-8-20 02:56 上傳
下載程序測試,小車運行流暢。
|
224016om17mhqxoxum7k15.jpg.thumb.jpg (28.58 KB, 下載次數: 184)
下載附件
2016-8-20 02:56 上傳
下位機程序:
- #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; //將接受到的數據賦值給a
-
- switch(a)
- {
- case 65: P1=0Xa5; break; // 發送的是A 前進指令
- case 66: P1=0X55; break; // 發送的是B 右轉指令
- case 67: P1=0Xaa; break; // 發送的是C 左轉指令
- case 68: P1=0X5a; break; // 發送的是D 后退指令
-
- case 97: P1=0X00; break; //發送的是a 停止指令
- case 98: P1=0X00; break; //發送的是b 停止指令
- case 99: P1=0X00; break; //發送的是c 停止指令
- case 100: P1=0X00; break; //發送的是d 停止指令
- //P2口是我的電機驅動的控制端
-
- default: break;
- }
- ES=1;
- }
復制代碼
|
|