Я написал простой метод, который должен генерировать 5-значный пароль, только с цифрами: 1, 2, 3, 4 (например: 42132)
Для этого я использую ESP32с 4 кнопками.Каждая кнопка представляет собой цифру.
Но когда я проверяю свой метод, она просто возвращает «00000».Проблема: метод не ждет, когда я нажму кнопку, он мгновенно возвращает 0. И я уже изменил метод x раз, и я просто не могу понять, почему он возвращает только 00000, не дожидаясь, пока я нажмуКнопки.
Я уже пытался использовать цикл for в методе, но результат был тот же.Он вернул '00000', так как метод не ждал, когда я нажму кнопки.
Мой код:
String pcode="";
int buttonid;
void loop() {
for(int j=0; j< 5;) {
pcode = pcode + passcode();
j++;
}
if(pcode.length() == 5){
Serial.println(pcode);
}
}
static int passcode(){
buttonStateRED=digitalRead(redButton);
buttonStateBLUE=digitalRead(blueButton);
buttonStateYELLOW=digitalRead(yellowButton);
buttonStateGREEN=digitalRead(greenButton);
if(buttonStateRED == HIGH)
{
buttonid=1;
}
else if(buttonStateBLUE == HIGH)
{
buttonid=2;
}
else if(buttonStateYELLOW == HIGH)
{
buttonid=3;
}
else if(buttonStateGREEN == HIGH)
{
buttonid=4;
}
return buttonid;
}
Что мне нужно, так это то, что метод ждет, пока я нажму 5кнопки (например, кнопка 3, кнопка 2, кнопка 3, кнопка 1, кнопка 4 -> пароль = 32314).