Bonjour à tous (et à toutes),
Je m'appelle Valentin et j'ai 16 ans et je suis un débutant en programmation. J'ai créé un poulailler automatique (qui lève et ferme la trappe en fonction de la luminosité) et qui fonctionne avec un panneau solaire qui recharge une batterie de 550mAh. Lorsque la trappe se ferme, un bip-bip retentit et une LED clignote. Lorsque la trappe est fermée, la led reste allumée jusqu'au matin en attendant la levée de la trappe. Je souhaiterais éventuellement ajouter un capteur de température et une led bleue. Lorsque la température sera inférieure à 3°C, la LED bleue s'allumera et le système cessera de fonctionner. Cependant, la batterie ne se recharge pas assez ce qui fait que les poules ne peuvent pas sortir le matin. La cause : ma carte Arduino et tous les capteurs, LED, bipper… consomment trop. Le panneau solaire peine à recharger la batterie même si celle ci arrive à fermer la trappe le soir. En effet, l'énergie produite par ce dernier se rends en majorité dans la carte et est consommée immédiatement (et inutilement). C'est pour cela que je sollicite votre aide afin de pouvoir mener à bout mon petit projet. Je souhaiterai pouvoir réduire la consommation de mon Arduino UNO en la mettant en veille entre toutes les mesures faites par la photorésistance (qui ont lieu toutes les 30 minutes) et ce, directement dans le programme même de mon Arduino. Je sais que cela est possible car je me suis renseigné mais je ne suis pas assez aguerri pour tout comprendre . Voici le code actuel :
Code:int analogPin=0; int analogValue=0; int ledPin=6; int led2Pin=10; int ouvert=0; int ferme=0; const int switchPin1 = 2; const int switchPin2 = 4; void setup() { Serial.begin(9600); pinMode(ledPin,OUTPUT); pinMode(led2Pin,OUTPUT); pinMode(12,OUTPUT); pinMode(9,OUTPUT); pinMode(switchPin1, INPUT); digitalWrite(switchPin1, HIGH); pinMode(switchPin2, INPUT); digitalWrite(switchPin2, HIGH); } void loop() { analogValue=analogRead(analogPin); if (analogValue >= 70) { if (ouvert == 0) { digitalWrite(12,HIGH); digitalWrite(9,LOW); analogWrite(3,255); if(digitalRead(switchPin1) == LOW){ digitalWrite(9,HIGH); digitalWrite(ledPin,LOW); ouvert=1; ferme=0; delay(1800000); } } } else { if (ferme == 0) { digitalWrite(ledPin,HIGH); digitalWrite(led2Pin, HIGH); delay(500); digitalWrite(ledPin,LOW); digitalWrite(led2Pin, LOW); delay(500); digitalWrite(ledPin,HIGH); digitalWrite(led2Pin, HIGH); delay(500); digitalWrite(ledPin,LOW); digitalWrite(led2Pin, LOW); delay(500); digitalWrite(ledPin,HIGH); digitalWrite(led2Pin, HIGH); delay(500); digitalWrite(ledPin,LOW); digitalWrite(led2Pin, LOW); delay(500); digitalWrite(ledPin,HIGH); digitalWrite(led2Pin, HIGH); delay(500); digitalWrite(ledPin,LOW); digitalWrite(led2Pin, LOW); delay(500); digitalWrite(led2Pin, LOW); digitalWrite(ledPin,HIGH); digitalWrite(12,LOW); digitalWrite(9,LOW); analogWrite(3,255); if(digitalRead(switchPin2) == LOW){ digitalWrite(9,HIGH); delay(1800000); ouvert=0; ferme=1; } else { } } } }
Bon je sais, il n'est pas parfait-parfait...mais il fonctionne !!! Je vous remercie d'avoir pris le temps de me lire. En esperant pouvoir être aidé,
Bonne journée
Cordialement
Valentin
-----