Простой пароль на Arduino
- Войдите на сайт для отправки комментариев
Чт, 06/11/2014 - 15:45
Доброго времени суток. Я новичок в Arduino, поэтому заранее прошу прошения. Написал простенький код для создания пароля с клавой 4х4, а он не фурычит. Я так понимаю он постоянно крутиться в void loop, как это исправиnь не знаю. Кто может подсказать? Спасибо.
#include <Keypad.h> #include <Password.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> Password password = Password( "1234" ); int alarmCounter = 0; LiquidCrystal_I2C lcd(0x3f,16,2); const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'0','F','E','D'} }; byte rowPins[ROWS] = {11, 10, 9, 8}; byte colPins[COLS] = {7, 6, 5, 4}; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup() { lcd.init(); lcd.backlight(); keypad.addEventListener(keypadEvent); } void loop() { int chk; } void keypadEvent(KeypadEvent key){ switch (keypad.getState()) { case PRESSED: switch (key) { case 'B': guessPassword(); break; case 'A': password.reset(); break; default : if (int(key) != 0) { lcd.setCursor(1,0); lcd.print("Password:"); lcd.setCursor(0,1); lcd.print("*"); } password.append(key); } } } void guessPassword() { if (password.evaluate()) { lcd.setCursor(0,0); lcd.print("Success"); delay(2000); password.reset(); alarmCounter = 0; } else { lcd.setCursor(0,0); lcd.print("Wrong password"); lcd.setCursor(0,1); lcd.print("Try again"); delay(3000); password.reset(); alarmCounter++; if (alarmCounter >= 3) { lcd.setCursor(0,0); lcd.print("Wrong password!"); lcd.setCursor(0,1); lcd.print("Wait 5 min"); delay(30000); } } }
в setup вводи пароль
а в loop крути результат
Happy, попробуйте в loop добавить
keypad.getKey();
Работает, спасибо.