Problème avec code de trappe de poulailler


bonjour, à vous, j'ai un soucis avec mon code d'ouverture de ma trappe de poulailler.
j'utilise un module l298n, un capteur de luminosité et un arduino uno  pour actionner mon moteur dans un sens ou dans l'autre. en fontion d'un seuil de luminosité ( ici 800), le moteur doit ouvrir la trappe, s'arrêter 19 secondes plus tard et attendre gentiment le soir pour refermer et s'arreter à nouveau 19 s plus tard.

j'envisage d'utiliser des contacteurs de fin de course, mais je voulais d'abord introduire les notions de temps pour gérer les arrêts.

ca fait plusieurs heures que je cherche, mais je m'arrache les  cheveux .
pouvez vous me mettre sur la voix , sil vous plait

merci beaucoup

//************************************************//
//  ouverture d'une trappe de poulailler
//  zimmermann frédéric
//  18 01 2015
//************************************************


unsigned long intervaltravail = 19000;
unsigned long temps ;



int pinlumiere=0;        //broche analogique de mesure d'éclairement
int pinseuillumiere=3;   //broche numérique mesure d'éclairement
int tension=0;     //mesure de tension (valeur élevée si sombre)
int eclaire =0;    //0 ou 1 (0=éclairé>seuil, 1=ombre<seuil)
int enb = 11; //  reglage vitesse moteur
int in3 = 8; // pont en h moteur a
int in4 = 9; // pont en h moteur a

void setup(){ // initialisation
    serial.begin(9600);  //connection série à 9600 baud
    pinmode(pinlumiere, input);       //pin a0 en entrée analogique
    pinmode(pinseuillumiere, input);  //pin 3 en entrée numérique
    pinmode(enb,output);
    pinmode(in3,output);
    pinmode(in4,output);
   
}

void loop() { //boucle principale
    tension = analogread(pinlumiere); // lit la tension analogique
    eclaire = digitalread(pinseuillumiere);
    serial.println(tension); // afficher la mesure
    //serial.print("  ");   
    //serial.println(eclaire);  //0 ou 1
    delay(400); //delai entre 2 mesures 400ms
   


    if (tension < 800) // si il fait jour
       
         {
         
                  digitalwrite(enb, high);        // on ouvre la trappe
                  digitalwrite(in3, high);
                  digitalwrite(in4, low);
         
         
     
              temps =millis();
             
              {
          if (millis() - temps >= intervaltravail) // si on depasse 19 s on eteint le moteur
            {
               digitalwrite(enb, low);
             
           }}}}
     
                 
         

pourquoi pas juste un delay() ?
code: [select]
delay(intervaltravail);
digitalwrite(enb, low);


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Problème avec code de trappe de poulailler


arduino

Comments

Popular posts from this blog

invalid use of void expresion in FlexiTimer2 library

error: a function-definition is not allowed here before '{' token

LED Strip Code