Кодовый замок
- Войдите на сайт для отправки комментариев
Ср, 25/11/2020 - 17:57
Здравствуйте, мне нужно чтоб при одном нажатии на 3 кнопки загорался светодиод, а если нажатий больше одного будет включаться зуммер. Проблема с зуммером, он работает постоянно и не выключается, как это исправить?
const int btn[]={5,6,7};
const int red=2;
const int green=3;
const int buzz=4;
int k1=0;
int k2=0;
int k3=0;
int s=0;
int currbtn1=0;
int prevbtn1=0;
int currbtn2=0;
int prevbtn2=0;
int currbtn3=0;
int prevbtn3=0;
void setup()
{
pinMode(btn[0], INPUT);
pinMode(btn[1], INPUT);
pinMode(btn[2], INPUT);
pinMode(green, OUTPUT);
pinMode(red, OUTPUT);
pinMode(buzz, OUTPUT);
}
void loop()
{
digitalWrite(red,HIGH);
currbtn1=digitalRead(btn[0]);
currbtn2=digitalRead(btn[1]);
currbtn3=digitalRead(btn[2]);
digitalWrite(buzz,LOW);
if(currbtn1 !=prevbtn1){
if (currbtn1 == HIGH) {
k1++;
}
}
prevbtn1=currbtn1;
if(currbtn2 !=prevbtn2){
if (currbtn2 == HIGH) {
k2++;
}
}
prevbtn2=currbtn2;
if(currbtn3 !=prevbtn3){
if (currbtn3 == HIGH) {
k3++;
}
}
prevbtn3=currbtn3;
if (k1==1 && k2==1 && k3==1){
digitalWrite(red,LOW);
digitalWrite(green,HIGH);
delay(500);
digitalWrite(red,HIGH);
digitalWrite(green,LOW);
k1=0;
k2=0;
k3=0;
}
else if (k1>1 && k2>1 && k3>1) {
tone(buzz,250,50);
}
}
Вопрос: после срабатывания зуммера нажатий становится больше одного, меньше одного или ровно одно?
Вопрос: после срабатывания зуммера нажатий становится больше одного, меньше одного или ровно одно?
Кажется понял в чем ошибка.. Не было зануления нажатий в условии с зуммером