Hypero Tomo
Messages: 2578
Inscription: 24/11/2008
Localisation: Perche
Re: La PoupoLed de Nanarf
on obtient ça
et il ne reste plus qu'à copier le code au milieu
- Code:
#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 RTC; // Declaration du module RTC
/*
Ports utilisés :
Analog Pin 4 = SDA pour ds3231
Analog Pin 5 = SCL pour ds3231
Digital Pin 9 = PWM Blanc
Digital Pin 11 = PWM Full spectrum
Digital pin 3 = relais pour le ventilo
Pour info :
PWM1 = intensité des blancs
PWM2 = intensité des full spectrum
relais = état du relais du ventilo des drivers
*/
int pwm1=9;
int pwm2=11;
int time;
int val_up=0;
int val_down=0;
int relais=3;
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(relais, OUTPUT); //initialise le port du relais en sortie
digitalWrite(relais, LOW); //le relais est éteint à l'initialisation
}
void loop()
{
DateTime now = RTC.now(); // On récupère le temps actuel
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 */
/*
Pour vérifier l'heure enlever les balises
Serial.print(now.hour(), DEC);
Serial.println();
Serial.print(now.minute(), DEC);
Serial.println();
delay(3000);
si necessaire mise à l'heure du module RTC avec l'exemple
DS 1307RTC
Set tim
*/
//****************LEDS FULL SPECTRUM***************************************************
/*
pin 11
plage horaire de 9h à 22h
*/
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
}
//****************LEDS BLANCHES*************************************************
/*pin 9
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 ********************************************
if (pwm1 > 0) //Si les leds blanches sont allumées
{
digitalWrite(relais, HIGH);//relais ventilo ON
}
else
{
digitalWrite(relais, LOW);//relais ventilo OFF
}
if (pwm2 > 0)//Si les leds full spectrum sont allumées
{
digitalWrite(relais, HIGH);//relais ventilo ON
}
else {
digitalWrite(relais, LOW);//relais ventilo OFF
}
}
est-ce bête ?
Marie de Rabutin-Chantal, marquise de Sévigné
http://www.leconcombre.com/index.html