近段時間車模遙控器壞掉了,于是用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)
2017-9-10 16:24 上傳
點擊文件名下載附件
|