私は Arduino Uno を使用しており、学校のプロジェクトの 2 つの部分を一緒にコーディングしようとしています。両方のパーツは個別に正常に機能しますが、組み合わせると、パーツ 1 のみが機能します。パート 1: 1 つのボタン スイッチ、2 つの LED があり、1 つが点灯し、もう 1 つが消灯し、ボタンがオンまたはオフになります。パート 2: ポテンショメータによって制御されるサーボ
私は、ボタンが押されたときにのみサーボが動作することを確認しました.これは起こるべきではありません.ポテンショメーター/サーボコードはLEDのコードに依存すべきではありません. 私は間違いなくこれの初心者であり、コードが何をしているのかをあまり理解していません。どんな助けでも大歓迎です。
#include <Servo.h>
Servo myServo;
int const potPin = A0;
int potVal;
int angle;
int switchState;
int lastSwitchState = 0;
const int bluePin = 3;
const int yellowPin = 4;
const int button = 2;
int bluelight = LOW;
int yellowlight = HIGH;
void setup(){
pinMode(bluePin, OUTPUT); //blue LED
pinMode(yellowPin, OUTPUT); //yellow LED
pinMode(button, INPUT); //switch
myServo.attach(9);
Serial.begin(9600);
}
void loop(){
// PART 1 - this is the only part that seems to be working now?
switchState = digitalRead(button);
while (digitalRead(button)==LOW);
if (digitalRead(button)==LOW){
bluelight=!bluelight;
digitalWrite(bluePin, bluelight);
digitalWrite(yellowPin, yellowlight);
}
else{
if (switchState=!lastSwitchState) {
yellowlight=!yellowlight;
bluelight=!bluelight;
digitalWrite(yellowPin, yellowlight);
digitalWrite(bluePin, bluelight);
}
}
// PART 2 - Only works when button is pressed?
potVal = analogRead(potPin);
Serial.print("potVal: ");
Serial.print(potVal);
angle = map(potVal, 0, 1023, 0, 179);
Serial.print(", angle: ");
Serial.println(angle);
myServo.write(angle);
delay(250); //wait for a quarter second
}