Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- i problemi sono
- 1 che non mi permette di usare > su if analogread>soglia ne >=
- 2 la prima volta mi spegne il motore la seconda fa il cambio parlo del pulsante di stop button D
- 3 e 4 se metto uno solo funziona ma se metto tutti e 3 parte sempre la prima istruzione nel case 2 parlo di button A button B e button C
- ecco il programma
- #include <InputDebounce.h>
- #include <Bounce2.h>
- #include <Servo.h>
- int buttonA = 51;
- int buttonB = 52;
- int buttonD = 30;
- int buttonC = 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);
- Serial.begin(9600);
- 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()
- {
- Serial.println();
- int alpha;
- int beta;
- int gamma;
- int variabile=0;
- int memoria=HIGH;
- int soglia=250;
- int cambio;
- digitalWrite(rele1, HIGH);
- digitalWrite(rele4, HIGH);
- digitalWrite(rele3, HIGH);
- digitalWrite(rele2, HIGH);
- if(digitalRead(buttonA)==HIGH)
- {
- variabile=1;
- alpha=HIGH;
- }
- if(digitalRead(buttonB)==HIGH)
- {
- variabile=1;
- beta=HIGH;
- }
- if(digitalRead(buttonC)==HIGH)
- {
- variabile=1;
- gamma=HIGH;
- }
- if(digitalRead(buttonD)==HIGH)
- {
- variabile=2;
- }
- if(analogRead(A0)>soglia)
- {
- memoria=LOW;
- delay(500);
- variabile=3;
- }
- if (cambio==HIGH)
- {
- if(myservo.read()==0)
- {
- variabile=4;
- }
- }
- switch(variabile){
- case 1:
- while(digitalRead(buttonD)==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);
- cambio==HIGH;
- break ;
- case 4:
- while(digitalRead(buttonD)==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 ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement