/* ================= Yinosization =================
-------Détail, création, fonctionnement sur -------
------ http://www.youtube.com/user/yinosization ---
===================== Enjoy ! =====================
Prototype n°1 : Fonctionnement du robot via capteur sonore, le robot se déplacera automatiquement grâce à L'hc-sr04 */
#define Trig 6 // Sonar
#define Echo 7 // Sonar
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // Sortie de l'arduino vers écran led
const int Verrou = 4; //STCP 595
const int Horloge = 2; //SHCP 595
const int Data = 3; //Ds 595
long duree, distance;
void setup() {
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
digitalWrite(Trig, LOW);
pinMode(Verrou, OUTPUT);
pinMode(Horloge, OUTPUT);
pinMode(Data, OUTPUT);
pinMode(Verrou, LOW);
lcd.begin(16,2);
lcd.print("Lancement en cours");
delay(5000);
lcd.clear();
delay(10);
}
void loop() {
digitalWrite(Trig, HIGH); // Envoi du signal durant 10µs
delayMicroseconds (10);
digitalWrite(Trig, LOW);
duree = pulseIn(Echo, HIGH); // Reception du signal puis calcul en fonction de la vitesse du son
distance = duree/58.2;
delay(10);
if (distance < 7 && distance >1) // si distance inférieur à 7 cm alors :
{
lcd.clear();
delay(10);
lcd.println("Rotation en cours");
digitalWrite(Verrou, LOW); // Bloque le verrou
shiftOut(Data, Horloge, LSBFIRST, 0x85); // enregistre 10011001 comme valeur au 8 pins du 595
digitalWrite(Verrou, HIGH); // Lors de l'enclenchement du verrou l'octet est envoyé au 8 pin du 595
delay(1000); // Temps d'initialisation
}
else { // Si la distance est plus grande que 7 cm alors tout droit
lcd.clear();
delay(10);
lcd.print(distance);
lcd.print(" cm");
delay(10);
digitalWrite(Verrou, LOW); // même manip
shiftOut(Data, Horloge, LSBFIRST, 0x00); // Arrêt des moteurs (00000000 = Toute les sorties low )
digitalWrite(Verrou, HIGH);
delay(1000);
}
delay(500);
}