Arduinoで作ろう(21) 屈折走行するクルマ
高校物理・波動分野の授業で「異なる媒質の境界で波が屈折するのは,媒質が異なると波の伝わる速さも異なるからだ」なんてことを教えますが,これを説明するための道具を作ってみました。
秋月電子で買ったフォトリフレクタLBR-127HLDを使って床で反射する赤外線LEDの光を見て,反射光が強い場合(白い床)はモーターを高速回転させ,反射光が弱い場合(黒い床)は低速回転させています。
モーターの回転数はArduinoのPWM出力でコントロールしています。
スケッチはこちら→ 20180815.ino
/*
Arduino + フォトリフレクタLBR-127HLD で屈折するクルマ
*/
void setup() {
Serial.begin(9600);
}void loop() {
int Rval = analogRead(A0); // 右のフォトリフレクタの出力0~5Vを10bitでAD変換(0~1023)
int Lval = analogRead(A1); // 左のフォトリフレクタの出力0~5Vを10bitでAD変換(0~1023)
Rval = map(Rval, 0, 1023, 150, 255); //右 0~1023の値を160~255の値にマッピング
Lval = map(Lval, 0, 1023, 150, 255); //左 0~1023の値を160~255の値にマッピング
Serial.print(Lval); Serial.print(" "); Serial.println(Rval);analogWrite(5, Rval); //右モーターにPWM出力
analogWrite(6, Lval); //左モーターにPWM出力
}
| 固定リンク | 0
| コメント (0)
| トラックバック (0)