標題: arduino制作的模型遙控器 [打印本頁]

作者: 347459871    時間: 2017-9-10 16:33
標題: arduino制作的模型遙控器
近段時間車模遙控器壞掉了,于是用arduino做了一個遙控,用的全雙工無線串口模塊做的通信這樣以后也可以增加數(shù)據(jù)的回傳功能,同時全雙工又增加了通信效率。目前只完成了這么多后期還會增加微調(diào) 失控保護 速度顯示 電壓顯示,期待后期更新吧


  1. #include <Servo.h>

  2. Servo servo1;
  3. Servo servo2;

  4. float data4=0;//要接收的數(shù)據(jù)
  5. float data5=0;//要接收的數(shù)據(jù)


  6. void setup()
  7. {
  8. servo1.attach(5);
  9. servo2.attach(6);
  10.   Serial.begin(9600);//兩機的波特率要求相同
  11. }


  12. void loop()
  13. {

  14. receive();//接收數(shù)據(jù)
  15.    
  16. servo1.write(data4);
  17. servo2.write(data5);
  18. }



  19. void receive(){

  20.   String comdata = "";//存放接收到的原始字符串
  21.   String buf1="";//存放解析出的第一個字符串
  22.   String buf2="";//存放解析出的第二個字符串


  23.     while (Serial.available() > 0)  
  24.     {
  25.         comdata += char(Serial.read());
  26.         delay(2);//一個一個接收數(shù)據(jù),每次停頓2毫秒
  27.     }
  28.     if (comdata.length() > 0)//如果有數(shù)據(jù)收到
  29.     {
  30.       int ja,jb,jc;//存放收到的字符串中標志字母的下標

  31. for(int i = 0; i < comdata.length(); i++){

  32.   if(comdata[i]=='a'){ja=i;}
  33.   if(comdata[i]=='b'){jb=i;}
  34.   if(comdata[i]=='#'){jc=i;}
  35.   

  36.   }//找到約定標志字母的下標

  37. for(int k=ja+1;k<jb;k++){
  38.   buf1+=char(comdata[k]);
  39.   }
  40.   for(int k=jb+1;k<jc;k++){
  41.   buf2+=char(comdata[k]);
  42.   }

  43.          data4=buf1.toInt();//將解析得到的字符串轉(zhuǎn)換為float類型
  44.          data5=buf2.toInt();
  45.       


  46.     }

  47.   }
復(fù)制代碼

全部資料下載地址:
代碼.zip (1.52 KB, 下載次數(shù): 17)



作者: Houhoulala    時間: 2019-5-22 14:12
十分感謝




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1