Infračervený senzor vzdálenosti je vstupní modul pro Arduino. Tento modul obsahuje senzor Sharp GP2Y0A21YK0F, který dokáže detekovat předměty ve vzdálenosti 10-80 centimetrů. Detekce probíhá pomocí kombinace optického vysílače a přijímače. Výstupní signál je pak proměnné analogové napětí, které můžeme měřit na výstupu senzoru.
Pro napájení senzoru je potřeba použít napájecí napětí v rozmezí 4,5-5,5 Voltů a proudový odběr se pohybuje okolo 30 miliampér při měření.

Infračervený senzor vzdálenosti Sharp GP2Y0A21YK0F

Pro úspěšné propojení modulu Sharp a Arduino desky stačí zapojit celkem 3 vodiče. Propojíme VCC s 5V Arduina, GND se zemí Arduina a OUT s pinem A0. Pro pin OUT musíme vybrat analogový pin, ale pokud chcete využít jiný z dostupných pinů, je nutné tuto volbu provést také na začátku programu.

Infračervený senzor vzdálenosti Sharp GP2Y0A21YK0F

Pro úspěšné nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu SharpIR, návod, jak na to, je uveden zde.
Ukázkový kód obsahuje na svém začátku připojení potřebné knihovny společně s vytvořením objektu modulu z knihovny, u kterého zadáváme dva parametry. První parametr je typ senzoru a druhý propojovací pin pro analogový výstup senzoru.
V podprogramu setup zahájíme komunikaci po sériové lince a můžeme přejít do nekonečné smyčky.
Na začátku nekonečné smyčky loop vždy načteme vzdálenost ze senzoru do vytvořené proměnné. Tuto informaci poté vytiskneme po sériové lince a po krátké pauze se smyčka opakuje.

// Infračervený senzor vzdálenosti Sharp 2Y0A21

// připojení potřebné knihovny
#include <SharpIR.h>
// vytvoření instance senzoru z knihovny,
// datový pin senzoru na pinu A0
SharpIR sensor(SharpIR::GP2Y0A21YK0F, A0);

void setup() {
  // inicializace komunikace po sériové lince
  Serial.begin(9600);
}

void loop() {
  // načtení dat ze senzoru do vytvořené proměnné
  int vzdalenost = sensor.getDistance();
  // vytištění dat po sériové lince
  Serial.print("Vzdalenost od senzoru je ");
  Serial.print(vzdalenost);
  Serial.println(" cm.");
  // pauza před novým měřením
  delay(500);
}

Po nahrání ukázkového kódu do Arduino desky s připojeným senzorem Sharp 2Y0A21 dostaneme například tento výsledek:

Vzdalenost od senzoru je 9 cm.
Vzdalenost od senzoru je 12 cm.
Vzdalenost od senzoru je 19 cm.
Vzdalenost od senzoru je 37 cm.
Vzdalenost od senzoru je 81 cm.
Vzdalenost od senzoru je 81 cm.

Infračervený senzor vzdálenosti Sharp 2Y0A21 je kompaktní modul pro měření vzdálenosti pomocí infračervených paprsků. Můžeme ho tedy použít například pro různá robotická vozítka pro detekci překážek či jako základ bezpečnostního systému, kde bude senzor vytvářet optickou bránu.
Je ale nutné myslet na to, že například prudké světlo může zhoršit přesnost senzoru díky vnesení externího infračerveného záření. A na přesnost naměřených výsledků může mít vliv také různý povrch předmětů, který může pohlcovat zmíněné paprsky vyslané ze senzoru.

Seznam použitých komponent:
https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/2095-infracerveny-senzor-vzdalenosti-10-80-cm-gp2y0a21yk0f.html

FB tw

Další podobné články