Stap 2: Arduino Code
Arduino Code
/ * Dit project wordt gebruikgemaakt van een HC-SR04 ultrasone sensor en een arduino detecteren obstakels voor de gebruiker en een waarschuwingstoon klinkt. Het interval waarmee het alarm in verhouding tot de afstand tussen de gebruiker en het alarm klinkt.
01 Mar 2016 gemaakt door Isaac sessie huidige stad * /
#include / / deze bibliotheek helpt maakt onze lezingen nauwkeuriger
Const int TRIGGER_PIN = 5; Const int ECHO_PIN = 6; Const int ledPin = 9; Const int motor = 10; Const int zoemer = 11;
Const int MAX_DISTANCE = 300; Instellen van de maximale afstand die kan worden gemeten tot 300cm const int SAMPLE_INTERVAL = 25; Neemt een monster dat het lezen van elke 25milliseconds const int PING_ITERATIONS = 3; Neem 3 lezingen voordat u terugkeert van het gemiddelde van de 3 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE), //Create een nieuw exemplaar van het object
int systemState = laag; Zorg ervoor dat alles uitstaat lange previousMillis = 0; lange interval;
void setup {Serial.begin(9600); pinMode (ledPin, OUTPUT); pinMode (zoemer, OUTPUT); pinMode (motor, uitgang);} void loop {zweven d1 = getDistance(); / / call van de functie die de afstand gemeten
/ * Kaart de afstand gemeten aan het aantal milliseconden dat LED, buzzer en motor in- of uitschakelen blijven moeten. HEEL BELANGRIJK! * / interval = kaart (d1, 0, 0, 250 en 2000); Als (d1 > 0 & & d1 < = 250) //Only iets doen als afstand gemeten valt binnen dit bereik {changeStateWithoutDelay(interval); //Call beurt LED, Buzzer of motor aan/uit functie} else {digitalWrite (zoemer, LOW), digitalWrite (ledPin, laag); digitalWrite (motor, laag);}
Serial.Print(D1); Serial.Print ("cm \t"); delay(100); Uncomment deze lijn zodat de seriële monitor wat langzamer print spullen Serial.print(interval); Serial.Print ("milliseconden \t\n"); Serial.println(); }
Functie die afstand float getDistance() meet {zweven t = sonar.ping_median(PING_ITERATIONS); / / microseconden zweven d = sonar.convert_cm(t); / / centimeter terug d;}
Functie die turns LED, buzzer en motor in- of uitschakelen op basis van hoe ver sensor is van de belemmering void changeStateWithoutDelay (int interval) {unsigned long currentMillis = millis(); if (currentMillis - previousMillis > interval) {/ / save de laatste keer dat u alles af previousMillis draaide = currentMillis;
Als de LED, buzzer en motor uitstaat draai het op en omgekeerd: als (systemState == LOW) systemState = hoog; anders systemState = laag;
LED, buzzer en motor met de systemState van de variabele instellen: digitalWrite (ledPin, systemState); digitalWrite (zoemer, systemState); digitalWrite (motor, systemState); } }
Code ziet er meer georganiseerde wanneer u het bekijkt hier.
Ik heb geprobeerd om het commentaar van de code zo veel mogelijk te maken het zeer eenvoudig te begrijpen, maar delen van de code die nog steeds onduidelijk wellicht in de video worden toegelicht. Als u nog niet de Arduino IDE al geïnstalleerd, downloaden en installeren vanaf hier