опрос кнопок
- Войдите на сайт для отправки комментариев
Ср, 27/02/2019 - 17:10
имеются электронные часы. решил собрать новую электроную начинку но не как не могу победить кнопки. не могу организовать разовое значение нажатия кнопки добавление флагов не помогает. проблема в том что нога 4 меняет свое значение.то мы с нее считывает то она общая. код но в нем работает бесконечно пока нажата кнопка.
int flag=0;
void setup() {
Serial.begin(9600);
}
void loop() {
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
pinMode(8,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(8)==LOW&&flag==0)
{ flag=1 ;
digitalWrite(A5, HIGH); Serial.println("Alarm");
}
if (digitalRead(8)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A5, LOW);
}
pinMode(7,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(7)==LOW&&flag==0)
{
digitalWrite(A4, HIGH); Serial.println("M-");
}
if (digitalRead(7)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A4, LOW);
}
pinMode(4,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(4)==LOW&&flag==0)
{
digitalWrite(A3, HIGH); Serial.println("H+");
}
if (digitalRead(4)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A3, LOW);
}
pinMode(3,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(3)==HIGH&&flag==0)
{
digitalWrite(A2, HIGH); Serial.println("Set");
}
if (digitalRead(3)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A2, LOW);
}
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
pinMode(5,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(5)==LOW&&flag==0)
{
digitalWrite(A1, HIGH); Serial.println("M+");
}
if (digitalRead(5)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A1, LOW);
}
pinMode(6,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(6)==LOW&&flag==0)
{
digitalWrite(A0, HIGH); Serial.println("H-");
}
if (digitalRead(6)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A0, LOW);
}
}
решает проблему
pinMode(8,INPUT_PULLUP); // вход с подтяжкой
if (digitalRead(8)==LOW&&flag==0)
{ flag=1 ;
digitalWrite(A5, HIGH); Serial.println("Alarm");
}
if (digitalRead(8)==HIGH&&flag==1)
{ flag=0;
digitalWrite(A5, LOW);
}
но только если использовать 1 кнопку. если применить для всех 6 то но при передлючении в режим 4 ноги на общий получается бесконечное нажатие кнопки постоянно.
как решить проблему не могу понять.
у китайцев собранно было по воттакой схеме если правильно ее прочитал
А в чем высший смысл от смены направления 4 пина? Посадите общий провод на землю и радуйтесь - 7 проводов, 6 кнопок. Еще и порт освободите. Или из любви к искусству?
Ну тут типа пытались пины сэкономить, по факту нет.
А так да, можно было все эти кнопки(и ещё столько же сверху) повешать на 4 провода. Но видимо у реализатора мозгов не хватило.
Если нужна экономия, то 6 кнопок с диодами вешаются на 3 цифровых пина. Почти как у китайцев.)