permier parti
#include "LiquidCrystal.h"
#include "Keypad.h"
#include "Tone.h"
#define pound 14
Tone tone1;
int Scount = 0; // compteur secondes
int Mcount = 0; // compteur minutes
int Hcount = 0; // compteur heures
int DefuseTimer = 0;
long secMillis = 0;
long interval = 1000; // delais pour 1 seconde en ms
char password[6]; // nombre de chiffres dans le code
int currentLength = 0; //defini le nombre de caractere écrits par defaut
int i = 0;
int j = 0;
char entered[6];
int alarme = A1; // tempo alarme
int ledPin2 = A2; // led rouge
int ledPin3 = A3; // led verte
int etatangle = 0;
char Hcountset[2];
char Mcountset[2];
char Scountset[2];
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // les pins utilisés par le LCD
const byte ROWS = 4; // 4 rows
const byte COLS = 3; // 3 columns
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[ROWS] = {13, 12, 11, 3}; // connecté aux pins de sorties des rows clavier
byte colPins[COLS] = {2, A4, A5}; // connecté aux pins de sorties des column clavier
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
pinMode(alarme, OUTPUT); // defini le pin du tempo alarme comme sortie
pinMode(ledPin2, OUTPUT); // defini le pin de la led 2 comme sortie
pinMode(ledPin3, OUTPUT); // defini le pin de la led 3 comme sortie
tone1.begin(6);
lcd.begin(16, 2);
Serial.begin(9600);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Definir temps:" );
lcd.setCursor(4, 1);
lcd.print("HH:MM:SS" );
while (Hcount < 2)
{
lcd.setCursor(Hcount + 4, 1);
lcd.cursor();
char key = keypad.getKey();
key == NO_KEY;
if (key != NO_KEY)
{
if ((key != '*') && (key != '#'))
{
lcd.print(key);
Hcountset[Hcount] = key;
Hcount++;
tone1.play(NOTE_C8, 200);
}
}
}
Hcount = (int) strtol(Hcountset, (char **)NULL, 10);
while (Mcount < 2)
{
lcd.setCursor(Mcount + 7, 1);
lcd.cursor();
char key = keypad.getKey();
key == NO_KEY;
if (key != NO_KEY)
{
if ((key != '*') && (key != '#'))
{
if (((Mcount == 0) && atoi(&key) <= 5) || Mcount > 0) {
lcd.print(key);
Mcountset[Mcount] = key;
Mcount++;
tone1.play(NOTE_C8, 200);
}
}
}
}
Mcount = (int) strtol(Mcountset, (char **)NULL, 10);
while (Scount < 2)
{
lcd.setCursor(Scount + 10, 1);
lcd.cursor();
char key = keypad.getKey();
key == NO_KEY;
if (key != NO_KEY)
{
if ((key != '*') && (key != '#'))
{
if (((Scount == 0) && atoi(&key) <= 5) || Scount > 0)
{
lcd.print(key);
Scountset[Scount] = key;
Scount++;
tone1.play(NOTE_C8, 200);
}
}
}
}
Scount = (int) strtol(Scountset, (char **)NULL, 10);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Entrer Code : " );
while (currentLength < 6)
{
lcd.setCursor(currentLength + 5, 1);
lcd.cursor();
char key = keypad.getKey();
if (key == '#')
{
currentLength = 0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Entrer Code: " );
}
else
key == NO_KEY;
if (key != NO_KEY)
{
if ((key != '*') && (key != '#'))
{
lcd.print(key);
password[currentLength] = key;
currentLength++;
tone1.play(NOTE_C8, 200);
}
}
}
if (currentLength == 6)
{
delay(500);
lcd.noCursor();
lcd.clear();
lcd.home();
lcd.print("Code Saisi: " );
lcd.setCursor(5, 1);
lcd.print(password[0]);
lcd.print(password[1]);
lcd.print(password[2]);
lcd.print(password[3]);
lcd.print(password[4]);
lcd.print(password[5]);
tone1.play(NOTE_C8, 500);
delay(3000);
lcd.clear();
currentLength = 0;
}
}
void loop()
{
timer();
char key2 = keypad.getKey();
if (etatangle == HIGH)
{
Hcount = Hcount - 99; // debite 99 heures
Mcount = Mcount - 59;// debite 59 minutes
Scount = Scount - 59; // debite 59 secondes
}
if (interval <= 1) // si l'intervalle seconde est inferieure ou égale à 0
{
Hcount = Hcount - 99; // debite 99 heures
Mcount = Mcount - 59; // debite 59 minutes
Scount = Scount - 59; // debite 59 secondes
}
if (key2 == '*')
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Code: " );
while (currentLength < 6)
{
timer();
char key2 = keypad.getKey();
if (key2 == '#')
{
currentLength = 0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Code: " );
}
else if (key2 != NO_KEY)
{
lcd.setCursor(currentLength + 7, 0);
lcd.cursor();
lcd.print(key2);
entered[currentLength] = key2;
currentLength++;
tone1.play(NOTE_C8, 200);
delay(100);
lcd.noCursor();
lcd.setCursor(currentLength + 6, 0);
lcd.print("*");
lcd.setCursor(currentLength + 7, 0);
lcd.cursor();
}
}