Étape 6: Le croquis de l’Arduino
Tout d’abord, je vais essayer d’expliquer le croquis avec les mots :
Au départ, je définir trois variables qui sont les broches physiques de la HC-SR04 « trigger et echo » et le relais de puissance.
Dans la configuration du Sub, j’ai démarrez le moniteur de la série, définir la détente et les goupilles de relais comme sorties car ils vont afficher un résultat alors que la goupille de l’écho est définie comme entrée parce qu’il vous attendra pour plus d’informations de l’ergot.
L’action se passe dans la boucle de Sub :
J’ai d’abord définir deux entiers durée et distance pour stocker les informations recueillies par le déclencheur. Je dis la détente pour envoyer une onde sonore à l’aide de la commande digitalWrite (trigPin, HIGH); puis attendre que la moitié d’une milliseconde, puis je l’éteins à l’aide de la commande digitalWrite (trigPin, LOW); . Lorsque la vague retourne je stocker les informations dans l’entier de la « durée » et activer la goupille d’écho à l’aide de la commande pulseIn (echoPin, HIGH) ; Maintenant, nous faisons quelques calculs pour déterminer la distance, ce qui est de durée/2 puis on divise cette réponse par 29,1 pour obtenir le résultat en centimètres.
L’étape suivante consiste à vérifier le résultat que nous avons eu : si le résultat est inférieur à 13cm, exécutez la sous-routine léger, sinon puis ne rien faire. Et afficher le résultat sur le moniteur de la série.
La sous-routine de lumière :
Lorsqu’elle est appelée, elle active la broche d’alimentation relais, attend 15 secondes, puis il la désactive.
Aussi simple que ça:)
Et maintenant le Sketch :
#define trigPin 6 //Define l’HC-SE04 triger sur la broche 6 sur l’arduino
#define echoPin 5 //Define l’HC-SE04 écho sur la broche 5 sur l’arduino
#define ampoule 9 //Define le relais du signal sur la broche 9 sur l’arduino
void setup()
{
Serial.Begin (9600) ; Démarrez le moniteur de la série
pinMode (trigPin, sortie) ; la valeur de la trigpin à la sortie
pinMode (echoPin, entrée) ; l’echopin à l’entrée de la valeur
pinMode (ampoule, sortie) ; la valeur de l’ampoule sur la broche 9 de sortie
}
void loop()
{
int durée, distance ; Définir deux intregers durée et distance à utiliser pour enregistrer des données
digitalWrite (trigPin, HIGH) ; écrire une haute numérique à le trigpin d’envoyer le pouls
delayMicroseconds(500) ; attendre une demi-milliseconde
digitalWrite (trigPin, basse) ; désactiver le trigpin
durée = pulseIn (echoPin, HIGH) ; mesure du temps en utilisant pulsein lorsque l’écho reçoit un signal affectez-lui la haute
distance = (durée/2) / 29,1 ; la distance est la durée divisée par 2 parce que le signal a voyagé de la trigpin puis retour sur la broche de l’écho, puis diviser par 29.1 à convertir en centimètres
Si //if (distance < 13) la distance est inférieure à 13 CM
{
Light() ; Exécutez la sous-routine légère ci-dessous
}
Serial.Print(distance) ; Dispaly la distance sur le moniteur de la série
Serial.println ("CM") ; en centimètres
Delay(500) ; une demi-seconde de retard
}
void Light() //Start la sous-routine léger
{digitalWrite (ampoule, HIGH); //turn sur la lumière
retard (15000) ; Attendez 15 secondes
digitalWrite (ampoule, basse) ; éteindre la lumière
}