|
近段時(shí)間車模遙控器壞掉了,于是用arduino做了一個(gè)遙控,用的全雙工無線串口模塊做的通信這樣以后也可以增加數(shù)據(jù)的回傳功能,同時(shí)全雙工又增加了通信效率。目前只完成了這么多后期還會(huì)增加微調(diào) 失控保護(hù) 速度顯示 電壓顯示,期待后期更新吧
IMG_20170906_195614.jpg (3.66 MB, 下載次數(shù): 90)
下載附件
2017-9-10 16:32 上傳
0.png (36.84 KB, 下載次數(shù): 92)
下載附件
2017-9-10 16:39 上傳
- #include <Servo.h>
- Servo servo1;
- Servo servo2;
- float data4=0;//要接收的數(shù)據(jù)
- float data5=0;//要接收的數(shù)據(jù)
-
- void setup()
- {
- servo1.attach(5);
- servo2.attach(6);
- Serial.begin(9600);//兩機(jī)的波特率要求相同
- }
- void loop()
- {
- receive();//接收數(shù)據(jù)
-
- servo1.write(data4);
- servo2.write(data5);
- }
- void receive(){
- String comdata = "";//存放接收到的原始字符串
- String buf1="";//存放解析出的第一個(gè)字符串
- String buf2="";//存放解析出的第二個(gè)字符串
-
- while (Serial.available() > 0)
- {
- comdata += char(Serial.read());
- delay(2);//一個(gè)一個(gè)接收數(shù)據(jù),每次停頓2毫秒
- }
- if (comdata.length() > 0)//如果有數(shù)據(jù)收到
- {
- int ja,jb,jc;//存放收到的字符串中標(biāo)志字母的下標(biāo)
- 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;}
-
- }//找到約定標(biāo)志字母的下標(biāo)
- 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();//將解析得到的字符串轉(zhuǎn)換為float類型
- data5=buf2.toInt();
-
- }
- }
復(fù)制代碼
全部資料下載地址:
代碼.zip
(1.52 KB, 下載次數(shù): 17)
2017-9-10 16:24 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|