こんにちは、私はcytron MD-10モータードライバシールドでモータの極性を制御するためにarduinoを使用していました。その後、私が仕事に戻ったとき、デジタル読取りピンが高電圧と低電圧とを区別していないかのように見え、ライトの1つが連続的にオンになっていました。出力は測定された4.84ボルトの連続供給で設定されたように機能し、スイッチが閉じて電圧が0に下がり、対応するループに入るはずです。私のボードは揚げられていますか?私は何を試してみてください?arduinoデジタル読み取りが動作しない
if (digitalRead(inSwitch == LOW)) // OOPS!
これはおそらく、falseを返しLOW
、へinSwitch
比較:
const int outSwitch = 13;
const int inSwitch = 12;
const int pinPWM = 3;
const int pinDir = 2;
int lightOne = 11;
int lightTwo= 10;
static int Dir = 1;
static int cycleCounter = 0;
void setup() {
// Set Pin Out/Inputs:
pinMode(pinPWM, OUTPUT);
pinMode(pinDir, OUTPUT);
pinMode(outSwitch, INPUT);
pinMode(inSwitch, INPUT);
pinMode(lightOne, OUTPUT);
pinMode(lightTwo, OUTPUT);
analogWrite(pinPWM, LOW);
}
void loop() {
// Both Read a low input value from the switch and then makes
//direction the opposite causing it to travel backwards:
if(digitalRead(inSwitch == LOW)){
analogWrite(pinPWM, HIGH);
digitalWrite(pinDir,Dir);
digitalWrite(lightOne, LOW);
digitalWrite(lightTwo, HIGH);
}
else if(digitalRead(outSwitch == LOW)){
analogWrite(pinPWM, HIGH);
digitalWrite(pinDir, -Dir);
digitalWrite(lightOne, LOW);
digitalWrite(lightTwo, HIGH);
}
}
'if'および' else if'条件では、角カッコが間違っています。 'if(digitalRead(inSwitch)== LOW)'と 'else if(digitalRead(outSwitch)== LOW)'である必要があります。 – Sma