HC-SR04 ultrazvukový sensor

Nepotřebuješ žádný knihovny, jednoduchý kód!

HC-SR04 ultrazvukový sensor dokáže měřit vzdálenost. Hodí se např.: pro roboty, kteří se díky němu umí vyhnout překážkám.

Po tom, co jsem koupil HC-SR04, jsem se to ho snažil zprovoznit, ale nepodařilo se. Hledal jsem nějaký jednoduchý návod, jak to zprovoznit. Po tom, co jsem nad tím strávil hodně času jsem se rozhodl, že napíšu článek to tom, jak tento problém řešit.

Chtěl jsem udělat něco, k čemu by nebyl potřeba počítač. I to byl důvod, proč jsem použil LED. Jedna LED je použita na překročení minimální vzdálenosti, druhá na překročení vzdálenosti maximální.

Krok 1: Seznam součástek

  1. 1x Arduino UNO R3
  2. 1x HC-SR04 ultrazvukový sensor
  3. 1x červena LED
  4. 1x zelena LED
  5. 2x 560 ohm rezistor
  6. 1x Malý breadboard
  7. Kablíky
  8. Pravítko 🙂

Krok 2: Zapojení součástek

Zapoj součástky a dráty tak, jak je ukázáno na obrázku.

Krok 3: Nahrát kód

/*
 HC-SR04 ULTRAZVUKOVÝ SENZOR]
 */
#define trigPin 13      // Trigger Pin
#define echoPin 12      // Echo Pin
#define ledMin 11     // Červena LED na pinu 11
#define ledMax 10     // Zelena LED na pinu 10
int maximumRange = 200;       // maximální vzdálenost
int minimumRange = 0;       // minimální vzdálenost
long duration, distance;    // Vypočítání vzdálenosti
void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(ledMin, OUTPUT);
  pinMode(ledMax, OUTPUT);
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;   //vypočítání v cm
  
  // To je místo, kde LED rozsvítíme a zhasneme.
if (distance < 4) {         // rozsvítíme červenou LED, vzdálenost do 4cm 
  digitalWrite(ledMin,HIGH);    // Když rozsvítíme červenou, zelenou musíme zhasnout 
  digitalWrite(ledMax,LOW);
} else if (distance > 200) {        // rozsvítíme zelenou LED, vzdálenost > 200cm
      digitalWrite(ledMax,HIGH);    // Když rozsvítíme zelenou, červenou musíme zhasnout
  digitalWrite(ledMin,LOW);
}
  else {          // normální provoz, vzdálenost od 4 do 200cm, nesviti nic
    digitalWrite(ledMin,LOW);
    digitalWrite(ledMax,LOW);
  }
  if (distance >= maximumRange  || distance <= minimumRange){
  Serial.println("Mimo dosah");
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  //počkání 500ms
  delay(500);
}

Zkopíruj kód do Tvého Arduina a sleduj blikající diody.

Já jsem Ledky neměl. Proto jsem použil Ledku na Arduino a druhou jsem vůbec nezapojoval.

Sdílet článek

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Mohlo by se také líbit