
YL-70 je šikovný 4kanálový infračervený modul pro Arduino, který se hodí všude tam, kde chcete, aby projekt reagoval na povrch nebo blízkou překážku. Využijete ho například u robotických vozítek, při sledování čáry nebo třeba pro hlídání okraje stolu.
Modul se skládá z hlavní desky a čtyř samostatných IR snímačů. Každý kanál pracuje nezávisle a jeho citlivost lze upravit pomocí trimru na desce. Díky tomu si můžete chování modulu přizpůsobit konkrétnímu projektu, typu povrchu i světelným podmínkám v okolí.
Velkou výhodou je digitální výstup, takže Arduino jednoduše pozná, zda snímač něco zaznamenal, nebo ne. Právě proto je YL-70 vhodný i pro první pokusy s robotikou a infračervenými senzory.
Co budete potřebovat
- Arduino UNO nebo jinou kompatibilní desku Arduino
- 4kanálový infra senzor překážek YL-70
- Propojovací vodiče
- USB kabel k Arduinu
- Nepájivé pole podle potřeby
Jak YL-70 funguje?
Každý snímač vysílá infračervené světlo a sleduje, jestli se od blízkého objektu nebo povrchu odrazí zpět. Podle toho se změní stav digitálního výstupu. Modul tak umí rozpoznat například světlou a tmavou plochu nebo blízkou překážku před robotem.
Na výsledné chování senzoru má vliv hlavně vzdálenost od objektu, barva a odrazivost povrchu, okolní světlo a také nastavení citlivosti. Nejlepších výsledků dosáhnete po doladění trimru a při práci na kratší vzdálenost.
Zapojení senzoru YL-70 k Arduinu
Pro první test není nutné zapojovat všechny čtyři kanály. Úplně stačí napájení modulu a jeden výstup připojený do Arduina.
Jednoduché zapojení jednoho kanálu
- VCC modulu připojte na 5 V Arduina
- GND modulu připojte na GND Arduina
- OUT1 připojte na digitální pin 2
Po zapojení můžete přiblížit ruku nebo jiný objekt ke snímači a sledovat, jak Arduino reaguje.
Arduino program pro YL-70
Protože má YL-70 digitální výstup, budeme v programu číst pouze stav pinu pomocí funkce digitalRead(). U těchto modulů bývá výstup často aktivní v LOW, takže při detekci překážky nebo povrchu Arduino přečte logickou nulu.
// definování pinů int const senzor = 2; // inicializace proměnných bool senzorVal; void setup() { // start sériové komunikace Serial.begin(9600); // nastavení pinů, jako vstupní pinMode(senzor, INPUT); } void loop() { // čtení hodnoty z digitálního pinu senzorVal = digitalRead(senzor); // pokud je hodnota z pinu 0, tak: if (senzorVal == 0) { Serial.println("sepnuto"); } // pokud není 0, tak: else { Serial.println("nesepnuto"); } // počkej 1s delay(1000); }
Jak Arduino program funguje?
Na začátku si nastavíme číslo pinu, na který je připojený výstup ze senzoru. V nekonečné smyčce pak Arduino tento pin opakovaně čte pomocí funkce digitalRead().
Pokud snímač zaznamená odraz infračerveného světla, výstup se přepne do aktivního stavu a v sériovém monitoru se zobrazí informace, že senzor něco zachytil. Pokud odraz nezaznamená, vypíše se opačný stav.
Díky tomu si můžete snadno ověřit, že modul funguje správně a reaguje na překážku nebo změnu povrchu před sebou.
Na co si dát pozor
- Citlivost nastavujte pomocí trimru na desce modulu.
- Světlé a lesklé povrchy se mohou chovat jinak než tmavé a matné.
- Silné okolní světlo může funkci senzoru ovlivnit.
- Modul funguje nejlépe při snímání na kratší vzdálenost.
Tip pro další bastlení
Jakmile vám bude fungovat jeden kanál, můžete snadno zapojit i zbývající tři výstupy a vytvořit tak projekt, který sleduje více bodů najednou. To se hodí například při jízdě po čáře, hlídání kraje stolu nebo u robota, který se má vyhýbat překážkám.
Pokud YL-70 vyzkoušíte ve vlastním projektu, budeme rádi, když se pochlubíte v komentářích. A mrkněte i na další HWKITCHEN návody.
