Jak na IR senzor TCRT5000

Jak na IR senzor TCRT5000

IR senzor TCRT5000 je jednoduchý a velmi užitečný modul pro Arduino projekty, ve kterých potřebujete rozlišit světlý a tmavý povrch, sledovat čáru nebo zjistit, že se před senzorem nachází blízký objekt. Nejčastěji se používá u robotických vozítek jako snímač čáry nebo okraje stolu. Samotný modul pracuje na principu odrazu infračerveného světla a na desce najdete také trimr pro nastavení citlivosti.

Je dobré počítat s tím, že modul ve skutečnosti „nevidí barvy“ tak, jak je vidí člověk. Senzor sleduje, kolik infračerveného světla se od povrchu odrazí zpět. Proto bývá výborný pro rozlišení bílé a černé čáry, ale různé materiály nebo různé odstíny černé se mohou v infračerveném pásmu chovat odlišně.

Co budete potřebovat

Jak TCRT5000 funguje?

Modul obsahuje IR vysílací diodu a fototranzistor. Dioda vysílá infračervené světlo a přijímač sleduje, kolik z něj se od blízkého povrchu vrátí zpět. Pokud je povrch světlý a dobře odrazivý, vrací se více signálu. Pokud je tmavý nebo méně odrazivý, vrací se ho méně. Právě proto je TCRT5000 vhodný hlavně pro sledování čáry, detekci hrany nebo jednoduché rozlišení povrchu.

Pro sledování čáry se obvykle používají alespoň dva senzory, aby robot poznal, na kterou stranu má zatáčet. Pro první vyzkoušení ale bohatě stačí jeden modul.

Zapojení digitálního výstupu

Pro jednoduchý první test využijeme digitální výstup DO.

  • VCC modulu připojte na 5 V Arduina
  • GND modulu připojte na GND
  • DO modulu připojte na digitální pin 2

U těchto modulů bývá digitální výstup často aktivní v LOW, takže při detekci může Arduino číst logickou nulu a současně se rozsvítí indikační LED na modulu.

Schéma zapojení digitální pro IR senzor - TCRT5000

Program pro digitální zapojení

// definice pinů
const int pinIR = 2;
// deklarování proměnných
bool IRvalue;

void setup()
{
  // start sériové komunikace
  Serial.begin(9600);
  pinMode(pinIR,INPUT);
}

void loop()
{
  // čtení hodnoty z digitálního pinu
  IRvalue = digitalRead(pinIR);

  // pokud je hodnota z pinu LOW, tak:
  if (IRvalue == LOW)
  {
    Serial.println("sepnuto");
  }

  // pokud je hodnota HIGH, tak:
  else
  {
    Serial.println("nesepnuto");
  }
  // počkej 200 ms
  delay(200);
}

 

Jak program funguje?

Arduino opakovaně čte digitální stav na pinu, ke kterému je připojený výstup DO ze senzoru. Pokud senzor zaznamená dostatečný odraz infračerveného světla, výstup se přepne do aktivního stavu. U běžných modulů s komparátorem to často znamená stav LOW, proto se v sériovém monitoru vypíše „sepnuto“. Pokud odraz nestačí, zobrazí se „nesepnuto“.

Citlivost si můžete doladit pomocí trimru na modulu. Nejlepší je otevřít sériový monitor, přibližovat senzor k různým povrchům a postupně nastavit bod, ve kterém má modul reagovat.

Volitelně: analogové čtení přes AO

Pokud chcete sledovat přímo změnu odrazivosti, můžete využít také analogový výstup AO. V tom případě zapojte:

  • VCC modulu na 5 V
  • GND modulu na GND
  • AO modulu na A0 Arduina

Pak můžete použít například tento jednoduchý program:

const int pinIRAnalog = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int hodnota = analogRead(pinIRAnalog);
  Serial.println(hodnota);
  delay(200);
}

 

Na analogovém výstupu dostanete hodnotu od 0 do 1023. Konkrétní čísla se budou lišit podle vzdálenosti, typu povrchu, okolního světla i nastavení trimru, takže je nejlepší si nejdřív reálné hodnoty vypsat do sériového monitoru a teprve potom podle nich nastavovat vlastní podmínky v programu.


Schéma zapojení analogové pro IR senzor - TCRT5000

Na co si dát pozor

  • TCRT5000 funguje nejlépe na krátkou vzdálenost.
  • Na výsledku záleží nejen barva, ale hlavně odrazivost materiálu v IR pásmu.
  • Silné okolní světlo, hlavně přímé slunce, může měření ovlivnit.
  • Před použitím v robotovi doporučujeme vždy doladit citlivost trimrem přímo na konkrétní dráze nebo povrchu.

Slovo na závěr

TCRT5000 je jednoduchý, levný a velmi praktický modul pro Arduino. Skvěle se hodí pro první pokusy se sledováním čáry, detekcí povrchu nebo jednoduchou optickou detekcí blízkého objektu. Pokud budete chtít stabilnější sledování čáry u robota, vyplatí se použít dva nebo více senzorů najednou.

Soubory ke stažení