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);
}}}}
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);
}}}}
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Problème avec code de trappe de poulailler
arduino
Comments
Post a Comment