Paso 4: Codificación y final instalación de componente.
Conecté la pantalla LCD al puerto del escudo I2C conector de Edison y el led del pin13 y pin12
Donde el verde es pin13 y rojo es el pin 12.
Y por supuesto el verde abierta y red cerraron.
Es fácil cambiar los LEDs de un relé o un motor servo por ejemplo. El led sólo indica cuando hay corriente o no.
Ahora para el código.
Primera definición de la biblioteca y variables globales.
Esto es donde puede cambiar la contraseña para lo que gustes. para cambiar la contraseña simplemente modificar la "contraseña password = contraseña ("1234");" a otra cosa como contraseña ("1230985");
#include #include #include #include "rgb_lcd.h"rgb_lcd lcd;Password password = Password("1234");const byte ROWS = 4; const byte COLS = 3; char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'}};byte rowPins[ROWS] = {5, 4, 3, 2}; byte colPins[COLS] = {8, 7, 6}; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );byte greenLed = 13; byte redLed = 12;
Luego hacer la instalación.
void setup(){ lcd.begin(16, 2);pinMode(greenLed, OUTPUT); pinMode(redLed, OUTPUT); digitalWrite(greenLed, LOW); digitalWrite(redLed, LOW);Serial.begin(115200);keypad.addEventListener(keypadEvent); keypad.setDebounceTime(10);}
Y el lazo.
void loop(){keypad.getKey(); lcd.setCursor(0,0); lcd.print("Enter pincode"); digitalWrite(redLed,HIGH);}
Por último tenemos que hacer algunos eventos que puede utilizar en el circuito
void keypadEvent(KeypadEvent eKey){switch (keypad.getState()){case PRESSED:lcd.setCursor(0,1);lcd.print(eKey);Serial.print(eKey);switch (eKey){case '#': guessPassword(); break;default:password.append(eKey);}}}void guessPassword(){if (password.evaluate()){ digitalWrite(redLed, LOW); lcd.setCursor(0,0);lcd.print(" ");digitalWrite(greenLed,HIGH); lcd.setCursor(0,0);lcd.print("Correct.");Serial.println("Correct.");lcd.setCursor(0,1);lcd.print("Unlocked");password.reset();delay(10000);digitalWrite(greenLed,LOW);lcd.clear();}else{digitalWrite(greenLed, LOW);digitalWrite(redLed,HIGH);lcd.clear();lcd.setCursor(0,0);lcd.print("Wrong code");lcd.setCursor(0,1);lcd.print("Try again.");Serial.println("Try again");digitalWrite(redLed, LOW);delay(100);digitalWrite(redLed, HIGH);delay(100);digitalWrite(redLed, LOW);delay(100);digitalWrite(redLed, HIGH);delay(100);digitalWrite(redLed, LOW);delay(100);digitalWrite(redLed, HIGH);delay(100);digitalWrite(redLed, LOW);delay(100);digitalWrite(redLed, HIGH);delay(100);password.reset(); delay(1000);lcd.clear();}}