近段时间车模遥控器坏掉了,于是用arduino做了一个遥控,用的全双工无线串口模块做的通信这样以后也可以增加数据的回传功能,同时全双工又增加了通信效率。目前只完成了这么多后期还会增加微调 失控保护 速度显示 电压显示,期待后期更新吧
- #include <Servo.h>
- Servo servo1;
- Servo servo2;
- float data4=0;//要接收的数据
- float data5=0;//要接收的数据
-
- void setup()
- {
- servo1.attach(5);
- servo2.attach(6);
- Serial.begin(9600);//两机的波特率要求相同
- }
- void loop()
- {
- receive();//接收数据
-
- servo1.write(data4);
- servo2.write(data5);
- }
- void receive(){
- String comdata = "";//存放接收到的原始字符串
- String buf1="";//存放解析出的第一个字符串
- String buf2="";//存放解析出的第二个字符串
-
- while (Serial.available() > 0)
- {
- comdata += char(Serial.read());
- delay(2);//一个一个接收数据,每次停顿2毫秒
- }
- if (comdata.length() > 0)//如果有数据收到
- {
- int ja,jb,jc;//存放收到的字符串中标志字母的下标
- for(int i = 0; i < comdata.length(); i++){
- if(comdata[i]=='a'){ja=i;}
- if(comdata[i]=='b'){jb=i;}
- if(comdata[i]=='#'){jc=i;}
-
- }//找到约定标志字母的下标
- for(int k=ja+1;k<jb;k++){
- buf1+=char(comdata[k]);
- }
- for(int k=jb+1;k<jc;k++){
- buf2+=char(comdata[k]);
- }
-
- data4=buf1.toInt();//将解析得到的字符串转换为float类型
- data5=buf2.toInt();
-
- }
- }
复制代码
全部资料下载地址:
代码.zip
(1.52 KB, 下载次数: 17)
|