In dit project gaan we de TCS3200-kleurensensor koppelen aan Arduino UNO. TCS3200 is een kleurensensor die met de juiste programmering een willekeurig aantal kleuren kan detecteren. TCS3200 bevat RGB-arrays (rood groen blauw). Zoals weergegeven in de figuur op microscopisch niveau, kan men de vierkante dozen in het oog op de sensor zien. Deze vierkante dozen zijn arrays van RGB-matrix. Elk van deze dozen bevat drie sensoren: een is voor het detecteren van de intensiteit van het ROOD, een is voor het detecteren van de intensiteit van het GROENE licht en de laatste voor het detecteren van de intensiteit van het BLAUWE licht.
Elk van de sensorarrays in deze drie arrays wordt afzonderlijk geselecteerd, afhankelijk van de vereisten. Daarom staat het bekend als programmeerbare sensor. De module kan worden gebruikt om de specifieke kleur aan te voelen en de andere te verlaten. Het bevat filters voor dat selectiedoeleinden. Er is een vierde modus die geen filtermodus is. Zonder filtermodus detecteert de sensor wit licht.
Componenten vereist
Hardware: ARDUINO UNO, voeding (5v), LED, JHD_162ALCD (16 * 2LCD), TCS3200 kleurensensor.
Software: ARDUINO IDE (ARDUINO nachtelijk).
Schakelschema en werkuitleg
In 16x2 LCD zijn er in totaal 16 pinnen als er een achtergrondverlichting is, als er geen achtergrondverlichting is, zijn er 14 pinnen. Men kan de achterlichtpinnen van stroom voorzien of laten. Nu zijn er in de 14 pinnen 8 datapinnen (7-14 of D0-D7), 2 voedingspinnen (1 & 2 of VSS & VDD of GND & + 5v), 3 e pin voor contrastregeling (VEE-regelt hoe dik de tekens moeten zijn afgebeeld), en 3 controlepennen (RS & RW & E)
In het circuit kun je zien dat ik maar twee controlepennen heb genomen. Het contrastbit en READ / WRITE worden niet vaak gebruikt, zodat ze kunnen worden kortgesloten naar aarde. Dit plaatst LCD in het hoogste contrast en leesmodus. We hoeven alleen de ENABLE- en RS-pinnen te bedienen om tekens en gegevens dienovereenkomstig te verzenden.
De aansluitingen die zijn gemaakt voor LCD worden hieronder gegeven:
PIN1 of VSS naar aarde
PIN2 of VDD of VCC tot + 5v vermogen
PIN3 of VEE naar aarde (geeft maximaal contrast het beste voor een beginner)
PIN4 of RS (registerselectie) naar PIN8 van ARDUINO UNO
PIN5 of RW (lezen / schrijven) naar aarde (zet LCD in leesmodus vereenvoudigt de communicatie voor de gebruiker)
PIN6 of E (inschakelen) naarPIN9 van ARDUINO UNO
PIN11 of D4 naar PIN7 van ARDUINO UNO
PIN12 of D5 naar PIN11 van ARDUINO UNO
PIN13 of D6 naar PIN12 van ARDUINO UNO
PIN14 of D7 naar PIN13 van ARDUINO UNO
De aansluitingen die worden gemaakt voor de kleursensor worden hieronder weergegeven:
VDD tot + 5V
GND naar GROND
OE (output Enable) naar GND
S0 naar UNO pin 2
S1 naar UNO pin 3
S2 naar UNO-pin 4
S3 naar UNO pin 5
OUT naar UNO pin 10
De kleur die door de kleursensor moet worden gedetecteerd, wordt geselecteerd door twee pinnen S2 en S3. Met deze twee pins logic control kunnen we de sensor vertellen welke kleur lichtintensiteit gemeten moet worden.
Stel dat we de RODE kleurintensiteit moeten voelen, we moeten beide pinnen op LAAG zetten. Zodra dat is gebeurd, detecteert de sensor de intensiteit en stuurt de waarde naar het controlesysteem in de module.
S2 |
S3 |
Fotodiode Type |
L. |
L. |
Rood |
L. |
H. |
Blauw |
H. |
L. |
Wissen (geen filter) |
H. |
H. |
Groen |
Het regelsysteem in de module wordt getoond in de afbeelding. De door de array gemeten lichtintensiteit wordt naar de stroom-naar-frequentieomvormer gestuurd. Wat het doet is, het zendt een blokgolf uit waarvan de frequentie in verhouding staat tot de stroom die door ARRAY wordt verzonden.
We hebben dus een systeem dat een blokgolf uitzendt waarvan de frequentie afhangt van de lichtintensiteit van de kleur die wordt geselecteerd door S2 en S3.
De signaalfrequentie die door de module wordt verzonden, kan worden gemoduleerd, afhankelijk van het gebruik. We kunnen de frequentiebandbreedte van het uitgangssignaal wijzigen.
S0 |
S1 |
Uitgangsfrequentieschaling (f 0) |
L. |
L. |
Stroomstoring |
L. |
H. |
2% |
H. |
L. |
20% |
H. |
H. |
100% |
De frequentieschaling wordt gedaan door twee bits S0 en S1. Gemakshalve gaan we de frequentieschaling beperken tot 20%. Dit wordt gedaan door S0 op hoog en S1 op LOW in te stellen. Deze functie is handig wanneer we de module op een systeem met een lage klok gebruiken.
De gevoeligheid van de array voor kleur wordt weergegeven in de onderstaande afbeelding.
Hoewel verschillende kleuren een verschillende gevoeligheid hebben, maakt het voor normaal gebruik niet veel uit.
De UNO stuurt hier een signaal naar de module om kleuren te detecteren en de gegevens die door de module worden ontvangen, worden weergegeven op het 16 * 2 LCD-scherm dat erop is aangesloten.
De UNO detecteert drie kleurintensiteiten afzonderlijk en toont deze op LCD.
De Uno kan de signaalpulsduur detecteren waarmee we de frequentie van de per module verzonden blokgolf kunnen krijgen. Met de frequentie bij de hand kunnen we deze matchen met de kleur op de sensor.
|
Zoals door de bovenstaande voorwaarde UNO leest pulsduur 10 th pin UNO en slaat deze waarde op “frequentie” integer.
We gaan dit voor alle drie de kleuren doen voor kleurherkenning. Alle drie de kleurintensiteiten worden weergegeven door frequenties op 16x2 LCD.