sobota 22. októbra 2016

Senzor HC-SR04

HC-SR04:

Senzor HC-SR04 je ultrazvukový merač vzdialenosti z rozsahom 2cm - 400cm. Presnosť senzora jje až 3mm.

Základné princípy:

1. Odoslanie signálu trvajúceho aspoň 10us do triggera .
2. Modul odošle osem 40kHz signálov.
3. Prostredníctvom vysokej úrovne zaznamenáva arduino dobu trvania signálu z echo.
4. Pomocou vzorca arduino vypočíta vzdialenosť.

Program:


int trig=8;       //vstup trig pripojíme na pin 13
int echo=9;       //vstup echo pripojíme na pin 13

void setup() {
  Serial.begin (9600);  //nastavenie rýchlosti komunikácie na seriovom porte
  pinMode(trig, OUTPUT); //pin 8 je nastavený ako výstup
  pinMode(echo, INPUT);  //pin 9 je nastavený ako vstup

}

void loop() {
  long cas;  //deklaracia premennej na zaznamenanie dlzky impulzu echo
  long vzdialenost; //deklaracia premennej na zaznamenanie vzdialenosti
  digitalWrite(trig, LOW);
  delayMicroseconds(5);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10); // Spúštací signál senzoru je 10uS
  digitalWrite(trig, LOW);
  cas = pulseIn(echo, HIGH); //specialna funkcia na zaznamenanie trvania impulzu (VIĎ NIŽŠIE)
  vzdialenost = (cas/58);    //výpočet vzdialenosti podľa vzorca z datasheetu

  if (vzdialenost >= 200 || vzdialenost <= 0){   //zadajú sa rozmery akvária
    Serial.println("Mimo rozsahu!");
  }
  else {                            //výpis vzdialenosti
    Serial.print("Vzdialenost: ");
    Serial.print(vzdialenost);
    Serial.println(" cm");
  }
  delay(100);
}

Funkcia pulseIn():

Táto funkcia slúži na čítanie pulzov (HIGH alebo LOW). Napríklad, ak hodnota ktorú chceme čítať je  HIGH impulz, čaká na, pulseIN() čaká na impulz HIGH ktorý spustí časovanie. Pulzom LOW zastaví časovanie a vráti dľžku pulzu v mikrosekundách.

Video k programu:




Zdroj: Datasheet

Žiadne komentáre:

Zverejnenie komentára