I dette projekt vil vi interface TCS3200 farvesensor med Arduino UNO. TCS3200 er en farvesensor, der kan registrere et vilkårligt antal farver med korrekt programmering. TCS3200 indeholder RGB (rødgrønblå) arrays. Som vist i figur på mikroskopisk niveau kan man se de firkantede kasser inde i øjet på sensoren. Disse firkantede kasser er arrays af RGB-matrix. Hver af disse kasser indeholder tre sensorer, den ene er til registrering af RØD lysintensitet, den ene er til registrering af GRØN lysintensitet og den sidste til registrering af BLÅ lysintensitet.
Hver af sensorarrays i disse tre arrays vælges separat afhængigt af kravet. Derfor er det kendt som programmerbar sensor. Modulet kan præsenteres for at mærke den særlige farve og for at forlade de andre. Den indeholder filtre til det valgte formål. Der er fjerde tilstand, der ikke er filtertilstand. Uden filtertilstand registrerer sensoren hvidt lys.
Komponenter, der kræves
Hardware: ARDUINO UNO, strømforsyning (5v), LED, JHD_162ALCD (16 * 2LCD), TCS3200 farvesensor.
Software: ARDUINO IDE (ARDUINO om natten).
Kredsløbsdiagram og arbejdsforklaring
I 16x2 LCD er der overalt 16 ben, hvis der er baggrundslys, hvis der ikke er baggrundslys, vil der være 14 ben. Man kan tænde eller lade bagbelysningsstifterne stå. Nu i de 14 stifter er der 8 data stifter (7-14 eller D0-D7), 2 Strømforsyning stifter (1 & 2 eller VSS & VDD eller GND & + 5V), 3 rd pin for kontraststyring (VEE-styringer, hvor tyk tegnene bør være vist) og 3 kontrolben (RS & RW & E)
I kredsløbet kan du se, at jeg kun har taget to kontrolben. Kontrastbit og LÆS / SKRIV bruges ikke ofte, så de kan kortsluttes til jorden. Dette sætter LCD i højeste kontrast og læsetilstand. Vi skal bare kontrollere ENABLE og RS-ben for at sende tegn og data i overensstemmelse hermed.
Forbindelserne, der foretages for LCD, er angivet nedenfor:
PIN1 eller VSS til jord
PIN2 eller VDD eller VCC til + 5v strøm
PIN3 eller VEE til jorden (giver maksimal kontrast bedst for en nybegynder)
PIN4 eller RS (Registrer valg) til PIN8 for ARDUINO UNO
PIN5 eller RW (læse / skrive) til jorden (sætter LCD i læsefunktion letter kommunikationen for brugeren)
PIN6 eller E (Aktivér) til PIN9 for ARDUINO UNO
PIN11 eller D4 til PIN7 for ARDUINO UNO
PIN12 eller D5 til PIN11 i ARDUINO UNO
PIN13 eller D6 til PIN12 for ARDUINO UNO
PIN14 eller D7 til PIN13 for ARDUINO UNO
Forbindelserne, der foretages for farvesensor, er angivet nedenfor:
VDD til + 5V
GND til JORD
OE (output aktiveret) til GND
S0 til UNO pin 2
S1 til UNO pin 3
S2 til UNO pin 4
S3 til UNO pin 5
UD til UNO pin 10
Farven, der skal registreres af farvesensoren, vælges med to ben S2 og S3. Med disse to ben logiske kontrol kan vi fortælle sensor hvilken farve lysintensitet der skal måles.
Sig, at vi har brug for at mærke den RØDE farveintensitet, vi har brug for for at indstille begge ben til LAV. Når det er gjort, registrerer sensoren intensiteten og sender værdien til kontrolsystemet inde i modulet.
S2 |
S3 |
Fotodiodetype |
L |
L |
Rød |
L |
H |
Blå |
H |
L |
Ryd (intet filter) |
H |
H |
Grøn |
Kontrolsystemet inde i modulet er vist i figur. Lysintensiteten målt ved matrix sendes til strøm til frekvensomformer. Hvad det gør er, at det lægger en firkantbølge, hvis frekvens er i forhold til strøm sendt af ARRAY.
Så vi har et system, der sender en firkantbølge, hvis frekvens afhænger af farveintensiteten, der vælges af S2 og S3.
Signalfrekvensen sendt af modulet kan moduleres afhængigt af brugen. Vi kan ændre udgangssignalets frekvensbåndbredde.
S0 |
S1 |
Udgangsfrekvensskalering (f 0) |
L |
L |
Sluk |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Frekvensskaleringen udføres af to bits S0 og S1. For nemheds skyld vil vi begrænse frekvensskaleringen til 20%. Dette gøres ved at indstille S0 til høj og S1 til LAV. Denne funktion er praktisk, når vi bruger modulet på systemet med lavt ur.
Matrixfølsomheden over for farve er vist i nedenstående figur.
Selvom forskellige farver har forskellig følsomhed, vil det til normal brug ikke gøre meget.
UNO sender her signal til modul for at detektere farver, og data modtaget af modulet vises i 16 * 2 LCD forbundet til det.
UNO registrerer tre farveintensiteter separat og viser dem på LCD.
Uno kan registrere signalimpulsens varighed, hvormed vi kan få frekvensen af firkantbølgen sendt af modulet. Med frekvensen ved hånden kan vi matche den med farve på sensoren.
|
Som ved ovenstående betingelse UNO læser pulsvarigheden den 10. th pin af UNO og lagrer den værdi i ”frekvens” heltal.
Vi skal gøre dette for alle tre farver til farvegenkendelse. Alle tre farveintensiteter vises med frekvenser på 16x2 LCD.