Le schéma
Très simple comme la plus part des montages a base de arduino.L'afficheur est un LCD 1x16 ligne.
Quoi de plus simple!!!! A la fin de la temporisation, le buzzer vibrera pendant 2 secondes.
Le code
/* Temporisation by Jojo Bricolo*/#include <LiquidCrystal.h>
int Bpdepart = 7; //Bouton start
int Bpplus = 8; //Bouon +
int Bpmoins = 9; //Bouton -
int Relai = 10; //Base du transistor
int buzzer = 11; //buzzer
int upRead1 = 0; //variable Bouton +
int upRead2 = 0; //Variable vitesse bouton +
int downRead1 = 0; //variable Bouton -
int downRead2 = 0; //Variable vitesse bouton -
int startRead1 = 0; //variable Bouton start
int startRead2 = 0;
int timerCount = 0; //variable comptage
int minutesCount = 0; //variable minutes
int secondsCount = 0; //Variable secondes
LiquidCrystal lcd(5, 6, 4, 3, 2, 1); // E, RS, D4, D5, D6, D7
void setup() {
lcd.print("Tempo");
delay(1000);
lcd.clear();
lcd.print("Appui BP");
pinMode(Relai, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(Bpdepart, INPUT);
pinMode(Bpplus, INPUT);
pinMode(Bpmoins, INPUT);
Serial.begin(9600); //open serial port
}
void lcdWrite()
{
lcd.setCursor(0, 0);
lcd.print(minutesCount); //Affichage de la valeur des minutes
lcd.setCursor(3, 0);
lcd.print("min");
lcd.setCursor(0, 1);
lcd.print(secondsCount); //Affichage de la valeur des minutes
lcd.setCursor(3,1);
lcd.print("sec");
}
void loop() {
//Gestion des boutons
upRead1 = digitalRead(Bpplus);
downRead1 = digitalRead(Bpmoins);
startRead1 = digitalRead(Bpdepart);
delay(40);
upRead2 = digitalRead(Bpplus);
downRead2 = digitalRead(Bpmoins);
startRead2 = digitalRead(Bpdepart);
delay(100);
if(upRead1==upRead2 && upRead1==HIGH)
{
lcd.clear();
secondsCount = secondsCount+5; //Valeur d'incrémentation, ici de 5 en 5 secondes peut être modifié suivant les besoins
if(secondsCount==60)
{
minutesCount++;
secondsCount=0;
}
lcdWrite();
}
if(downRead1==downRead2 && downRead1==HIGH)
{
lcd.clear(); //clear lcd
secondsCount = secondsCount-5; // Valeur d'incrémentation, ici de 5 en 5 secondes peut être modifié suivant les besoins
if(minutesCount>0)
{
if(secondsCount==-5)
{
secondsCount=55;
minutesCount--;
}
else
{
if(secondsCount<0)
{
secondsCount = 0;
minutesCount = 0;
}
}
}
lcdWrite();
if(secondsCount<0)
{
secondsCount=0;
lcd.clear();
lcd.print("0");
}
}
if(startRead1==startRead2 && startRead1==HIGH)
{
timerCount = (minutesCount*60) + secondsCount;
int timerCount2 = timerCount;
Serial.println(timerCount);
for(int i=timerCount;i>0;i--)
{
lcd.clear();
if(timerCount2>60)
{
minutesCount = timerCount2/60;
secondsCount = timerCount2%60;
}
else if(secondsCount==60)
{
secondsCount=59;
}
else
{
minutesCount = 0;
secondsCount = timerCount2;
}
lcdWrite();
digitalWrite(Relai, HIGH);
delay(1000);
timerCount2--;
}
lcd.clear();
lcd.print("Fin");
digitalWrite(Relai, LOW);
//turn on piezo buzzer
analogWrite(buzzer, 255);
delay(3000);
analogWrite(buzzer, 0);
delay(2000);
lcd.clear();
lcd.print("Tempo");
delay(3000);
lcd.clear();
lcd.print("BY JOJO"); // vous pouvez ici mettre votre nom
timerCount = 0;
minutesCount = 0;
secondsCount = 0;
}
}
Si cela vous intéresse, je suis en mesure de vous faire un kit ou même vous réaliser ce montage !!!
N'hésitez pas a me contacter.







