台灣最大程式設計社群網站
線上人數
1334
 
會員總數:242298
討論主題:187375
歡迎您免費加入會員
討論區列表 >> 其他語言 >> arduino輸入字元與數字問題
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
arduino輸入字元與數字問題
價值 : 50 QP  點閱數:252 回應數:0

樓主

顏隆
門外漢
0 1
16 0
發送站內信

不好意思 想請問一下
以下為我自己打的程式
目前卡在就是
我想在序列埠輸入一個字元c進去
然後在連續輸入數字進去
但以下的程式
當我輸入c之後
他就沒辦法輸入數字了
我知道是有關於字元與數字的問題
想請問我該如何修改呢?
(我知道有關於read和parsent的關係,不知如何修改)
(PS:第一次發文,如有不妥,敬請見諒)


以下為程式碼
__________________________

#include <SoftwareSerial.h>
#include <Servo.h>


Servo myservo_ROT;
Servo myservo_LEFT;
Servo myservo_RIGHT;
Servo myservo_HAND_ROT;

int val[4]={};
char readSerial;

void setup() {

Serial.begin(9600); // 開啟序列埠連接
Serial.println("START");

myservo_ROT.attach(12, 500, 2500); //告訴手臂哪裡是訊號輸入點
myservo_LEFT.attach(11, 500, 2500);
myservo_RIGHT.attach(13, 500, 2500);
myservo_HAND_ROT.attach(10, 500, 2500);

pinMode(11,OUTPUT); //告訴arduino哪裡是訊號輸出點
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(10,OUTPUT);

myservo_ROT.attach(false);
myservo_LEFT.attach(false);
myservo_RIGHT.attach(false);
myservo_HAND_ROT.attach(false);

}
void loop() {
if(Serial.available()>0){
readSerial = Serial.read();
Serial.println(readSerial);

if(readSerial== 'a') {
myservo_ROT.attach(true); //告訴手臂哪裡是訊號輸入點
myservo_LEFT.attach(true);
myservo_RIGHT.attach(true);
myservo_HAND_ROT.attach(true);
Serial.println("開機");
}

if(readSerial== 'b') {
myservo_ROT.attach(false); //告訴手臂哪裡是訊號輸入點
myservo_LEFT.attach(false);
myservo_RIGHT.attach(false);
myservo_HAND_ROT.attach(false);
Serial.println("關機");
}

if(readSerial== 'c'){
delay(10);
if(Serial.available()>0){
for(int i=0;i<4;i++){
val[i]=Serial.parseInt();
Serial.print("angle = :");
Serial.println( val[i]);
}
myservo_ROT.write( val[0]); //依照數值跑
myservo_LEFT.write( val[1]);
myservo_RIGHT.write( val[2]);
myservo_HAND_ROT.write( val[3]);
delay(1000);
}
}
}
}



搜尋相關Tags的文章: [ arduino ] ,
本篇文章發表於2018-02-04 21:16
== 簽名檔 ==
fw125
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.