Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int VITESSE_MOTEUR = 3 ; // la broche 3 régule la vitesse moteur A
- const int AVANCE_MOTEUR = 4; // moteur commandé sur la broche 4
- int inputPin_1 = 2 ; // entrée pour IR1 (capteur bouteille)
- int pirState_1 = LOW ; // capteur bouteille démarre a 0
- int val_1 = 0 ; // Variable de lecture capteur bouteille
- int inputPin_2 = 12 ; // entrée pour Capteur etiquette
- int pirState_2 = LOW ; // Capteur etiquette démarre a 0
- int val_2 = 0 ; // Variable lecture capteur etiquette
- byte etat=0;
- unsigned long tempo;
- void setup() {
- Serial.begin(9600);
- pinMode (VITESSE_MOTEUR , OUTPUT) ; // défini le PWM comme sortie
- pinMode (AVANCE_MOTEUR , OUTPUT) ; // défini le moteur avant sortie
- pinMode (inputPin_1 , INPUT) ; // défini le capteur bouteille en entrée
- digitalWrite (VITESSE_MOTEUR , LOW) ; // Vitesse basse
- digitalWrite (AVANCE_MOTEUR , LOW) ; // Moteur a l'arret
- pinMode (inputPin_2 , INPUT) ; // défini le capteur etiquette a sortie
- }
- void loop() {
- switch (etat)
- {
- case 0: // attente présence bouteille
- {
- if(!digitalRead(inputPin_1))
- {Serial.println("Bouteille présente");etat=1;tempo=millis();}
- break;
- }
- case 1: // tempo 2s avant mise en route moteur
- {
- if ((millis()-tempo)>2000){etat=2;}
- break;
- }
- case 2: // mise en route moteur et attente entre étiquette
- { Serial.println("avance moteur");
- digitalWrite(AVANCE_MOTEUR , HIGH) ;
- analogWrite(VITESSE_MOTEUR , 150) ;
- if(!digitalRead(inputPin_2))
- {Serial.println("étiquette collée");etat=3;}
- break;
- }
- case 3: // arrêt moteur, attente bouteille enlevée,
- {
- digitalWrite(AVANCE_MOTEUR , LOW) ; // moteur a l'arret
- analogWrite(VITESSE_MOTEUR , 0) ;
- if(digitalRead(inputPin_1)){tempo=millis();etat=4;}
- break;
- }
- case 4: // tempo de 500ms pour confirmer l'enlèvement de la bouteille
- {
- if((digitalRead(inputPin_1))&&(millis()-tempo>500))// on s'assure que la bouteille est absente 500ms
- {Serial.println("attente présence Bouteille");etat=0;}
- break;
- }
- default : {}
- } //case
- } //loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement