Cyber Monday popust 20% na sve! Samo danas, 30.11.2020.

KKM: Ultrazvučni modul HC-SR04

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM!

Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

Osnovne karakteristike

HC-SR04 ultrazvučni modul, poput delfina ili šišmiša, koristi ultrazvučne valove kako bi odredio udaljenost od predmeta. Osim svojoj jednostavnošću i cijenom, konkurenciju nadmašuje i svojim tehničkim mogućnostima. Ne zbunjuju ga sunčeva svijetlost ili crni materijali, kao primjerice najpoznatijeg konkurenta Sharp IR-a.

DSC_8467
Karakteristike:

  • Domet: 2 - 200 cm
  • Preciznost: 3 mm
  • Efektivni kut mjerenja: 15°
  • Napon: 5V
  • Maksimalna mirna struja: 2 mA
  • Radna struja: 15 mA
  • Ultrazvučna frekvencija: 40 kHz
  • Dimenzije: 45 x 20 x 15 mm

Napomena: Službeni datasheet daje nešto impresivnije tehničke karakteristike modula, primjerice kut mjerenja 30 stupnjeva ili domet čak i do 7 metara. Gore navedeni podaci dobiveni su vlastitim testiranjima i radom u projektima, i za njih možemo garantirati.

Princip rada modula

Dva osnovna dijela modula na kojima se temelji princip rada su trig (prekidač) i echo (refleksija). Mikrokontrolerom (Croduinom ili Arduinom) šaljemo 5V na trig pin modula u trajanju, minimalno, 10 mikrosekundi. Na taj način aktiviramo ultrazvučni transduktor koji odašilje 8 impulsa od 40 kHz i čeka njihovu refleksiju. Kada senzor registrira reflektirani impuls šalje podatke natrag mikrokontroleru preko echo pina. Navedeni podaci su zapravo vrijeme trajanja reflektiranog pulsa, od 150 mikro do 25 milisekundi. Ako "jeka" traje duže od 35 milisekundi, senzor registrira da je predmet izvan dosega.

Model

U ovom tutorijalu koristit ćemo:

  • Croduino Basic
  • Ultrazvučni modul HC-SR04
  • Mini eksperimentalna pločica
  • M-M kablići

Kako povezati modul s Croduinom

Pinove ultrazvučnog modula s Croduinom (Arduinom) spajamo na sljedeći način:

Vcc - +5V

Trig - digitalni PIN11

Echo - digitalni PIN12

Gnd - gnd

Untitled Sketch_bb

Kod za modul

Na linku dolje možete vidjeti vrlo jednostavan kod koji svakih 50 milisekundi u Serial monitoru ispisuje udaljenost predmeta od senzora, prikazanu u centimentrima.

///////////////////////////////////////////////////////////////////////////////
/*                                                                           */
/*                                                                           */
/* (c) e-radionica.com 2014 - http://www.e-radionica.com/licenca             */
/* [email protected]                                                        */
/*                                                                           */
/* Mjerenje udaljenosti pomocu HC-SR04 ultrazvucnog modula                   */
/*                                                                           */
///////////////////////////////////////////////////////////////////////////////

const int trig = 11;        // Trig na PIN11
const int echo = 12;        // Echo na PIN12

void setup() {
  
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  
  Serial.begin(9600);  // zapocinjem serijsku komunikaciju
  Serial.println("Mjerenje udaljenost s HC-SR04 senzorom");
  Serial.println("");
  
}

void loop() {
  
// buduci da ne koristimo library, dolje je napisan nacin komunikacije s modulom
  
  long vrijeme, udaljenost;
  
  digitalWrite(trig, HIGH);   // Slanje triga
  delayMicroseconds(10);      // Odaslani trig traje 10 μs = 0.1 ms
  digitalWrite(trig, LOW);
  
  vrijeme = pulseIn(echo, HIGH);       // Primanje reflektiranog triga
  udaljenost = (vrijeme/2) / 28;       // Racunanje udaljenosti, u centimetrima
                                       // konacna udaljenost senzora od predmeta
                                       // u cm je varijabla "udaljenost"
    
    Serial.print(udaljenost);   
    Serial.println(" cm");

  delay(50);  // preporucena pauza izmedu ocitanja ne bi trebala biti manja od 50ms 
}

Leave a Reply