Bonjour, je suis en train d'essayer de fabriquer un distributeur automatique de croquettes constitué d'un servomoteur et d'un bouton-poussoir. Le but de ce projet est de distribuer des croquettes toutes les heures(3600000 ms) ou alors d'appuyer sur un bouton-poussoir. La partie du code avec le bouton-poussoir marche parfaitement, mon problème se trouve dans la partie automatique si je teste avec un délai de 30 secondes (servodelay=30000) le système marche par contre lorsque je mets 5 minutes ou 1 heure cela ne marche plus. Merci d'avance pour votre aide et bonne journée.
code:
#include <Servo.h>
Servo myservo;
int servodelay = 3600000; //le delay de déclanchement
long premillis = 0;
const byte bp = 2 ;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myservo.attach(8);
myservo.write(0);
pinMode(bp, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(millis());
Serial.println(premillis);
//partie automatique
if(millis() - premillis > servodelay){
myservo.write(179);
delay(10000);
myservo.write(0);
delay(1000);
premillis = millis();
}
//partie avec le bouton poussoir
if (digitalRead(bp) == LOW) {
myservo.write(179);
delay(10000);
myservo.write(0);
delay(1000);
premillis = millis();
}
}
câblage: