#arduino-uno
Вопрос:
Поэтому, когда я нажимаю кнопку 3, предполагается, что светодиод 3 мигает, а кнопка 1 мигает светодиод 1, но когда я нажимаю кнопку 2, предполагается, что они выключатся, но этого не произойдет
Есть идеи, что может быть не так с моим кодом?
// C code
//
const byte button3 = 4;
const byte button1 = 2;
const byte button2 = 3;
const int led1 = 9;
const int led2 = 8;
const int led3 = 7;
int buttonPushCounterRight = 0;
int buttonPushCounterDominant = 0;
int buttonPushCounterLeft = 0;
boolean buttonState = 0;
boolean lastButtonStateRight = 0;
boolean lastButtonStateDominant = 0;
boolean lastButtonStateLeft = 0;
void setup()
{
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(led3, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println (A0);
int potValue = analogRead (A0);
buttonState = digitalRead(button1);
if (buttonState != lastButtonStateLeft)
{
if (buttonState == LOW)
{
buttonPushCounterLeft ;
Serial.println("on");
Serial.print("button pushes: ");
Serial.println(buttonPushCounterLeft);
}
else
{
Serial.println("off");
}
lastButtonStateLeft = buttonState;
}
buttonState = digitalRead(button3);
if (buttonState != lastButtonStateRight)
{
if (buttonState == LOW)
{
buttonPushCounterRight ;
Serial.println("on");
Serial.print("button pushes: ");
Serial.println(buttonPushCounterRight);
}
else
{
Serial.println("off");
}
lastButtonStateRight = buttonState;
}
buttonState = digitalRead(button2);
if (buttonState != lastButtonStateDominant)
{
if (buttonState == LOW)
{
buttonPushCounterDominant ;
Serial.println("on");
Serial.print("button pushes: ");
Serial.println(buttonPushCounterDominant);
}
else
{
Serial.println("off");
}
lastButtonStateDominant = buttonState;
}
Serial.println(digitalRead(button1));
if (buttonPushCounterLeft == 1)
{
digitalWrite(led3, HIGH);
delay (potValue);
digitalWrite(led3, LOW);
delay (potValue);
}
Serial.println(digitalRead(button2));
if (buttonPushCounterDominant == 1)
{
digitalWrite(led3, LOW);
digitalWrite(led1, LOW);
}
Serial.println(digitalRead(button3));
if (buttonPushCounterRight == 1)
{
digitalWrite(led1, HIGH);
delay (potValue);
digitalWrite(led1, LOW);
delay (potValue);
}
}
Когда я один раз нажму кнопку 2, она выключит 2 светодиода, но этого не произойдет
Кроме этого, я не знаю, что делать.
Пожалуйста, проведите меня через мой код и или возможные решения было бы неплохо
Комментарии:
1. Возможно, добавление некоторых
Serial.print
выходных данных отладки может показать вам, что идет не так. Если вы все еще сомневаетесь, пожалуйста, покажите и этот результат.2. Правильны ли соединения? Пожалуйста, проверьте свои соединения и, если они верны, пожалуйста, сообщите мне об этом. После этого я, возможно, проверю код.