サーボモーターを赤外線センサー(3つ)で制御させ、ライントレースをさせたいと思っています。
サーボモーター:SANWA RS-991
赤外線センサー:OSOYOOIR赤外線障害物回避(カーロボット用)
3つの赤外線センサーは
センサー右=A0
センサー中=A1
センサー左=A2
として、線を繋ぎました。
個人的には「A1(中)がONされているときは90度(サーボモーターの先が上を向く状態)を保ち、
A0(右)がONされているときは120度(90度から30度右に傾いている状態)を保ち、
A2(左)がONされているときは60度(90度から30度左に傾いている状態)を保ち」
を繰り返してほしいのですが以下のプログラミングだといずれかがONされていてもその角度を保ってくれません。
間違っているところ、足りないところがあればアドバイスア願いします!
問題のプログラム↓↓
#include <Servo.h>
Servo myservo;
int potpin1 = A0;
int potpin2 = A1;
int potpin3 = A2;
int val1;
int val2;
int val3;
void setup() {
myservo.attach(9);
}
void loop() {
val1 = analogRead(potpin1);
val1= map(val1, 0, 1023, 0, 120);
myservo.write(val1);
delay(500);
val2 = analogRead(potpin2);
val2= map(val2, 0, 1023, 0, 90);
myservo.write(val2);
delay(500);
val3 = analogRead(potpin3);
val3= map(val3, 0, 1023, 0, 60);
myservo.write(val3);
delay(500);
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。