Bonjour,
J'ai un petit projet qui peut paraître assez étrange, mais qui est en faite très concret. Pour mon projet professionnel actuel j'ai besoin d'un "chasse poule" vu la taille que j'ai besoin et les prix du commerce je voudrais le faire moi même
Organisation général:
Un transformateur 220V > 12V / un variateur 12V contrôler par une carte arduino / un vérin
Pour le programme: à 17H le vérin "pousse" le tube à vitesse faible et par à coup, à 5H le vérin "tire" le tube.
Je voudrais contrôler un vérin qui va effectué à un tube une rotation de 100° sur sont l'axe, pour ouvrir et fermer les nids
Le tube: Diamètre 4cm (avec une tige de 10cm pour la fixation du vérin) Longueur 5.4m avec une grille de 40cm fixé tout le long (ce qui chasse les poules) le tout représente 40kg environ
Le schéma: Lien image externe supprimé
Code:#include <Wire.h> #include <RTClib.h> int T1 = 3; int T2 = 5; int T3 = 9; int T4 = 10; int etat_verin; RTC_DS1307 RTC; void setup() { Serial.begin(57600); Wire.begin(); RTC.begin(); etat_verin = LOW; // le verin est pousser pinMode(T1, OUTPUT); // les transistors sont en sortie pinMode(T2, OUTPUT); pinMode(T3, OUTPUT); pinMode(T4, OUTPUT); analogWrite(T1, 127); // le verin est poussé au depart analogWrite(T2, 0); analogWrite(T3, 0); analogWrite(T4, 255); } void loop() { DateTime now = RTC.now(); if (now.hour() == 05 && now.minute() < 01 && etat_verin == LOW) // fonction verin relaché { analogWrite(T1, 0); // on bloque le trasnsistor 1 analogWrite(T4, 0); // on bloque le 4 analogWrite(T2, 127);// le 2 gère la tension en PWM analogWrite(T3, 255); // on ouvre le 3 etat_verin = HIGH; // relacher } else { analogWrite(T1, 255); // sinon frein magnetique analogWrite(T2, 255); analogWrite(T3, 0); analogWrite(T4, 0); } if (now.hour() == 17 && now.minute() < 01 && etat_verin == HIGH) // fonction verin poussé { analogWrite(T1, 127);// PWM T1 analogWrite(T2, 0); analogWrite(T3, 0); analogWrite(T4, 255); etat_verin = LOW; // pousser } else { analogWrite(T1, 255); analogWrite(T2, 255); analogWrite(T3, 0); analogWrite(T4, 0); } }
-----