赤いLEDを点灯時にプッシュスイッチを押すと赤いLEDが消灯し、青いLEDが点灯。
青いLEDを点灯時にプッシュスイッチを押すと青いLEDが消灯し、赤いLEDが点灯。
というプログラムを作って実行したのですが、後ろから7行目の
if (digitalRead(BUTTON) == LOW) {
でexpected unqualified-id before 'if'というエラーが出てしまいます。問題にif文を消してもまた前のif文がエラー、前のif文がエラーと繰り返してしまい、よくわかりませんでした。どのように間違っているのか教えていただきたいです。
よろしくお願いします。
const int red_LED = 12; // 赤LEDが接続されているピン
const int blue_LED = 10; // 青LEDが接続されているピン
const int BUTTON = 7; // プッシュボタンが接続されているピン
int LedState = LOW;
unsigned long preMillis = 0;
unsigned long interval = 100;//時間の設定
int counts = 0;//カウント回数の格納
int state = 0;//スイッチの状態
int c = 0;
void setup() {
pinMode(red_LED, OUTPUT); // ArduinoにLEDが出力であると伝える
pinMode(blue_LED, OUTPUT);
/pinMode(green_LED, OUTPUT); /
pinMode(BUTTON, INPUT); // BUTTONは入力に設定
}
/
Serial.begin(9600);
pinMode(7, INPUT) ; // 7ピンのスイッチをデジタル入力に設定します
pinMode(13, OUTPUT) ; // 13ピンのLEDをデジタル出力に設定します
}/
void loop() {
unsigned long curMillis = millis();//"millis()"はマイコンが動き出してから現在までの経過時間をcurMillisに代入しています。
//ここからスイッチの状態をチェック
if (digitalRead(BUTTON) == LOW) { // 2ピンがLOWなら(スイッチが押されるとLOWになる)
state = 1;//スイッチが押れたことを記録する
}
//この処理を行わないとスイッチが押されている間ループ1回で1カウントしてしまう。
if (state == 1) {//スイッチが押れたと記録されていたら
if (digitalRead(BUTTON) == HIGH) { //スイッチが放されたら
counts = counts + 1;//カウントする
state = 0;//スイッチの状態をリセット
}
}
//LEDの操作
/ここからの内容を書き換えることでオリジナルの回路設計ができる/
if (counts == 0) { // countsが0なら
digitalWrite(red_LED,HIGH);
digitalWrite(blue_LED,LOW);
}
}
if (counts == 1) { // countsが1なら
digitalWrite(red_LED,LOW);
digitalWrite(blue_LED,HIGH);
}
if (counts == 2) { // countsが3なら
counts = 0;
}
//スイッチの状態、カウント数を確認するためのプログラム
if (digitalRead(BUTTON) == HIGH) {
c = 1;
}
if (digitalRead(BUTTON) == LOW) {
c = 0;
}
Serial.print(c);
Serial.print(" ");
Serial.println(counts);
}
回答2件
あなたの回答
tips
プレビュー