找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11696|回復(fù): 3
收起左側(cè)

藍(lán)牙遙控小車制作過程與單片機(jī)源碼分享

  [復(fù)制鏈接]
ID:319718 發(fā)表于 2018-5-1 10:31 | 顯示全部樓層 |閱讀模式
本人之前是一個人單片機(jī)小白,之前在貼吧上看見大神們做遙控小車,覺得好厲害,自己也在網(wǎng)上買了元件來制作。今天就來給大家分享我的小車制作過程。
一、材料準(zhǔn)備
  一塊木板,大小按自己想做的小車的底盤 大小來。
四個電機(jī)、小車輪。
藍(lán)牙模塊HC-05一塊
L298N電機(jī)驅(qū)動模塊一塊
單片機(jī)最小系統(tǒng)
STC89C52單片機(jī)一塊
杜邦線 公對公 公對母若干
導(dǎo)線若干
二、組裝過程
將之前準(zhǔn)備好的木板用小鋸片鋸好,
然后將單片機(jī)最小系統(tǒng)。電機(jī)驅(qū)動模塊,還有藍(lán)牙模塊組裝好,
請忽略焊接點的,隨手的
注意藍(lán)牙模塊的接收端與發(fā)射端不能接反,之前我接反了找了半天才找出問題來
有些電機(jī)驅(qū)動模塊當(dāng)輸入電機(jī)電壓高于8伏的的時候,模塊自身就會有5伏的電壓產(chǎn)生,此電壓可輸出給單片機(jī)及藍(lán)牙模塊用,我用的電池是拆充電寶的,一節(jié)3.7伏,兩節(jié)電池串聯(lián)起來,
請看視頻

單片機(jī)源程序:
  1. #include <REGX52.H>
  2. sbit mal=P1^7;         //第一電機(jī)左拐
  3. sbit mar=P1^6;         //第一電機(jī)右拐
  4. sbit mbl=P1^5;         //第二電機(jī)左拐
  5. sbit mbr=P1^4;         //第二電機(jī)右拐
  6. sbit mc=P1^3;         //第三個動力
  7. sbit md=P1^2;         //第四個動力
  8. sbit d1=P3^5;
  9. sbit d2=P3^4;
  10. sbit led=P3^7;
  11. unsigned char numz=0;
  12. //舵機(jī)正脈寬500us~2500us,負(fù)脈寬為(20000us-正脈寬)
  13. //對應(yīng)到定時器值461-2=459,到2713-2=2711          ,變化范圍2252,如果每檔變化125,可以有18檔
  14. unsigned char d11=0,d10=0,d21=0,d20=0,da=0,db=0;
  15. void delayms(unsigned char ms)
  16. {
  17.         unsigned char i;
  18.         while(ms--)
  19.         {
  20.         for(i = 0; i < 120; i++);
  21.         }
  22. }
  23. void main()
  24. {unsigned char i;
  25. for (i=0;i<=10;i++)          //閃爍,以示主板工作正常
  26. {
  27.    led=~led;   delayms(2000);
  28. }
  29.     TMOD=0x21;        //使用定時器1和0
  30.     SCON=0x50;        //串口使用工作方式1
  31.     TH1=0xfd;        //串口的波特率,9600
  32.     TL1=0xfd;
  33.     //定時器0初始化
  34.     TH0=0xff;
  35.     TL0=0x82;    //初始值125,cpu工作頻率為11.0592M
  36.     ET0=1;      //允許定時中斷
  37.     TR0=1;      //啟動定時器0
  38.     TR1=1;                //打開定時器1
  39.         EA=1;            //打開中斷總開關(guān)
  40.         ES=1;                //打開串口中斷開關(guān)
  41. while(1){  }
  42. }
  43. void ck() interrupt 4
  44. {  
  45. unsigned char a=0;
  46. EA=0;
  47. if(RI)
  48. { a=SBUF;
  49.   switch(a)
  50.   {
  51.    case 'Z':numz++;break;
  52.   case 'A':{if(numz==6){mal=1;mar=0;mbl=0;mbr=1;numz=0;led=~led;}}break; //前進(jìn)
  53.    case 'B':{if(numz==6){mal=1;mar=0;mbl=1;mbr=0;numz=0;led=~led;}}break; //左拐
  54.    case 'C':{if(numz==6){mal=1;mar=1;mbl=1;mbr=1;numz=0;led=~led;}}break;//停
  55.    case 'D':{if(numz==6){mal=0;mar=1;mbl=0;mbr=1;numz=0;led=~led;}}break;//右拐
  56.    case 'E':{if(numz==6){mal=0;mar=1;mbl=1;mbr=0;numz=0;led=~led;}}break;//后退
  57.    case 'F':{if(numz==6){md=~md; led=~led;}}break;
  58.    case 'G':{if(numz==6){mc=~mc;led=~led;}}break;
  59.    case 'H':{if(numz==6){  led=~led;}}break;
  60.    case 'I':{if(numz==6){ numz=0;led=~led;}}break;
  61.    case 'J':{if(numz==6){ numz=0;led=~led;}}break;
  62.    case 'K':{if(numz==6){ numz=0;led=~led;}}break;
  63.    case 'Y':numz=0;break;
  64.    default:numz=0;
  65.    }
  66. }
  67.   RI=0;         EA=1;
  68. }

  69. void time0(void) interrupt 1//定時器中斷函數(shù)
  70. {
  71.    TH0=0xff;    //定時值125
  72.    TL0=0x82;
  73. }                          
復(fù)制代碼

所有資料51hei提供下載:
自制小車.zip (26.93 KB, 下載次數(shù): 58)
制作過程.docx (3.01 MB, 下載次數(shù): 58)


評分

參與人數(shù) 1黑幣 +5 收起 理由
1205693382 + 5 很給力!

查看全部評分

回復(fù)

使用道具 舉報

ID:550950 發(fā)表于 2019-5-30 11:48 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:570401 發(fā)表于 2019-6-24 01:56 | 顯示全部樓層
好資料感謝分享
回復(fù)

使用道具 舉報

ID:318672 發(fā)表于 2019-6-24 15:03 來自手機(jī) | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表