Arduino alapú színérzékelő színérzékelővel TCS230
ebben a projektben a TCS3200 színérzékelőt az Arduino UNO-val fogjuk összekötni. A TCS3200 egy színérzékelő, amely tetszőleges számú színt képes felismerni a megfelelő programozással. A TCS3200 RGB (piros zöld kék) tömböket tartalmaz. Amint az ábrán látható mikroszkopikus szinten látható a négyzet doboz belsejében a szem érzékelő. Ezek a négyzet alakú dobozok RGB mátrix tömbök. Mindegyik doboz három érzékelőt tartalmaz, az egyik a vörös fény intenzitásának érzékelésére szolgál, az egyik a zöld fény intenzitásának érzékelésére, az utolsó pedig a kék fény intenzitásának érzékelésére szolgál.
e három tömb mindegyik érzékelő tömbje külön-külön kerül kiválasztásra a követelményektől függően. Ezért programozható érzékelőnek nevezik. A modul szerepelhet az adott szín érzékelésére és a többiek elhagyására. Szűrőket tartalmaz erre a kiválasztási célra. Van forth mód, amely nem szűrő mód. Szűrő üzemmód nélkül az érzékelő fehér fényt érzékel.
szükséges alkatrészek
hardver: ARDUINO UNO, tápegység (5V), LED, JHD_162ALCD (16*2lcd),tcs3200 színérzékelő.
szoftver: ARDUINO IDE (Arduino nightly).
kapcsolási rajz és működési magyarázat
a 16×2 LCD-n 16 tű van, ha van hátsó lámpa, ha nincs hátsó lámpa, akkor 14 tű lesz. Az egyik a hatalom, vagy hagyja el a hátsó lámpa csapok. Most a 14 tűben 8 adatcsap van (7-14 vagy D0-D7), 2 tápegység csap (1&2 vagy VSS&VDD vagy GND&+5V), 3.tű a kontrasztszabályozáshoz (VEE-szabályozza, hogy a karaktereket milyen vastagnak kell megjeleníteni), és 3 vezérlőcsap (RS&RW&E)
az áramkörben megfigyelheti, hogy van-e csak két vezérlőtű volt. A kontrasztbitet és az olvasást / írást nem gyakran használják, így rövidre zárhatók a földre. Ez az LCD-t a legmagasabb kontrasztú és olvasási módba helyezi. Csak az ENABLE és az RS pinek vezérlésére van szükségünk, hogy ennek megfelelően küldjünk karaktereket és adatokat.
az LCD-hez készült csatlakozások az alábbiakban találhatók:
PIN1 vagy VSS a földre
PIN2 vagy VDD vagy VCC a +5V teljesítmény
PIN3 vagy VEE a földre (ad maximális kontraszt legjobb egy kezdő)
PIN4 vagy RS (regiszter kiválasztása) a PIN8 az ARDUINO UNO
PIN5 vagy RW (írás/olvasás) a földre (írás / olvasás) teszi LCD olvasási mód megkönnyíti a kommunikációt a felhasználó)
pin6 vagy e (enable) TOPIN9 az Arduino UNO
pin11 vagy D4 A PIN7 az Arduino Uno
pin12 vagy D5 a pin11 az Arduino UNO
PIN13 vagy D6 a PIN12 az Arduino Uno
pin14 vagy D7 a pin13 az arduino uno
a csatlakozások ami történik a színérzékelő az alábbiakban adjuk meg:
VDD a +5V
GND a földre
OE (kimenet engedélyezése) a GND
S0 UNO pin 2
S1 uno pin 3
S2 uno pin 4
S3 az uno 5-ös tűhöz
ki az UNO tűhöz 10
a színérzékelő által érzékelendő színt két S2 és S3 tű választja ki. Ezzel a két csapos logikai vezérléssel meg tudjuk mondani az érzékelőnek, hogy melyik szín fényintenzitását kell mérni.
tegyük fel, hogy érzékelnünk kell a piros szín intenzitását, hogy mindkét csapot alacsonyra állítsuk. Miután ez megtörtént, az érzékelő érzékeli az intenzitást, és elküldi az értéket a modulon belüli vezérlőrendszernek.
S2 |
S3 |
fotodióda Típus |
L |
L |
piros |
L |
H |
Kék |
H |
L |
Clear (nincs szűrő) |
H |
H |
Zöld |
a modul belsejében lévő vezérlőrendszer az ábrán látható. A tömb által mért fényintenzitást az áram a frekvenciaváltóhoz továbbítja. Amit csinál, egy négyzethullámot bocsát ki, amelynek frekvenciája a tömb által küldött áramhoz viszonyítva van.
tehát van egy olyan rendszerünk, amely négyzethullámot küld ki, amelynek frekvenciája az S2 és S3 által kiválasztott szín fényintenzitásától függ.
a modul által küldött jelfrekvencia a használat függvényében modulálható. Megváltoztathatjuk a kimeneti jel frekvenciájának sávszélességét.
S0 |
S1 |
kimeneti frekvencia méretezés (f0) |
L |
L |
kikapcsolás |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
a frekvencia skálázást két bit S0 és S1 végzi. A kényelem érdekében a frekvencia méretezését 20% – ra korlátozzuk. Ez úgy történik, hogy az S0 értéket magasra, az S1 értéket pedig alacsonyra állítja. Ez a funkció jól jön, ha a modult alacsony órajelű rendszeren használjuk.
a tömb színérzékenységét az alábbi ábra mutatja.
bár a különböző színek eltérő érzékenységgel rendelkeznek, normál használat esetén ez nem sok különbséget jelent.
az UNO itt jelet küld a modul számára a színek észlelésére, és a modul által kapott adatok a hozzá csatlakoztatott 16*2 LCD kijelzőn jelennek meg.
az UNO három színintenzitást érzékel külön-külön, és azokat LCD-n jeleníti meg.
az Uno képes érzékelni a jelimpulzus időtartamát, amellyel megkaphatjuk a modul által küldött négyzethullám frekvenciáját. A frekvencia kéznél tudjuk egyeztetni azt a színt érzékelő.
- Int frekvencia = pulseIn(10, alacsony);