Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- librerie e variabili
- #include <InputDebounce.h>
- #include <Bounce2.h>
- #include <Servo.h>
- int buttonA = 51;
- int buttonB = 52;
- int buttonC = 30;
- int buttonD = 53;
- int fase0 = 22;
- int fase1 = 23;
- int fase2 = 24;
- int fase3 = 25;
- int rele2 = 27;
- int rele3 = 28;
- int rele4 = 29;
- int rele1 = 26;
- int tempo = 10;
- Servo myservo;
- void setup()
- {
- myservo.attach(31);
- pinMode(buttonA, INPUT);
- pinMode(buttonB, INPUT);
- pinMode(buttonC, INPUT);
- pinMode(buttonD, INPUT);
- pinMode(fase0, OUTPUT);
- pinMode(fase1, OUTPUT);
- pinMode(fase2, OUTPUT);
- pinMode(fase3, OUTPUT);
- pinMode(rele2, OUTPUT);
- pinMode(rele3, OUTPUT);
- pinMode(rele4, OUTPUT);
- pinMode(rele1, OUTPUT);
- }
- void loop()
- {
- variabili
- int alpha;
- int beta;
- int gamma;
- int variabile=0;
- int memoria;
- int soglia=250;
- rele che comandano le elettrovalvole scheda rele a logica negativa
- digitalWrite(rele1, HIGH);
- digitalWrite(rele4, HIGH);
- digitalWrite(rele3, HIGH);
- digitalWrite(rele2, HIGH);
- programma
- if(digitalRead(buttonA)==HIGH)
- {
- variabile=1;
- }
- if(digitalRead(buttonC)==HIGH)
- {
- variabile=2;
- }
- while(analogRead(A0)<soglia)
- {
- memoria=HIGH;
- }
- if(analogRead(A0)>=soglia)
- {
- memoria=LOW;
- }
- if(memoria==LOW)
- {
- variabile=3;
- }
- switch(variabile){
- case 1:
- while(digitalRead(buttonC)==LOW)
- {
- digitalWrite(fase0, HIGH);
- digitalWrite(fase3, LOW);
- delay(tempo);
- digitalWrite(fase0, LOW);
- digitalWrite(fase1, HIGH);
- delay(tempo);
- digitalWrite(fase1, LOW);
- digitalWrite(fase2, HIGH);
- delay(tempo);
- digitalWrite(fase2, LOW);
- digitalWrite(fase3, HIGH);
- delay(tempo);
- }
- break;
- case 2:
- myservo.write(180);
- if(alpha==HIGH) {while(memoria==HIGH){digitalWrite(rele1, LOW); digitalWrite(rele2, LOW);}}
- if(beta==HIGH) {while(memoria==HIGH){digitalWrite(rele1, LOW); digitalWrite(rele3, LOW);}}
- if(gamma==HIGH) {while(memoria==HIGH){digitalWrite(rele1, LOW); digitalWrite(rele4, LOW);}}
- break ;
- case 3:
- myservo.write(0);
- if(myservo.read()==0)
- {
- variabile=4;
- }
- break ;
- case 4:
- while(digitalRead(buttonC)==LOW)
- {
- digitalWrite(fase3, HIGH);
- digitalWrite(fase0, LOW);
- delay(tempo);
- digitalWrite(fase3, LOW);
- digitalWrite(fase2, HIGH);
- delay(tempo);
- digitalWrite(fase2, LOW);
- digitalWrite(fase1, HIGH);
- delay(tempo);
- digitalWrite(fase1, LOW);
- digitalWrite(fase0, HIGH);
- delay(tempo);
- }
- break ;
- }
- }
- se creo un programma contenente solo il primo if e il primo case il programma funziona, ma se inserisco tutti i case o l'intero programma non funziona niente , neanche il primo if che prima funzionava
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement