Salve a tutti ho un problema nella costruzione del mio robot evita ostacoli, il robot evita tranquillamente tutti gli ostacoli con questo codice che ho cercato su internet
#include <Servo.h>
Servo MotoreSinistro;
Servo MotoreDestro;
const int periodoLoop = 20;
unsigned long ritardoLoop = 0;
int valorefotocellula;
const int TrigPin = 8;
const int EchoPin = 9;
int distanza;
int durata;
int minimaDistanza = 10;
unsigned long tempoRotazioneSx = 1100;
#define VAI_AVANTI 0
#define GIRA_SX 1
int stato = VAI_AVANTI;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
MotoreSinistro.attach(11);
MotoreDestro.attach(10);
}
void loop()
{
if(millis() - ritardoLoop >= periodoLoop)
{
letturaSensoreUltrasuoni(); // legge e memorizza la distanza misurata
azioneRobot();
ritardoLoop = millis();
}
}
void azioneRobot()
{
if(stato == VAI_AVANTI)
{
if(distanza > minimaDistanza || distanza < 0)
{
MotoreDestro.write(180);
MotoreSinistro.write(0);
}
else
{
stato = GIRA_SX;
}
}
else if(stato == GIRA_SX)
{
unsigned long tempoRotazioneSx = 1100;
unsigned long tempoInizioRotazione = millis();
while((millis()-tempoInizioRotazione) < tempoRotazioneSx)
{
MotoreDestro.write(180);
MotoreSinistro.write(180);
}
stato = VAI_AVANTI;
}
}
void letturaSensoreUltrasuoni()
{
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
durata = pulseIn(EchoPin, HIGH);
distanza = (durata/2)/29;
}
Funziona perfettamente, il problema è l'aggiunta di un secondo sensore ad ultrasuoni, vorrei aggiungere un altro sensore capovolto verso la superficie del terreno, dovrei far si che il robot vada avanti quando il sensore riceve dati da 0 cm a 10 cm per poi arrivare al bordo di un tavolo , dove il sensore riceve dati da 10 a tot cm facendo così capire che sta per cadere, il robot dovrebbe andare indietro e girare verso sinistra, ho provato molte varianti del codice ma non essendo un esporto nella programmazione non so più dove sbatterci la testa, ho cercato anche su internet, ma niente.
Mi farebbe piacere un vostro aiuto, grazie mille.