ここから本文です

int i ;//回数記録用変数 int a ;//スイッチ情報格納変数 void setup() {

rdq********さん

2016/8/1215:13:54

int i ;//回数記録用変数
int a ;//スイッチ情報格納変数
void setup() {

i = 0 ; // 変数のiに0をセットする
a = 0; // ピンより取得したデータ格納用
pinMode(2, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
a = digitalRead(2); // ピンよりデータ取得
digitalWrite(5, HIGH);//5ピンをON
if(a == HIGH){ //ボタンを押されたら
i = i + 1 ; // 変数のiに1を足す
delay(500);//500ms待つ
} else {
if(i == HIGH){ //iが10だったら
delay(10);//10ms待つ
digitalWrite(5, LOW);//5ピンをOff
}
}

このArduinoのスケッチなのですが
正常に動作せず、ずっと5pinがONになってしまいます
直し方を教えていただけますか

補足センサに10回反応するまでモーター動かすスケッチです

閲覧数:
37
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

mt_********さん

2016/8/1215:52:18

if(i == HIGH){ //iが10だったら
ここはi == 10ですね。

一瞬offになることはあるようですが、その直後にまたループ先頭で
digitalWrite(5, HIGH);//5ピンをON
がありますから、offになったことに気付く間もなくONに戻っています。

どういう動作を意図しているのか説明していただければ修正したコード例を提示できるかと思います。

  • mt_********さん

    2016/8/1216:02:26

    2行修正しただけですが、とりあえずこれで
    ①起動時にモーターが回る
    ②センサが10回ONしたら止まる
    の動作になると思います。
    再起動しないとモーターは二度と回りません。

    void setup() {
    i = 0 ; // 変数のiに0をセットする
    a = 0; // ピンより取得したデータ格納用
    pinMode(2, INPUT);
    pinMode(5, OUTPUT);
    pinMode(6, OUTPUT);
    digitalWrite(5, HIGH);//5ピンをON
    }
    void loop() {
    a = digitalRead(2); // ピンよりデータ取得
    if(a == HIGH){ //ボタンを押されたら
    i = i + 1 ; // 変数のiに1を足す
    delay(500);//500ms待つ
    if(i == 10){ //iが10だったら
    delay(10);//10ms待つ
    digitalWrite(5, LOW);//5ピンをOff
    }
    }
    }

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2016/8/12 16:18:18

ありがとうございます
やっと完成しました!!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる