Robofun 機器人論壇
標題:
我想嘗試把初級學的東西融合起來的東西卻做不出來
[打印本頁]
作者:
isa
時間:
2019-6-16 21:22
標題:
我想嘗試把初級學的東西融合起來的東西卻做不出來
我是一個很剛開始學arduino(寫程式也是)的新手,照著幾個視頻做了一些東西後突然學到了這個(註1),就異想天開想把之前學的都組在一起,結果是大慘敗,想問問有沒有人知道該怎麼處理。
我想要按1的時候燈能全亮蜂鳴器還會叫(蜂鳴器叫不出來)
按2的時候3顆燈能從右邊亮到左邊
按3能從左亮到右
按4的時候光敏電阻能逐漸亮
按0全熄蜂鳴器叫三聲
誤按其他鍵時就顯示"nothing"(這個想不出來要怎麼做)
突然感覺arduino好難......我有七拼八湊寫了,不介意看了眼睛髒可以點進去看一下(
https://paste.plurk.com/show/2FQEMCLP1e2YiyRcz3QG/
)
弄到腦子好痛喔,求大神幫忙。
註1:
const byte led=8;
char val;
void setup() {
pinMode(led,OUTPUT);
Serial.begin(9600);
Serial.println("Welcome");
}
void loop() {
if(Serial.available())
{
val= Serial.read();
if(val=='1')
{
digitalWrite(led,HIGH);
Serial.println("LED ON");
}
else if(val=='0'){
digitalWrite(led,LOW);
Serial.println("LED OFF");
}
}
}
作者:
超新手
時間:
2019-6-17 09:58
本帖最後由 超新手 於 2019-6-17 10:03 編輯
1. 陣列宣告要用大括號 {}
const int b[] =
{
1, 2, 3, 4
}
;
三個地方宣告有錯
2. 迴圏使用方式錯誤
a. 迴圏如果不加大括號 , 它只會執行下一行
for (k = 3; k > 0; k--)
digitalWrite(c[ k], HIGH);
錯誤! 只會執行這一行
b. 迴圏如果直接加分號 , 根本不執行任何程式(只有迴圏本身)
if (val == '2')
{ for (i = 0; i < 4; i++);
錯誤! 從這行以下的程式都不在迴圏執行範圍
c. 根本沒迴圏
digitalWrite(b[ i], LOW);
錯誤!
digitalWrite(c[ k], LOW);
錯誤!
digitalWrite(d[ o], LOW);
錯誤!
使用方式應該是, 用大括號把要執行的程式都包起來
for (k = 3; k > 0; k--) {
程式寫在這邊, 大括號裡面
}
3 . 其他按鍵, 就是 else
也就是
if(val == '0') {
...............
} else if(val == '1') {
...............
} else if(val == '2') {
...............
} else if(val == '3') {
...............
} else if(val == '4') {
...............
} else {
其他按鍵, 寫在這
}
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2