// // ENCODER MOTOR // int mot1 = 10; /* mot1 を 10 に割り当てる */ int mot2 = 11; /* mot2 を 11 に割り当てる */ int led1 = 6; /* led1 を 6 に割り当てる */ int sen1 = A0; /* sen1 を A0 に割り当てる */ int sw1 = A2; /* sw1 を A2 に割り当てる */ int pw = 4; /* pw を 4 に割り当てる */ int br = 0; /* br という変数を初期化 */ int tip = 0; /* tip という変数の初期化 */ int steps = 144; /* steps という変数を 144 で初期化 */ void setup() { Serial.begin(9600); /* シリアル通信を初期化する  通信速度は9600bps (確認用) */ pinMode(mot1, OUTPUT); /* 出力 */ pinMode(mot2, OUTPUT); /* 出力 */ pinMode(led1, OUTPUT); /* 出力 */ pinMode(pw, OUTPUT); /* 出力 */ pinMode(sen1, INPUT); /* 入力 */ /* 出力 */ digitalWrite(mot1, LOW); /* OFF */ digitalWrite(mot2, LOW); /* OFF */ digitalWrite(led1, LOW); /* OFF */ digitalWrite(pw, HIGH); /* OFF */ } void loop() { if (digitalRead(sw1) == LOW) /* スイッチを押したとき */ { br = 0; /* br を 0にする */ delay(100); /* ON */ digitalWrite(led1, HIGH); analogWrite(mot1, 80); /* mot1 に アナログの値 80 で 出力 */ } if (br < (steps + 1)) /* brの値が stepに1を加えた値よりも大きければ */ { if (digitalRead(sen1) == 1 && tip == 0) /* sen1 が1 かつ  tipが 0のとき */ { br = br + 1; /* br を +1する */ tip = 1; /* tip を 1 に する */ } else if (digitalRead(sen1) == 0 && tip == 1) /* sen1 が 0 かつ tipが 1のとき */ { br = br + 1; /* br を +1する */ tip = 0; /* tip を 1 に する */ } } if (br > steps) /* sen1 が 0 かつ tipが 1のとき */ { digitalWrite(led1, LOW); /* OFF */ digitalWrite(mot1, LOW); /* OFF */ } }