În acest proiect vom interfața senzorul de culoare TCS3200 cu Arduino UNO. TCS3200 este un senzor de culoare care poate detecta orice număr de culori cu o programare corectă. TCS3200 conține tablouri RGB (Red Green Blue). După cum se arată în figura de la nivel microscopic, se pot vedea cutiile pătrate din interiorul ochiului senzorului. Aceste cutii pătrate sunt matrice de matrice RGB. Fiecare dintre aceste cutii conține trei senzori, unul este pentru detectarea intensității luminii ROȘII, unul este pentru detectarea intensității luminii VERZI și ultimul pentru detectarea intensității luminii ALBASTRU.
Fiecare dintre matricile senzorilor din aceste trei matrice sunt selectate separat, în funcție de cerință. Prin urmare, este cunoscut sub numele de senzor programabil. Modulul poate fi prezentat pentru a simți culoarea particulară și pentru a le părăsi pe celelalte. Conține filtre pentru acest scop de selecție. Există al patrulea mod care nu este un mod de filtrare. Fără modul de filtrare, senzorul detectează lumina albă.
Componente necesare
Hardware: ARDUINO UNO, sursă de alimentare (5v), LED, JHD_162ALCD (16 * 2LCD), senzor de culoare TCS3200.
Software: ARDUINO IDE (ARDUINO noaptea).
Diagrama circuitului și explicația de lucru
În ecranul LCD 16x2 există 16 pini peste tot dacă există o lumină din spate, dacă nu există lumină din spate vor exista 14 pini. Se poate alimenta sau lăsa pinii luminii din spate. Acum, în cele 14 pinii există 8 pini de date (7-14 sau D0-D7), 2 pini de alimentare (1 & 2 sau VSS & VDD sau GND & + 5v), 3 rd PIN pentru controlul contrastului (VEE-control cât de gros personajele ar trebui să fie afișat) și 3 pini de control (RS & RW & E)
În circuit, puteți observa că am luat doar doi pini de control. Bitul de contrast și READ / WRITE nu sunt adesea folosite, astfel încât acestea pot fi scurtcircuitate la sol. Acest lucru pune LCD în cel mai mare contrast și modul de citire. Trebuie doar să controlăm ENABLE și pinii RS pentru a trimite caractere și date în consecință.
Conexiunile care se fac pentru LCD sunt date mai jos:
PIN1 sau VSS la masă
PIN2 sau VDD sau VCC la + 5v putere
PIN3 sau VEE la sol (oferă un contrast maxim optim pentru un începător)
PIN4 sau RS (Selecție înregistrare) la PIN8 din ARDUINO UNO
PIN5 sau RW (citire / scriere) la masă (pune LCD în modul de citire facilitează comunicarea pentru utilizator)
PIN6 sau E (Enable) toPIN9 of ARDUINO UNO
PIN11 sau D4 până la PIN7 ale ARDUINO UNO
PIN12 sau D5 până la PIN11 ale ARDUINO UNO
PIN13 sau D6 până la PIN12 ale ARDUINO UNO
PIN14 sau D7 până la PIN13 ale ARDUINO UNO
Conexiunile realizate pentru senzorul de culoare sunt date mai jos:
VDD la + 5V
GND la Pământ
OE (Enable output) la GND
S0 la pinul UNO 2
S1 la pinul UNO 3
S2 la pinul UNO 4
S3 la pinul UNO 5
OUT la pinul UNO 10
Culoarea care trebuie detectată de senzorul de culoare este selectată de doi pini S2 și S3. Cu acești doi pini de control logic putem spune senzorului ce intensitate a luminii de culoare trebuie măsurată.
Să presupunem că trebuie să simțim intensitatea culorii roșii, pentru a seta ambii pini la LOW. Odată ce acest lucru este făcut, senzorul detectează intensitatea și trimite valoarea către sistemul de control din interiorul modulului.
S2 |
S3 |
Tip fotodiodă |
L |
L |
roșu |
L |
H |
Albastru |
H |
L |
Ștergeți (fără filtru) |
H |
H |
Verde |
Sistemul de control din interiorul modulului este prezentat în figură. Intensitatea luminii măsurată de matrice este trimisă la curent la convertor de frecvență. Ceea ce face este să scoată o undă pătrată a cărei frecvență este în raport cu curentul trimis de ARRAY.
Deci avem un sistem care trimite o undă pătrată a cărei frecvență depinde de intensitatea luminii de culoare care este selectată de S2 și S3.
Frecvența semnalului trimis de modul poate fi modulată în funcție de utilizare. Putem modifica lățimea de bandă a frecvenței semnalului de ieșire.
S0 |
S1 |
Scalarea frecvenței de ieșire (f 0) |
L |
L |
Putere scazuta |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Scalarea frecvenței se face cu doi biți S0 și S1. Pentru comoditate, vom limita scalarea frecvenței la 20%. Acest lucru se realizează prin setarea S0 la ridicat și S1 la LOW. Această caracteristică este utilă atunci când utilizăm modulul de pe sistem cu ceas redus.
Sensibilitatea matricei la culoare este prezentată în figura de mai jos.
Deși culorile diferite au o sensibilitate diferită, pentru o utilizare normală nu va face mare diferență.
UNO trimite aici un semnal către modul pentru a detecta culorile, iar datele primite de modul sunt afișate pe ecranul LCD 16 * 2 conectat la acesta.
UNO detectează trei intensități de culoare separat și le afișează pe ecranul LCD.
Uno poate detecta durata impulsului semnalului prin care putem obține frecvența undei pătrate trimise de modul. Cu frecvența la îndemână o putem asorta cu culoarea senzorului.
|
În condițiile de mai sus, UNO citește durata impulsului pe al 10- lea pin al UNO și stochează valoarea acestuia în întregul „frecvență”.
Vom face acest lucru pentru toate cele trei culori pentru recunoașterea culorilor. Toate cele trei intensități de culoare sunt afișate de frecvențe pe ecranul LCD 16x2.