Vorrei costruire un veicolo con Arduino che si muove autonomamente finché il sensore ad ultrasuoni non rileva un ostacolo, dopodiché inverte la direzione dei due motori passo-passo per far tornare il veicolo indietro.
Questo è il codice:
#include <Stepper.h>
Stepper stepper1(2048, 7, 5, 6, 4);
Stepper stepper2(2048, 11, 9, 10, 8);
const int pinTrigger = 2;
const int pinEcho = 3;
const int distanzaMinima = 10;
void setup() {
pinMode(pinTrigger, OUTPUT);
pinMode(pinEcho, INPUT);
Serial.begin(9600);
stepper1.setSpeed(100);
stepper2.setSpeed(100);
}
void loop() {
long duration, cm;
digitalWrite(pinTrigger, LOW);
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrigger, LOW);
duration = pulseIn(pinEcho, HIGH);
cm = (0.0343 * duration) / 2.0;
Serial.print("Distanza: ");
Serial.print(cm);
Serial.println(" cm");
if (cm > distanzaMinima) {
stepper1.step(1);
stepper2.step(1);
} else {
stepper1.step(-1);
stepper2.step(-1);
}
}
Allora quando metto questo codice in Arduino i motorini vanno all'indietro, e se vedo nel serial monitor la distanza risulta sempre 0 cm non facendo funzionare il tutto.
Qualcuno può aiutarmi?