/* Arduino Security System with the Keypad and LCD
* Creator Mert Kılıç - Mert Arduino Tutorial and Project
* Please subscribe for support
* Thanks
*/
#include <LiquidCrystal.h> //include LCD library (standard library)
#include <Keypad.h> //include keypad library - first you must install library (library link in the video description)
#define redLED 10 //define the LED pins
#define greenLED 11
char* password ="3945"; //create a password
int pozisyon = 0; //keypad position
const byte rows = 4; //number of the keypad's rows and columns
const byte cols = 4;
char keyMap [rows] [cols] = { //define the cymbols on the buttons of the keypad
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins [rows] = {2, 3, 4, 5}; //pins of the keypad
byte colPins [cols] = {6, 7, 8, 9};
Keypad myKeypad = Keypad( makeKeymap(keyMap), rowPins, colPins, rows, cols);
LiquidCrystal lcd (A0, A1, A2, A3, A4, A5); // pins of the LCD. (RS, E, D4, D5, D6, D7)
void setup(){
lcd.begin(16, 2);
pinMode(redLED, OUTPUT); //set the LED as an output
pinMode(greenLED, OUTPUT);
setLocked (true);//state of the password
}
void loop(){
char whichKey = myKeypad.getKey(); //define which key is pressed with getKey
lcd.setCursor(0, 0);
lcd.print(" MARION APPT 4 ");
lcd.setCursor(0, 1);
lcd.print(" TEL0680184xxx ");
if(whichKey == '*' || whichKey == '#' || whichKey == 'A' || //define invalid keys
whichKey == 'B' || whichKey == 'C' || whichKey == 'D'){
pozisyon=0;
setLocked (true);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ENTER PASSWORD ");
delay(2000);
lcd.clear();
}
if(whichKey == password [pozisyon]){
pozisyon ++;
}
if(pozisyon == 4){
setLocked (false);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("******MERCI*****");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" CLAVIER BLOQUE ");
lcd.setCursor(0, 1);
lcd.print("PRESS A B C ou D"); // appuyer sur A B C ou D pour entrer le code à nouveau
delay(3000);
lcd.clear();
}
delay(100);
}
void setLocked(int locked){
if(locked){
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
}
else{
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
delay(5000); // la led verte s'éteint mais il faut appuyer sur a b c ou d pour réarmer
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
}
}
Bonjour;
J'ai pris ce code sur internet pour, au final, mettre une gâchette électrique sur ma boite à lettre.
j'ai ajouté un délais de 5000 pour que le solénoïde ne chauffe pas mais comme vous pouvez le constater sur la photo, la led verte n'est pas allumé mais le relais est activé, pourtant la broche 'in' du relais est branché sur la led mais quelques millivolts passent apparemment, suffisant pour activer le relais
Pourriez vous m'aider pour corriger le code afin qu'il soit défini que greenLED est un signal pour activer un relais pendant 5 sec après que le code ait été entré.
je précise qu'avec le code d'origine, greenLED reste toujours allumé lorsque le code est entré, pour l'éteindre il fallait appuyer sur A, B, C, D, # ou *
Je suis novice, j'apprend grace à internet depuis peu. merci pour votre aide
voici le code d'origine:
Définir les touches du clavier
/ * Système de sécurité Arduino avec clavier et écran LCD
* Créateur Mert Kılıç - Tutoriel et projet Mert Arduino
* S'il vous plaît abonnez-vous pour le soutien
* Merci
* /
#include <LiquidCrystal.h> // inclut la bibliothèque LCD (bibliothèque standard)
#include <Keypad.h> // inclut la bibliothèque du clavier - vous devez d'abord installer la bibliothèque (lien de la bibliothèque dans la description de la vidéo)
#define redLED 10 // définit les pins
#define greenLED 11
char * password = "1234"; //Créer un mot de passe
int pozisyon = 0; // position du clavier
lignes d'octets const = 4; // nombre de lignes et de colonnes du clavier
const byte cols = 4;
char keyMap [rows] [cols] = {// définit les cymbols sur les boutons du clavier
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins [rows] = {1, 2, 3, 4}; // broches du clavier
octets colpins [cols] = {5, 6, 7, 8};
Clavier myKeypad = Clavier (makeKeymap (keyMap), rowPins, colPins, lignes, cols);
LiquidCrystal lcd (A0, A1, A2, A3, A4, A5); // broches de l'écran LCD. (RS, E, D4, D5, D6, D7)
void setup(){
lcd.begin (16, 2);
pinMode (redLED, OUTPUT); // met la LED en sortie
pinMode (greenLED, OUTPUT);
setLocked (true); // état du mot de passe
}
boucle vide () {
char whoKey = myKeypad.getKey (); // définir quelle touche est pressée avec getKey
lcd.setCursor (0, 0);
lcd.print ("Bienvenue");
lcd.setCursor (0, 1);
lcd.print ("Enter Password");
if (whichKey == '*' || whichKey == '#' || whichKey == 'A' || // définit des clés non valides
whichKey == 'B' || whichKey == 'C' || quelle clé == 'D') {
pozisyon = 0;
setLocked (true);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("clé non valide!");
délai (1000);
lcd.clear ();
}
if (whichKey == password [pozisyon]) {
pozisyon ++;
}
si (pozisyon == 4) {
setLocked (false);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("*** Verified ***");
retard (3000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Mert Arduino");
lcd.setCursor (0, 1);
lcd.print ("Tutorial Project");
délai (7000);
lcd.clear ();
}
retard (100);
}
void setLocked (int locked) {
si (verrouillé) {
digitalWrite (REDLED, HIGH);
digitalWrite (greenLED, LOW);
}
autre{
digitalWrite (redLED, LOW);
digitalWrite (greenLED, HIGH);
}
}