0
該程序旨在計算按鈕1的按下次數,然後按下按鈕2使其脫離循環。 button2就像一個回車鍵。Arduino將不會讀取按鈕
如果我運行do while語句中的內容而不執行,而它將計算每個按鈕的推送。我用這個來驗證我是否正確構建了我的電路。但是由於某些未知的原因,如果我將相同的代碼放入一個do或者只是一段時間,那麼它就不會讀取這些引腳。它將在do中循環,但不會退出到最後的done語句。如果我按下兩個按鈕中的任何一個按鈕來啓動arduino,那麼它將註冊一個按鈕正在按下,但只要我放開,它就不會再做任何事情。請告訴我我做錯了什麼。
我的代碼
int ledpin = 11;
int button1pin = 7;
int button2pin = 2;
int button1counter = 0;
int button1state = 0;
int lastButton1state = 0;
int button2state = 0;
int lastButton2state = 0;
int button2counter = 0;
void setup() {
// initialize the digital pin as an output.
pinMode(button1pin, INPUT);
pinMode(button2pin, INPUT);
Serial.begin(9600);
}
void loop() {
button1state = digitalRead(button1pin);
button2state = digitalRead(button2pin);
do {
if (button1state != lastButton1state) {
if (button1state == HIGH) {
button1counter++;
Serial.print("number of button 1 pushes: ");
Serial.println(button1counter);
}
lastButton1state = button1state;
}
} while(button2state == LOW);
Serial.println("done");
}
感謝我改變了它,當然你的權利。不過,我不明白爲什麼你的權利。讓我用我的理解評論代碼,如果我錯了,請糾正我。
void setup() {
pinMode(button1pin, INPUT);//tells comp to make button 1 input
pinMode(button2pin, INPUT);//tells comp to make button 2 input
Serial.begin(9600);
}
void loop() {
button1state = digitalRead(button1pin);//tells comp to begin reading pin? but for how long?
button2state = digitalRead(button2pin);
do {
感謝我改變它,當然你的權利。不過,我不明白爲什麼你的權利。讓我用我的理解評論代碼,如果我錯了,請糾正我。 – Chad
我不知道如何在這裏正確添加代碼? – Chad
@Chad編輯你的問題,不要刪除當前的內容,只需將下面的代碼和文本添加到你的問題,你想在這裏發表評論。 – Vallentin