ECLAIRAGE RTC PAR RELAIS

Accueil/Projets/ECLAIRAGE RTC PAR RELAIS
ECLAIRAGE RTC PAR RELAIS 2017-06-24T12:38:44+00:00

Accueil Forums Projets ECLAIRAGE RTC PAR RELAIS

Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • HOHM
    Participant
    Nombre d'articles : 2
    #10042 |

    BONJOUR
    j’aimerai créer eclairage levée et coucher du soleil par relais avec changement automatique de l’heure mois par mois
    on m’a conseiller un switch case pour les mois et j’ai une ldr qui contrôle la lumiére pour enclencher ou non le relais
    je joint le code mais le probleme sait que le relais colle à l’heure de début mais ne se coupe pas à l’heure de fin de programme si quelqu’un peu me donner une idée ,d’avance merci.
    j’ai mis un écran pour pouvoir controler l’heure
    //Mise à l’heure RTC

    #include <Wire.h>
    #include « RTClib.h »
    #include « rgb_lcd.h »

    RTC_DS1307 RTC; //Classe RTC_DS1307
    //set LCD RGB background colour
    const int colorR = 255;
    const int colorG = 255;
    const int colorB = 150;
    rgb_lcd lcd;

    const int relaylight_pin = 8;
    boolean relay_state =false;

    void setup ()
    {
    lcd.begin(16, 2);
    Wire.begin();
    RTC.begin();
    pinMode(relaylight_pin,OUTPUT);
    digitalWrite(relaylight_pin,0);
    }
    void loop()
    {
    heure();
    minute();
    seconde();
    }
    void heure()
    void minute()
    void seconde()
    {
    //Measure light level
    float sensor_reading = analogRead(A0);
    float light = (sensor_reading/1024*100);
    DateTime now = RTC.now();

    if (light < 90) {

    switch (now.month()) {

    case 6:
    if (now.hour()>=05 && now.minute()==11 && now.hour() < (16)&& now.minute()==11) {
    digitalWrite(relaylight_pin, HIGH);
    relay_state = true;
    }
    break;

    case 7:
    if (H,M,S >= (5 * 60 + 54) && H,M,S < (21 * 60 + 15)) {
    digitalWrite(relaylight_pin, HIGH);
    relay_state = true;
    }
    break;
    }

    } else if(light > 90) {
    digitalWrite(relaylight_pin, LOW);
    relay_state = false;
    }
    else
    digitalWrite(relaylight_pin, LOW);

    // l’heure sur la premiere ligne du LCD
    lcd.setCursor(0, 0);
    lcd.print(now.hour());
    lcd.print(« : »);
    if (now.minute() < 10) {
    lcd.print(« 0 »);
    }
    lcd.print(now.minute());
    lcd.print(« : »);
    if (now.second() < 10) {
    lcd.print(« 0″);
    }
    lcd.print(now.second());
    // la date sur la deuxieme ligne du LCD
    lcd.setCursor(0, 1);
    lcd.print(now.day());
    lcd.print( » « );

    switch (now.month()) {
    case 1:
    lcd.print(« janvier »);
    break;
    case 2:
    lcd.print(« fevrier »);
    break;
    case 3:
    lcd.print(« mars »);
    break;
    case 4:
    lcd.print(« avril »);
    break;
    case 5:
    lcd.print(« mai »);
    break;
    case 6:
    lcd.print(« juin »);
    break;
    case 7:
    lcd.print(« juillet »);
    break;
    case 8:
    lcd.print(« aout »);
    break;
    case 9:
    lcd.print(« septembre »);
    break;
    case 10:
    lcd.print(« octobre »);
    break;
    case 11:
    lcd.print(« novembre »);
    break;
    case 12:
    lcd.print(« decembre »);
    break;
    }
    lcd.print( » « );
    lcd.print(now.year());
    delay(1000);
    }

Affichage de 1 message (sur 1 au total)

Vous devez être connecté pour répondre à ce sujet.