Étape 6: O código-fonte
Grua/*
Cet exemple de code est dans le domaine public.
*/
#define gauche 9 / / Passa o sinal para o L293D (esquerda)
#define droite 10 / / Passa o sinal para o L293D (direita)
#define echoPin 13 //Pino 13 recebe o pulso echo
#define trigPin 12 //Pino 12 envia o pulso para Guérar o echo
#define TEMPOS 2
void setup() {}
pinMode (gauche, sortie) ;
pinMode (droit, sortie) ;
pinMode (echoPin, entrée) ; définir o pino 13 como entrada (recebe)
pinMode (trigPin, sortie) ; définir o pino 12 como saida (envia)
Serial.Begin(9600) ;
long v = lerDistancia() ;
Serial.println(v) ;
Mover(250) ;
v = lerDistancia() ;
Serial.println(v) ;
}
Sub mover (int pos) {/ / funça que movimento o carrinho
long v = lerDistancia() ;
tandis que (v > 20000) {}
v = lerDistancia() ;
}
int new_pos = pos - v ;
Serial.println(new_pos) ;
Si (new_pos < 0) {}
Esquerda
Serial.println("left") ;
digitalWrite (gauche, haut) ;
Enfin = v ;
while (true) {}
long vl = lerDistancia() ;
Serial.Print(":") ; Serial.Print)
VL) ; Serial.PR
int(".") ; Serial.Print(VL-Last) ;
Si (vl < = pos & & vl < 20000) {}
rupture ;
}
dernière = vl ;
Delay(60) ;
}
digitalWrite (gauche, faible) ;
Serial.println(":") ;
} else {}
Direita
digitalWrite (droit, haute) ;
Serial.println("Right") ;
Enfin = v ;
while (true) {}
vr long = lerDistancia() ;
Serial.Print(":") ; Serial.Print(VR) ; Serial.Print(".") ; Serial.Print (dernier - vr) ;
Si (vr > = pos & & vr < 20000) {}
rupture ;
}
dernière = vr ;
Delay(60) ;
}
Serial.println(":") ;
digitalWrite (droit, faible) ;
}
}
{lerDistancia() long
digitalWrite (trigPin, basse) ; de Seta o pino déclencher com um pulso baixo « LOW »
delayMicroseconds(15) ; retarder de 15 microssegundos
digitalWrite (trigPin, HIGH) ; de Seta o pino déclencher com pulso alto « HIGH »
delayMicroseconds(10) ; retarder de 10 microssegundos
digitalWrite (trigPin, basse) ; Seta o pino 12 com pulso baixo novamente
longue durée = pulseIn(echoPin,HIGH) ; pulseInt lê o tempo entre un chamada e o pino entrar em haut
longue distancia = (durée * 337) / 2000 ; Dessa forma temos a nossa precisão em milimetros
Esse calculo é baseado em s = v. t, lembrando que o tempo vem dobrado
tempo de porque é o de ida e volta ultrassom
retourner la distancia ;
}
void lerDistancia (int tempo) {}
int il = tempo / TEMPOS ;
pour (int i = 0; i < il; i ++) {
t long = lerDistancia() ;
Serial.Print("T:") ;
Serial.Print(t) ;
Delay(tempos) ;
}
}
void loop() {}
rouge int = Serial.parseInt() ;
{if(Red)}
long v = lerDistancia() ;
Serial.println(v) ;
Mover(Red) ;
v = lerDistancia() ;
Serial.println(v) ;
}
}