LinkedIn YouTube Facebook
Szukaj

Wstecz
IoT

[PROJEKT] HC-SR04 – ultradźwiękowy czujnik odległości i Arduino

W opisywanym przykładzie została wykorzystywana płytka zgodna z Arduino Uno. Sposób połączeń pokazano na rysunku 5, natomiast na fotografii 6 pokazano zmontowany układ. Wejście TRIG czujnika dołączono do linii 3 na płytce Arduino, natomiast wyjście ECHO zostało dołączone do linii 2 na płytce Arduino.

Rys. 5. Sposób dołączenia czujnika do Arduino Uno

Fot. 6. Widok zmontowanego układu

 

Na listingu 1 znajduje się program przygotowany dla Arduino Uno. Stałe TrigPin i EchoPin wskazują sposób dołączenia czujnika do płytki zgodnie z rysunkiem 5. W zmiennej distance jest przechowywana obliczona odległość pomiędzy czujnikiem i przeszkodą. Do zmiennej duration jest wpisywany czas trwania impulsu na wyjściu ECHO. Czas ten (w mikrosekundach) jest wpisywany przez funkcję pulseIn(). Pomiar jest powtarzany co ok. 500 ms, a wynik pomiaru jest szeregowo wysyłany, np. do komputera, co można obejrzeć wykorzystując terminal komputera (rysunek 7).

 

List. 1.

#define TrigPin 3
#define EchoPin 2
int distance;
long duration = 0;

void setup()
{
  Serial.begin (9600);
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);
}

void loop()
{
  // impuls 10 us wyzwalający pomiar odległości na pinie TRIG
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  
  // pomiar czasu trwania impulsu na pinie ECHO [us]
  duration = pulseIn(EchoPin, HIGH);
  
  // obliczenie odległości w cm
  distance = duration/58;

  if ( distance < 2 || distance > 200 )
    Serial.println("----- Poza zakresem");
  else
  {
    Serial.print("Odeglosc: ");
    Serial.print( distance );
    Serial.println(" cm");
  }
  delay(500);
}

Rys. 7. Wizualizacja odebranych danych

 

 

Autor: Anna Kubacka