SI03 Ultrazvukový měřič vzdálenosti

Kategorie: SI (inteligentní senzor)

Ultrazvukový merač vzdialenosti SI03 je senzor s I2C rozhraním. Používa pár ultrazvukových meničov T4016/R4016. T4016 je vysielač (reproduktor), R4016 je prijímač (mikrofón). Ultrazvuk sú mechanické kmity prostredia s frekvenciou vyššou ako je schopné počuť ľudské ucho, teda približne nad 20 kHz. V praxi sa využíva vlastnosť ultrazvuku ohýbať sa a odrážať na materiálových prechodoch (teda tam, kde dochádza k zmene materiálu, a teda aj ku zmene rýchlosti šírenia zvuku). Odrazy sa využívajú napr. na meranie vzdialeností (ultrazvukový diaľkomer), pre zistenie polohy a vzdialenosti telies v homogénnom prostredí (sonar, echolot).Používaný postup sa volá echolokácia.

Sonar (z anglického SOund Navigation And Ranging – zvuková navigácia a zameriavanie) je zariadenie na princípe radaru, ktoré namiesto rádiových vĺn používa ultrazvuk. Sonar je v podstate ultrazvukový diaľkomer doplnený o senzory natočenia a náklonu. Princíp merania vzdialenosti pomocou ultrazvuku spočíva vo vyslaní ultrazvukovej vlny a meraní času návratu odrazenej vlny.

Senzor SI03 má na vrchnej strane DPS dve indikačné LED. Oranžová LED (POWER150) svieti, ak je senzor napájaný. Modrá LED (LED151) bliká ak senzor komunikuje cez I2C. Komunikačné I2C rozhranie senzora SI03 je vyvedené spolu so vstupom napájania na 6-pinový konektor MLW06 (SV151).

Základné parametre senzora SI03 sú zhrnuté v nasledujúcej tabuľke:

Parametr Hodnota Jednotka
Napájecí napětí 5 V
Odběr <20 mA
Měřicí rozsah 5–80 cm
Pracovní teplota –55 .. 125 °C

Ke stažení

SKP model: 
PDF dokumentace: 

Příklad Java

/*
 * Příklad SonarExample vypisuje v nekonečné smyčce s periodou 200 milisekund
 * naměřenou vzdálenost do konzole:
 */
package jBotBrain2.SonarExample;

import jBotBrain2.hw.*;
import jBotBrain2.sensors.UltraSonicRangeFinder;

public class SonarExampleMain {
    public static void main(String[] args) throws InterruptedException {
        Led.GREEN1.set(Led.MODE_BLINK, 300);
        UltraSonicRangeFinder us = new UltraSonicRangeFinder();
        while (true) {
            System.out.print("Vzdalenost: " + us.getDistanceCM() + " cm      \r");
            Thread.sleep(200);
        }
    }
}