找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 6687|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的無線遙控船程序設(shè)計(jì)思路

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
說一下怎樣去做一個(gè)遙控器,必須要買的東西: 2 片 STC12C5A60S2 單片機(jī),2 個(gè) NRF24L01 模塊,一個(gè)電機(jī)驅(qū)動(dòng)(如果要驅(qū)動(dòng)功率較大的電機(jī),不建議買 LN298,最好大功率一些的),兩個(gè) L7805 穩(wěn)壓管,1 個(gè)AMS1117-3.3 穩(wěn)壓芯片,兩個(gè)搖桿電位器(注意有一個(gè)是要不能自動(dòng)復(fù)位的,用于油門,另外一個(gè)要自動(dòng)復(fù)位,用于轉(zhuǎn)彎。還有一些電阻電容等,主要是用來構(gòu)建一個(gè)最小單片機(jī)系統(tǒng),使單片機(jī)運(yùn)行起來。液晶屏不是必要的,這里我用的是 nokia5110 液晶屏,用來顯示遙控車的電壓和電量,當(dāng)然電量不會(huì)很準(zhǔn)確,是用單片機(jī)上的 A/D 轉(zhuǎn)換器采集電池的電壓,然后根據(jù)電壓電量曲線得出電量的。



單片機(jī)源程序如下:
  1. #include <stc12c5a60s2.H>
  2. #include <intrins.h>
  3. #include <math.h>
  4. #include"2_4G.h"
  5. #include"stc12_ADC.h"
  6. #include"stc12_pwm.h"


  7. void delay(unsigned int k)
  8. {
  9.     unsigned int i,j;
  10.     for(i=0;i<k;i++)
  11.     {
  12.                 for(j=0;j<121;j++)
  13.                 {;}
  14.         }
  15. }



  16. void main(void)
  17. {
  18.   uchar RxBuf[32]={0},TxBuf[32]; // 接收的數(shù)據(jù) 數(shù)組
  19.   delay(500);        
  20.         init_NRF24L01() ;        //模塊初始化
  21.         Init_ADC();
  22.   PWM_init();
  23.         PWM_clock(2);      // PCA/PWM時(shí)鐘源為定時(shí)器0的溢出
  24.   while(1)
  25.   {
  26.     SetRX_Mode();          //設(shè)置成接受模式
  27.           nRF24L01_RxPacket(RxBuf);
  28.           delay(10);
  29.             
  30.     if(RxBuf[1]==0)             //前進(jìn)
  31.     {
  32.       up=1;
  33.             dw=0;
  34.       up1=0;
  35.       dw1=1;
  36.       PWM_start(RxBuf[2],RxBuf[3]);
  37.     }
  38.     else                       
  39.     {
  40.       if(RxBuf[0]==0)
  41.       {
  42.         up=1;
  43.               dw=1;
  44.         up1=1;
  45.         dw1=1;
  46.       }                                                            
  47.       else                    //后退
  48.       {
  49.         up=0;
  50.               dw=1;
  51.         up1=1;
  52.         dw1=0;
  53.         PWM_start(RxBuf[0],RxBuf[0]);
  54.       }
  55.     }

  56.     TxBuf[4]=(uchar)AD_av(0);            //測(cè)鋰電池電壓
  57.     nRF24L01_TxPacket(TxBuf);                 //發(fā)送數(shù)據(jù) Transmit Tx buffer data
  58.     delay(50);
  59.    
  60.   }
  61. }
復(fù)制代碼

所有資料51hei提供下載:

Keil代碼下載: 遙控船.rar (137.82 KB, 下載次數(shù): 116)
sldprt文件: 遙控器.rar (8.7 MB, 下載次數(shù): 136)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:500015 發(fā)表于 2019-3-28 17:23 | 只看該作者
謝謝樓主 好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:343102 發(fā)表于 2019-3-28 18:41 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

地板
ID:424197 發(fā)表于 2019-3-31 01:54 | 只看該作者
樓主怎么沒有原理圖?
回復(fù)

使用道具 舉報(bào)

5#
ID:505249 發(fā)表于 2019-4-5 11:42 | 只看該作者
賺點(diǎn)黑幣去下載
回復(fù)

使用道具 舉報(bào)

6#
ID:372154 發(fā)表于 2019-5-23 18:48 | 只看該作者
下載下來學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

7#
ID:651773 發(fā)表于 2020-3-25 16:27 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:688348 發(fā)表于 2020-5-16 19:30 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

9#
ID:1004038 發(fā)表于 2022-2-17 10:54 | 只看該作者
SLDPRT是什么文件?預(yù)覽圖里沒看到.C.H文件�。∫�?yàn)楹趲挪欢�,所以沒舍得下載。
回復(fù)

使用道具 舉報(bào)

10#
ID:1001475 發(fā)表于 2022-5-28 21:21 來自手機(jī) | 只看該作者
感覺跟蘿麗遙控器用的原件差不多
回復(fù)

使用道具 舉報(bào)

11#
ID:1051684 發(fā)表于 2023-7-31 01:13 | 只看該作者
多謝分想,樓主長(zhǎng)命百歲
回復(fù)

使用道具 舉報(bào)

12#
ID:1051684 發(fā)表于 2023-8-14 22:17 | 只看該作者
我測(cè)了好像不能行了,怎么回事
回復(fù)

使用道具 舉報(bào)

13#
ID:1012850 發(fā)表于 2023-9-9 20:18 | 只看該作者
樓主分享一下原理圖唄
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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