Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- listato originario (o poco modificato!) peraMAZEing Machine
- presentato al VallHACKATHON 2018
- autore: Paolo Grosso
- */
- #include <Stepper.h>
- // Define number of steps per rotation:
- const int stepsPerRevolution = 513;
- // Wiring:
- // Pin 8 to IN1 on the ULN2003 driver
- // Pin 9 to IN2 on the ULN2003 driver
- // Pin 10 to IN3 on the ULN2003 driver
- // Pin 11 to IN4 on the ULN2003 driver
- const int STATE = 13;
- int passi=2;
- Stepper motoreDx = Stepper(stepsPerRevolution, 1, 2, 3, 4);
- Stepper motoreSx = Stepper(stepsPerRevolution, 5, 6, 7, 8);
- void setup() {
- pinMode(A5, INPUT_PULLUP); //pins pulsanti da Sinistra a Destra
- pinMode(A4, INPUT_PULLUP);
- pinMode(A3, INPUT_PULLUP);
- pinMode(A2, INPUT_PULLUP);
- pinMode(13, INPUT);
- pinMode(9, OUTPUT); // LED
- pinMode(10, OUTPUT);// LED
- pinMode(11, OUTPUT);// LED
- pinMode(12, OUTPUT);// LED
- digitalWrite(9, LOW);
- digitalWrite(10, LOW);
- digitalWrite(11, LOW);
- digitalWrite(12, LOW);
- motoreDx.setSpeed(20);
- motoreSx.setSpeed(20);
- Serial.begin(9600);
- }
- void loop() {
- if (analogRead(A5) > 500 ) {
- digitalWrite(12, HIGH);
- }
- else {
- digitalWrite(12, LOW);
- }
- if (analogRead(A4) > 500 ) {
- digitalWrite(11, HIGH);
- }
- else {
- digitalWrite(11, LOW);
- }
- if (analogRead(A3) > 500 ) {
- digitalWrite(10, HIGH);
- }
- else {
- digitalWrite(10, LOW);
- }
- if (analogRead(A2) > 500 ) {
- digitalWrite(9, HIGH);
- }
- else {
- digitalWrite(9, LOW);
- }
- //MOTORE SINISTRO
- if ((analogRead(A5) > 500 ) && (analogRead(A4) < 100)) //muovi i motori solo se i pulsanti sono prenuti singolarmente
- {
- motoreSx.step(passi);
- delay(50);
- }
- if ((analogRead(A4) > 500 ) && (analogRead(A5) < 100))
- {
- motoreSx.step(-passi);
- delay(50);
- }
- //----------------------------------------------------------------------------------------------
- //MOTORE DESTRO
- if ((analogRead(A3) > 500 ) && (analogRead(A2) < 100)) //muovi i motori solo se i pulsanti sono prenuti singolarmente
- {
- motoreDx.step(passi);
- delay(50);
- }
- if ((analogRead(A2) > 500 ) && (analogRead(A3) < 100))
- {
- motoreDx.step(-passi);
- delay(50);
- }
- //----------------------------------------------------------------------------------------------
- //CONDIZIONE DI VITTORIA O SCONFITTA
- Serial.println(digitalRead(STATE));
- if (digitalRead(STATE) == 0) //sensore di vittoria
- {
- digitalWrite (9, HIGH);
- digitalWrite (10, HIGH);
- digitalWrite (11, HIGH);
- digitalWrite (12, HIGH);
- delay(2000);
- digitalWrite (9, LOW);
- digitalWrite (10, LOW);
- digitalWrite (11, LOW);
- digitalWrite (12, LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement