Arduino-baseret Farvedetektor ved hjælp af farvesensor TCS230
i dette projekt skal vi interface TCS3200 farvesensor med Arduino UNO. TCS3200 er en farvesensor, der kan registrere et hvilket som helst antal farver med den rigtige programmering. TCS3200 indeholder RGB (Rød Grøn Blå) 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-matricen. Hver af disse kasser indeholder tre sensorer, den ene er til at registrere rødt lysintensitet, den ene er til at registrere grønt lysintensitet og den sidste til at registrere blåt lysintensitet.
hver af sensorarrays i disse tre arrays vælges separat afhængigt af kravet. Derfor er det kendt som programmerbar sensor. Modulet kan være featured at fornemme den særlige farve og til at forlade de andre. Den indeholder filtre til det valgte formål. Der er forth-tilstand, der ikke er nogen filtertilstand. Uden filtertilstand registrerer sensoren hvidt lys.
komponenter kræves
udstyr: Arduino UNO, strømforsyning (5V), LED, JHD_162ALCD (16*2lcd),tcs3200 farvesensor.
programmel: Arduino IDE (Arduino nightly).
kredsløbsdiagram og Arbejdsforklaring
i 16H2 LCD er der 16 stifter over alt, hvis der er et baglygte, hvis der ikke er noget baglygte, vil der være 14 stifter. Man kan tænde eller forlade baglygterne. Nu i de 14 stifter er der 8 datastifter (7-14 eller D0-D7), 2 strømforsyningsstifter (1&2 eller VSS&VDD eller GND&+5v), 3.pin til kontrastkontrol (VEE-styrer, hvor tykke tegnene skal vises), og 3 kontrolstifter (RS&RV&E)
i kredsløbet kan du observere, at jeg har tog kun to kontrolstifter. Kontrastbit og læse / skrive bruges ikke ofte, så de kan kortsluttes til jorden. Dette sætter LCD i højeste kontrast og læse tilstand. Vi skal bare kontrollere Aktiver og RS-pins for at sende tegn og data i overensstemmelse hermed.
de forbindelser, der er gjort for LCD er angivet nedenfor:
PIN1 eller VSS til jord
PIN2 eller VDD eller VCC til +5V strøm
PIN3 eller VEE til jord (giver maksimal kontrast bedst for en nybegynder)
PIN4 eller RS (registrer valg) til PIN8 af ARDUINO UNO
PIN5 eller RV (Læs/Skriv) til jord (sætter LCD i læsetilstand letter kommunikationen for brugeren)
pin6 eller e (aktiver) TOPIN9 af Arduino UNO
pin11 eller D4 til PIN7 af Arduino Uno
pin12 eller D5 til pin11 af Arduino UNO
PIN13 eller D6 til PIN12 af Arduino Uno
pin14 eller D7 til pin13 af Arduino Uno
forbindelserne som er gjort for farvesensor er angivet nedenfor:
VDD til +5V
GND til jorden
OE (output Enable) 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
den farve, der skal registreres af farvesensoren, vælges af to stifter S2 og S3. Med disse to stifter logik kontrol kan vi fortælle sensor hvilken farve lysintensitet der skal måles.
sig, at vi er nødt til at mærke den røde farveintensitet, vi har brug for for at indstille begge stifter til lav. Når det er gjort, registrerer sensoren intensiteten og sender værdien til styresystemet inde i modulet.
S2 |
S3 |
fotodiode Type |
L |
L |
Rød |
L |
H |
blå |
H |
L |
klar (intet filter) |
H |
H |
grøn |
styresystemet inde i modulet er vist i figur. Lysintensiteten målt ved array sendes til strøm til frekvensomformer. Hvad det gør er, det sætter en firkantet bølge, hvis frekvens er i forhold til strøm sendt af ARRAY.
så vi har et system, der sender en firkantet bølge, hvis frekvens afhænger af lysintensiteten af farve, som er valgt af S2 og S3.
signalfrekvensen sendt af modul kan moduleres afhængigt af brug. Vi kan ændre udgangssignalfrekvensbåndbredden.
S0 |
S1 |
skalering af Udgangsfrekvens (f0) |
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.
Array følsomhed 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 forskel.
UNO her sender signal til modul for at registrere farver, og de data, der modtages af modulet, vises i 16*2 LCD, der er tilsluttet det.
UNO registrerer tre farveintensiteter separat og viser dem på LCD.
Uno kan registrere signalpulsvarigheden, hvormed vi kan få frekvensen af kvadratbølge sendt af modul. Med den aktuelle frekvens kan vi matche den med farve på sensoren.
- int frekvens = pulseIn (10, lav);