赤外線センサーのでサーボモーターを制御させたいんですが(赤外線センサーでライントレース)、
スケッチのどこがおかしいのかわかりません。
どこがおかしいのかご指摘お願いします。
このスケッチで左のセンサーしか反応しませんでした。
スケッチとしては黒い線に右(左)のセンサーが乗ったら右(左)に何度角度を曲げて進むというスケッチにしたいと思っています。
赤外線センサー;ELEGOOについているセンサー(赤外線センサーが3つ付いています)
サーボモーター;SANWA RS-991(販売終了)
スケッチでA0、A1、A2をこのように接続しています
A0=L (赤外線センサー"左")
A1=M (赤外線センサー"真ん中")
A2=R (赤外線センサー"右")
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin1 = A0; // analog pin used to connect the potentiometer
int potpin2 = A1;
int potpin3 = A2;
int val; // variable to read the value from the analog pin
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
Serial.println(); //シリアルモニタにデータを出力
digitalRead(9);
if (0) {
val = 180;
myservo.write(90); //サーボを動かす(135度)
val = 0; //変数の初期化
delay(2000); //ボタンを押してから何秒後に”135度に傾くか”
myservo.write(90); //サーボを動かす 初期0度(90度の位置)
delay(2000); //135度で何秒間止まるか
}
{
val = analogRead(potpin1); // reads the value of the potentiometer (value between 0 and 1023)
val = analogRead(potpin2);
val = analogRead(potpin3);
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(200); // waits for the servo to get ther
}
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。