IR Detektor S88/Základní senzory: Porovnání verzí

Z ModelWiki
Skočit na navigaci Skočit na vyhledávání
 
(Není zobrazeno 5 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
 
Základní senzory jsou přímo připojené k desce IR detektoru, každý konektor má 3 vodiče:
 
Základní senzory jsou přímo připojené k desce IR detektoru, každý konektor má 3 vodiče:
- společných +5V uprostřed
+
* společných +5V uprostřed
- GND - spínané tranzistorovým polem, ovládá IR LED
+
* GND - spínané tranzistorovým polem, ovládá IR LED
- emitor fototranzistoru, připojený na vstup Arduina
+
* emitor fototranzistoru, připojený na vstup Arduina
  
 
Arduino zapíná LED vždy po dvojicích; vyhodnocuje, zda příjem signálu fototranzistorem odpovídá stavu LED (svítí, nesvítí) daného senzoru. Ze senzoru se musí přečíst několikrát (standardně 3x) správný stav než se senzor prohlásí za "sepnutý" (přijímá světlo své LED).
 
Arduino zapíná LED vždy po dvojicích; vyhodnocuje, zda příjem signálu fototranzistorem odpovídá stavu LED (svítí, nesvítí) daného senzoru. Ze senzoru se musí přečíst několikrát (standardně 3x) správný stav než se senzor prohlásí za "sepnutý" (přijímá světlo své LED).
Řádek 11: Řádek 11:
 
SEN:číslo senzoru:citlivost:prodleva
 
SEN:číslo senzoru:citlivost:prodleva
 
</pre></blockquote>
 
</pre></blockquote>
- '''číslo senzoru''' je pořadové číslo (1-8) senzoru, jehož citlivost se má nastavit
+
* '''číslo senzoru''' je pořadové číslo (1-8) senzoru, jehož citlivost se má nastavit
- '''citlivost''' je prahová hodnota '''rozdílu''' intenzity světla.
+
* '''citlivost''' je prahová hodnota '''rozdílu''' intenzity světla.
- '''prodleva''' je doba v ''milisekundách'', po kterou se ignoruje případné "rozepnutí" senzoru (nesnímá očekáváne změny  
+
* '''prodleva''' je doba v ''milisekundách'', po kterou se ignoruje případné "rozepnutí" senzoru (nesnímá očekáváne změny  
 +
 
 +
Číslo senzoru je dané konektorem na desce, ke kterému je senzor připojený. Nezapojené senzory snímají jen malé rozdíly mezi "rozsvíceno" a "zhasnuto" (náhodné šumy) a ve výsledku jsou tak vždy "vypnuté".
  
 
Senzor snímá jak v době, kdy je jeho LED zhasnutá, tak při rozsvícené LED. Citlivost je hraniční '''rozdíl intenzity osvětlení''' mezi zhasnutou a rozsvícenou LED; při menším rozdílu se má za to, že na senzor světlo "jeho" LED nedopadá. Výchozí hodnota je '''250''', praktické hodnoty pro reflexní čidla pak jsou 100-400.
 
Senzor snímá jak v době, kdy je jeho LED zhasnutá, tak při rozsvícené LED. Citlivost je hraniční '''rozdíl intenzity osvětlení''' mezi zhasnutou a rozsvícenou LED; při menším rozdílu se má za to, že na senzor světlo "jeho" LED nedopadá. Výchozí hodnota je '''250''', praktické hodnoty pro reflexní čidla pak jsou 100-400.
  
 
Pokud "sepnutý" senzor přestane snímat požadovaný signál, ale opět "naskočí" za menší dobu než je nastavená '''prodleva''', překmit se ignoruje. Je nutné vyvážit zpoždění rozepnutí senzoru a toleranci zákmitů, které chceme potlačit. Výchozí prodleva je nastavená na 200ms. Prodleva může být až 30 sekund.
 
Pokud "sepnutý" senzor přestane snímat požadovaný signál, ale opět "naskočí" za menší dobu než je nastavená '''prodleva''', překmit se ignoruje. Je nutné vyvážit zpoždění rozepnutí senzoru a toleranci zákmitů, které chceme potlačit. Výchozí prodleva je nastavená na 200ms. Prodleva může být až 30 sekund.
 +
 +
Novým zadáním citlivosti případně prodlevy se původní hodnoty přepíší. Pokud se v příkazu prodleva neuvede, zůstává na původně nastavené hodnotě.
  
 
Takže pokud provedeme
 
Takže pokud provedeme
Řádek 27: Řádek 31:
 
- senzor 1 bude velmi citlivý, i malá změna osvětlení vyvolá sepnutí
 
- senzor 1 bude velmi citlivý, i malá změna osvětlení vyvolá sepnutí
 
- senzor 3 bude mít (oproti standardu) citlivost sníženou - ale rozepne až poté, co 300ms nebude přijímat "správné" blikání své LED
 
- senzor 3 bude mít (oproti standardu) citlivost sníženou - ale rozepne až poté, co 300ms nebude přijímat "správné" blikání své LED
 +
 +
== Nastavení režimu senzoru ==
 +
Každý senzor může fungovat jako
 +
* '''odrazový''' (výchozí stav): senzor je "aktivní", když přijme světlo vysílače. Typicky odrazem od spodku projíždějícího vozidla.
 +
* '''optická závora''': senzor se aktivuje '''přerušením''' světelného paprsku
 +
 +
Každý senzor je zpočátku odrazový. Pokud mu chceme změnit režim, musíme provést příkaz
 +
<blockquote><pre>
 +
INV:číslo senzoru
 +
</pre></blockquote>
 +
 +
Inverzi je mozne zrusit pomoci
 +
<blockquote><pre>
 +
INV:číslo senzoru:0
 +
</pre></blockquote>
 +
 +
== Prodleva sepnutí a vypnutí ==
 +
Senzor může mít určitou prodlevu mezi chvílí, kdy skutečně detekuje odraz (resp. přerušení paprsku) a kdy se '''stane aktivním''' (se všemi důsledky, jako hlášení po sběrnici S88, sepnutí relé, ...). Bez dalších nastavení se aktivuje ihned a deaktivuje také ihned, prodlevy jde ale nastavit příkazem SFT (Sensor Fade Time):
 +
 +
<blockquote><pre>
 +
SFT:číslo senzoru:prodleva-sepnutí:prodleva-vypnutí
 +
</pre></blockquote>
 +
Kde prodleva se udává jako číslo v milisekundách, maximálně 30000 (30 sekund). Funkci jde vypnout nastavením na 0. Jestliže se během prodlevy zase stav senzoru změní na původní, odpočítávání přestane - jako kdyby žádná změna ve snímači nenastala.
 +
 +
Poznámka: prodleva pro vypnutí v příkaze '''SFT''' má v podstatě stejný význam jako prodleva v příkazu '''SEN'''. Duplicitní funkce vznikla jako vedlejší produkt při přidávání virtuálních senzorů. Jediný rozdíl je, že indikační LED na Arduinu se rozsvítí po uplynutí prodlevy SEN, zatímco senzor se stane aktivním až po uplynutí obou prodlev - sčítají se.
 +
 +
== Hystereze ==
 +
Když fototranzistor detekuje stabilní signál LED a senzor se sepne, pro udržení sepnutí senzoru stačí '''menší intenzita osvětlení''' aby udržel sepnutý. U reflexního senzoru to pomáhá kompenzovat vliv nerovností na spodkuz vozidla, které rozptylují světlo LEDky. Standardně je tato hodnota 40%, jde nastavit v rozsahu 10 - 100% příkazem
 +
 +
<blockquote><pre>
 +
OTR:číslo senzoru:procento
 +
</pre></blockquote>

Aktuální verze z 26. 8. 2021, 22:28

Základní senzory jsou přímo připojené k desce IR detektoru, každý konektor má 3 vodiče:

  • společných +5V uprostřed
  • GND - spínané tranzistorovým polem, ovládá IR LED
  • emitor fototranzistoru, připojený na vstup Arduina

Arduino zapíná LED vždy po dvojicích; vyhodnocuje, zda příjem signálu fototranzistorem odpovídá stavu LED (svítí, nesvítí) daného senzoru. Ze senzoru se musí přečíst několikrát (standardně 3x) správný stav než se senzor prohlásí za "sepnutý" (přijímá světlo své LED).

Nastavení prahu citlivosti senzoru se provádí příkazem

SEN:číslo senzoru:citlivost
SEN:číslo senzoru:citlivost:prodleva
  • číslo senzoru je pořadové číslo (1-8) senzoru, jehož citlivost se má nastavit
  • citlivost je prahová hodnota rozdílu intenzity světla.
  • prodleva je doba v milisekundách, po kterou se ignoruje případné "rozepnutí" senzoru (nesnímá očekáváne změny

Číslo senzoru je dané konektorem na desce, ke kterému je senzor připojený. Nezapojené senzory snímají jen malé rozdíly mezi "rozsvíceno" a "zhasnuto" (náhodné šumy) a ve výsledku jsou tak vždy "vypnuté".

Senzor snímá jak v době, kdy je jeho LED zhasnutá, tak při rozsvícené LED. Citlivost je hraniční rozdíl intenzity osvětlení mezi zhasnutou a rozsvícenou LED; při menším rozdílu se má za to, že na senzor světlo "jeho" LED nedopadá. Výchozí hodnota je 250, praktické hodnoty pro reflexní čidla pak jsou 100-400.

Pokud "sepnutý" senzor přestane snímat požadovaný signál, ale opět "naskočí" za menší dobu než je nastavená prodleva, překmit se ignoruje. Je nutné vyvážit zpoždění rozepnutí senzoru a toleranci zákmitů, které chceme potlačit. Výchozí prodleva je nastavená na 200ms. Prodleva může být až 30 sekund.

Novým zadáním citlivosti případně prodlevy se původní hodnoty přepíší. Pokud se v příkazu prodleva neuvede, zůstává na původně nastavené hodnotě.

Takže pokud provedeme

SEN:1:150
SEN:3:300:300

znamená to, že: - senzor 1 bude velmi citlivý, i malá změna osvětlení vyvolá sepnutí - senzor 3 bude mít (oproti standardu) citlivost sníženou - ale rozepne až poté, co 300ms nebude přijímat "správné" blikání své LED

Nastavení režimu senzoru

Každý senzor může fungovat jako

  • odrazový (výchozí stav): senzor je "aktivní", když přijme světlo vysílače. Typicky odrazem od spodku projíždějícího vozidla.
  • optická závora: senzor se aktivuje přerušením světelného paprsku

Každý senzor je zpočátku odrazový. Pokud mu chceme změnit režim, musíme provést příkaz

INV:číslo senzoru

Inverzi je mozne zrusit pomoci

INV:číslo senzoru:0

Prodleva sepnutí a vypnutí

Senzor může mít určitou prodlevu mezi chvílí, kdy skutečně detekuje odraz (resp. přerušení paprsku) a kdy se stane aktivním (se všemi důsledky, jako hlášení po sběrnici S88, sepnutí relé, ...). Bez dalších nastavení se aktivuje ihned a deaktivuje také ihned, prodlevy jde ale nastavit příkazem SFT (Sensor Fade Time):

SFT:číslo senzoru:prodleva-sepnutí:prodleva-vypnutí

Kde prodleva se udává jako číslo v milisekundách, maximálně 30000 (30 sekund). Funkci jde vypnout nastavením na 0. Jestliže se během prodlevy zase stav senzoru změní na původní, odpočítávání přestane - jako kdyby žádná změna ve snímači nenastala.

Poznámka: prodleva pro vypnutí v příkaze SFT má v podstatě stejný význam jako prodleva v příkazu SEN. Duplicitní funkce vznikla jako vedlejší produkt při přidávání virtuálních senzorů. Jediný rozdíl je, že indikační LED na Arduinu se rozsvítí po uplynutí prodlevy SEN, zatímco senzor se stane aktivním až po uplynutí obou prodlev - sčítají se.

Hystereze

Když fototranzistor detekuje stabilní signál LED a senzor se sepne, pro udržení sepnutí senzoru stačí menší intenzita osvětlení aby udržel sepnutý. U reflexního senzoru to pomáhá kompenzovat vliv nerovností na spodkuz vozidla, které rozptylují světlo LEDky. Standardně je tato hodnota 40%, jde nastavit v rozsahu 10 - 100% příkazem

OTR:číslo senzoru:procento