找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5253|回复: 1
收起左侧

arduino制作的模型遥控器

[复制链接]
ID:188436 发表于 2017-9-10 16:33 | 显示全部楼层 |阅读模式
近段时间车模遥控器坏掉了,于是用arduino做了一个遥控,用的全双工无线串口模块做的通信这样以后也可以增加数据的回传功能,同时全双工又增加了通信效率。目前只完成了这么多后期还会增加微调 失控保护 速度显示 电压显示,期待后期更新吧
IMG_20170906_195614.jpg 0.png

  1. #include <Servo.h>

  2. Servo servo1;
  3. Servo servo2;

  4. float data4=0;//要接收的数据
  5. float data5=0;//要接收的数据


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


  12. void loop()
  13. {

  14. receive();//接收数据
  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);//一个一个接收数据,每次停顿2毫秒
  27.     }
  28.     if (comdata.length() > 0)//如果有数据收到
  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();//将解析得到的字符串转换为float类型
  44.          data5=buf2.toInt();
  45.       


  46.     }

  47.   }
复制代码

全部资料下载地址:
代码.zip (1.52 KB, 下载次数: 17)
回复

使用道具 举报

ID:498171 发表于 2019-5-22 14:12 | 显示全部楼层
十分感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表