Jak na senzor překážek YL-70

Jak na senzor překážek YL-70

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

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.

Soubory ke stažení