Étape 2: Arduino Code
Code de l’Arduino
/ * Ce projet utilise un capteur à ultrason HC-SR04 et un arduino pour détecter les obstacles en face de l’utilisateur et une alarme. L’intervalle au cours de laquelle l’alarme retentit en proportionnelle à la distance entre l’utilisateur et l’alarme.
créé le 1er mars 2016 par Isaac Sesi actuelle ville * /
#include / / ceci aide bibliothèque rend nos lectures plus précises
const int TRIGGER_PIN = 5 ; const int ECHO_PIN = 6 ; const int ledPin = 9 ; const int moteur = 10 ; const int ronfleur = 11 ;
const int MAX_DISTANCE = 300 ; Définissez la distance maximale que l'on peut mesurer à 300cm const int SAMPLE_INTERVAL = 25 ; Prélever un échantillon de lire chaque 25milliseconds const int PING_ITERATIONS = 3 ; Prenez 3 lectures avant de revenir à la moyenne du sonar NewPing 3 (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); //Create une nouvelle instance de l’objet
systemState int = faible ; Assurez-vous que tout est éteint long previousMillis = 0 ; intervalle long ;
void setup() {Serial.begin(9600) ; pinMode (ledPin, sortie); pinMode (vibreur, OUTPUT); pinMode (moteur, sortie);} void loop() {float d1 = getDistance(); / / appeler la fonction qui mesure la distance
/ * Carte la distance mesurée au nombre de millisecondes que LED, avertisseur sonore et le moteur devraient rester allumé ou éteint. TRÈS IMPORTANT ! * / intervalle = carte (d1, 0, 0, 250, 2000) ; Si (d1 > 0 & & d1 < = 250) //Only faire quelque chose si la distance mesurée tombe dans cette fourchette {changeStateWithoutDelay(interval) ; //Call fonction tour LED, Buzzer ou le moteur on/off} else {digitalWrite (ledPin, LOW); digitalWrite (sonnerie, LOW); digitalWrite (moteur, faible);}
Serial.Print(D1) ; Serial.Print ("\t cm") ; Delay(100) ; Décommentez cette ligne pour rendre le Serial monitor impression des trucs plus lentement Serial.print(interval) ; Serial.Print ("\t\n millisecondes") ; Serial.println() ; }
Fonction qui mesure la distance flotteur getDistance() {float t = sonar.ping_median(PING_ITERATIONS); / / microsecondes flottant d = sonar.convert_cm(t); / / centimètres retournent d;}
Fonction qui active LED, vibreur et moteur ou non basé sur quelle distance capteur provient de l’obstacle void changeStateWithoutDelay (int intervalle) {unsigned long currentMillis = millis() ; if (currentMillis - previousMillis > intervalle) {/ / enregistrer la dernière fois que vous avez activé tout sur previousMillis = currentMillis ;
Si la LED, la sonnerie et le moteur est éteint tour allumez-le et vice-versa : si (systemState == faible) systemState = élevé ; d’autre systemState = faible ;
définir la LED, la sonnerie et le moteur avec le systemState de la variable : digitalWrite (ledPin, systemState) ; digitalWrite (avertisseur sonore, systemState) ; digitalWrite (moteur, systemState) ; } }
Code ressemble plus organisée lorsque vous l’affichez ici.
J’ai essayé de commenter le code autant que possible pour le rendre très facile à comprendre, cependant les parties du code qui peut être encore peu claires sont expliqués dans la vidéo. Si vous ne l’avez pas déjà installé l’IDE Arduino, télécharger et installer à partir d’ici