Tomo Tomo
Messages: 473
Inscription: 02/01/2018
Localisation: AISNE
Ma tomate préférée: la rose de Berne
Vos poupo, armoires chauffantes, éclairages leds ou à la bougie, c'est ici
Tomo Tomo
Messages: 473
Inscription: 02/01/2018
Localisation: AISNE
Ma tomate préférée: la rose de Berne
Tomo VIP
Messages: 10377
Inscription: 13/03/2008
Localisation: campagne gersoise
Ma tomate préférée: Captain Lucky
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc; // Declaration du module RTC
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,20,4); //l'adresse de l'ecran est 0x3F,lecran à 20 caracteres et 4 lignes
/*
Ports utilisés :
Analog Pin 4 = SDA pour ds3231
Analog Pin 5 = SCL pour ds3231
Digital Pin 2 = PWM Blanc
Digital Pin 4 = PWM Full spectrum
Digital pin 40 = relais pour le ventilo Led blanche
Digital pin 36 = relais pour le ventilo Led Full Spectrum
Pour info :
PWM1 = intensité des blancs
PWM2 = intensité des full spectrum
relais = état du relais du ventilo des Led
*/
//Initialisation des ports
int pwm1=2;
int pwm2=6;
int time;
int val_up=0;
int val_down=0;
int relaisb=40;
int relaisfs=36;
void setup()
{
Wire.begin();
rtc.begin();
Serial.begin(9600); //initialise la communication pour le DS1307
analogWrite(pwm1,0); //initialise à 0 les leds blanches
analogWrite(pwm2,0); //initialise à 0 les leds full spectrum
pinMode(relaisb, OUTPUT); //initialise le port du relais des Led blanches en sortie
digitalWrite(relaisb, HIGH); //le relais est éteint à l'initialisation
pinMode(relaisfs, OUTPUT); //initialise le port du relais des Led Full spectrum en sortie
digitalWrite(relaisfs, HIGH); //le relais est éteint à l'initialisation
}
void loop()
{
lcd.init();//initialisation ecran lcd
lcd.backlight();//alumage retroeclairage
DateTime now = rtc.now(); // On récupère le temps actuel
/*
Affichage de l'heure
lcd.print(now.hour());
lcd.print(" heures ");
lcd.print(now.minute());
lcd.print(" minutes");
*/
val_up = (map (now.minute(), 0, 59, 0, 255));
/*permet d’attribuer une valeur d’intensité des leds croissante sur 59 minutes, comprise entre 0 et
255 (valeur maximale du signal PWM)*/
val_down = (map (now.minute(), 0, 59, 255, 0));
/*permet d’attribuer une valeur d’intensité des leds décroissante sur 59 minutes, comprise entre
255 et 0 (valeur minimale du signal PWM */
// si necessaire mise à l'heure du module RTC avec l'exemple DS 1307RTC Set time
// ****************LED BLANCHES*************************************************
// plage horaire de 9h à 22h
// pin2
if (now.hour() == 9) //entre 9 h et 9h59
{
analogWrite (pwm2, val_up); //allumage progressif
}
else if (now.hour() == 21) //entre 21 h et 21h59
{
analogWrite (pwm2, val_down); // extinction progressive
}
else if ((now.hour() > 9) && (now.hour() < 21))//entre 10h et 20h
{
analogWrite(pwm2, 255); // allumage max
}
else
{
analogWrite(pwm2, 0);//le reste du temps les leds blanches sont éteintes
}
/*
lcd.print("intensite Full Spectrum ");
lcd.print(pwm2);
lcd.print("intensité blanc ");
lcd.print(pwm1);
*/
//****************FULL SPECTRUM*************************************************
// pin 4
// plage horaire de 11h à 21h
if (now.hour() == 11) //entre 11:00:00 et 11:59:59
{
analogWrite (pwm1, val_up*0.8); //allumage progressif
}
else if (now.hour() == 20) //entre 20:00:00 et 20:59:59
{
analogWrite (pwm1, val_down*0.8); // extinction progressive
}
else if ((now.hour() > 11 ) && (now.hour() < 20))//entre 13:00:00 et 19:59:59 allumage max
{
analogWrite(pwm1, 255);
}
else
{
analogWrite(pwm1, 0);//le reste du temps les leds blanches sont éteintes
}
//****************Ventilateur ********************************************
//les blocs 8 relais sont commandées par le -
//Led blanches
if (pwm2 > 0) //Si les leds blanches sont allumées
{
digitalWrite(relaisb, LOW);//relais ventilo ON
}
else
{
digitalWrite(relaisb, HIGH);//relais ventilo OFF
}
//Led Full spectrum
if (pwm1 > 0)//Si les leds full spectrum sont allumées
{
digitalWrite(relaisfs, LOW);//relais ventilo ON
}
else {
digitalWrite(relaisfs, HIGH);//relais ventilo OFF
}
//****************ALIM ********************************************
if (pwm2 > 0) //Si les leds blanches sont allumées
{
digitalWrite(relaisb, LOW);//relais alim ON
}
else
{
digitalWrite(relaisb, HIGH);//relais alim OFF
}
}
Animateur Forum
Messages: 4694
Inscription: 19/01/2011
Localisation: Hauts-Cantons du 34
Ma tomate préférée: ????????
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Tomo Tomo
Messages: 405
Inscription: 15/12/2017
Localisation: Finistère
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Tomo VIP
Messages: 3470
Inscription: 16/09/2008
Localisation: Belgique
Ma tomate préférée: Mustang(s)
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Tomo VIP
Messages: 3470
Inscription: 16/09/2008
Localisation: Belgique
Ma tomate préférée: Mustang(s)
Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Tomo VIP
Messages: 3470
Inscription: 16/09/2008
Localisation: Belgique
Ma tomate préférée: Mustang(s)
Retourner vers Les pouponnières et leur éclairage