Как написать программу, которая включает оба встроенных светодиода ТОЛЬКО при включении ОБОИХ выключателей
int btn1=0;
int btn2=0;
void setup()
{
// put your setup code here, to run once:
pinMode(GREEN_LED,OUTPUT);
digitalWrite(GREEN_LED,HIGH);
pinMode(RED_LED,OUTPUT);
digitalWrite(RED_LED,HIGH);
}
void loop()
{
// put your main code here, to run repeatedly:
int btn1 = digitalRead(P2_3);
int btn2 = digitalRead(P2_4);
if(btn1==0&&btn2==0){
digitalWrite(GREEN_LED,LOW);
digitalWrite(RED_LED,LOW);
}
else{
digitalWrite(GREEN_LED,HIGH);
digitalWrite(RED_LED,HIGH);
}
}
@Ana lu, 👍-1
Обсуждение1 ответ
▲ 1
Вы уверены, что btn1 и btn2 равны 0? Попробуйте поставить серийный отпечаток и проверить значения.
Кроме того, размер вашей программы может быть значительно уменьшен:
Во-первых: создайте функцию для включения или выключения обеих кнопок:
void SwitchLed(int state)
{
digitalWrite(GREEN_LED, state);
digitalWrite(RED_LED, state);
}
Ваши программные функции станут:
void setup()
{
pinMode(GREEN_LED,OUTPUT);
pinMode(GREEN_LED,OUTPUT);
Switch(HIGH);
}
void loop()
{
int btn1 = digitalRead(P2_3);
int btn2 = digitalRead(P2_4);
Switch(btn1==0&&btn2==0 ? LOW : HIGH);
}
Также рекомендуется использовать ( и ) вокруг (под) выражений, таких как последняя строка:
Switch((btn1 == 0) && (btn2 == 0) ? LOW : HIGH);
,
@Michel Keijzers
Смотрите также:
- Как запитать Arduino и 1 цветную светодиодную ленту от одного источника питания
- Почему мой код обрабатывает звуковой датчик так, как будто он всегда ВЫСОКИЙ?
- Светодиод на том же контакте, что и тумблер, не горит
- Питание Arduino и светодиодной ленты
- Почему мои четыре батареи (6 В) не могут питать эту схему, а USB 5 В от Arduino может?
- Как сохранить регулятор прохладным, пока батарея питает Arduino и аксессуары?
- Подключение светодиодов и кнопок на расстоянии 12 футов от Arduino UNO
- Питание светодиодной ленты - Сколько ампер?
Вы сделали что-нибудь, чтобы осудить пуговицы? Я предполагаю, что это кнопки из ваших имен переменных., @RubberDuck
И где вы определяете входы как входы?, @gre_gor
Проверка логических операций "И" https://www.arduino.cc/reference/en/language/structure/boolean-operators/logicaland/, @MatsK