Я новичок в Arduino. И я пытаюсь создать программу, которая получает ИК-коды от пульта телевизора, использует их в качестве 4-значного кода доступа, загорающегося светодиодом при нажатии каждой кнопки. А потом сравнивать код с жестко закодированным. В этом случае 1234.
Я сделал функцию, чтобы убедиться, что введенное значение равно проходу. Если это так, зажгите зеленый светодиод, а в противном случае загорится красный.
Однако, даже если я введу правильный код, загорается только красный светодиод.
Вот весь мой код, так как я не уверен, какая его часть вызывает проблемы:
const int pass[4] = {1, 2, 3, 4};
int value[4] = {};
int digitNum = 0;
int input;
void loop()
{
value[digitNum] = input; //where input is a number between 0 and 9
digitNum++;
if(digitNum == 1){
lightFirstLed();
}
else if(digitNum == 2){
lightSecondLed();
}
else if(digitNum == 3){
lightThirdLed();
}
else if(digitNum == 4){
lightFourthLed();
verify();
}
}
void verify()
{
bool falseCharacter = false;
for(int i = 0; i <= 4; i++){
if(value[i] != pass[i]){
falseCharacter = true;
}
}
if(!falseCharacter){
lightGreenLed();
}
else{
lightRedLed();
}
}
Функции в виде света * На самом деле Led делает то, что должен.
Я попытался изменить функцию проверки вокруг, в результате чего зеленый индикатор стал всегда светящимся. Я занимаюсь этим часами и начинаю чувствовать себя разрозненным.
Я был бы очень признателен за любую помощь. И, пожалуйста, скажите мне, если что-то, что я делаю, не соответствует передовым методам, даже если это выходит за рамки этого вопроса.
Полный код и дизайн приведены по ссылке на симулятор Autodesk: https://www.tinkercad.com/things/0keqmlhVqNp-mighty-leelo/editel?tenant=circuits?sharecode=vVUD2_4774Lj4PYXh6doFcOqWUMY2URIfW8VXGxutRE=
РЕДАКТИРОВАТЬ: теперь сброс не работает