1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
| // Librairie indispensable
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#include <Servo.h>
#include <Keypad.h>
Servo ServoMotor;
// Vous pouvez changer le mot de passe mais changer le nombre de caractère plus bas (**)
char* password = "12345";
int buzzer = A0;
int position = 0;
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','#','D'}
};
byte rowPins[ROWS] = { 49, 48, 47, 46 };
byte colPins[COLS] = { 45, 44, 43, 42 };
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// Leds Extérieur
int Red = A1;
int Green = A2;
// Leds Intérieur
int Rouge = A3;
int Vert = A4;
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Rouge, OUTPUT);
pinMode(Vert, OUTPUT);
pinMode(buzzer, OUTPUT);
ServoMotor.attach(2);
LockedPosition(true);
}
void loop()
{
char key = keypad.getKey();
if (key == '*' || key == '#')
{
delay(3500);
tone(buzzer,200,50);
delay(100);
tone(buzzer, 200, 300);
delay(1000);
position = 0;
LockedPosition(true);
}
if (key == password[position])
{
position ++;
}
if (position == 5)//(**)Nombre de caractère pour le mot de passe (**)
{
LockedPosition(false);
}
delay(100);
}
void LockedPosition(int locked)
{
if (locked)
{
lcd.setCursor(0, 0);
lcd.print("Bonjour la porte");
lcd.setCursor(0, 1);
lcd.print("est verrouiller");
digitalWrite(Red, HIGH);
digitalWrite(Rouge, HIGH);
digitalWrite(Green, LOW);
digitalWrite(Vert,LOW);
ServoMotor.write(11);
}
else
{
lcd.clear();
tone(buzzer,523,50);
delay(50);
tone(buzzer, 783, 50);
delay(50);
tone(buzzer, 1046, 50);
delay(50);
tone(buzzer, 1568, 50);
delay(50);
tone(buzzer, 2093, 70);
delay(250);
digitalWrite(Red, LOW);
digitalWrite(Green, HIGH);
digitalWrite(Vert,HIGH);
ServoMotor.write(95);
lcd.setCursor(1, 0);
lcd.print("La porte est");
lcd.setCursor(1, 1);
lcd.print("deverouiller");
}
} |
Partager