Op Arduino gebaseerde Kleurdetector met behulp van kleurensensor TCS230
in dit project gaan we de TCS3200 kleurensensor met Arduino UNO verbinden. TCS3200 is een kleurensensor die elk aantal kleuren kan detecteren met de juiste programmering. TCS3200 bevat RGB (Rood Groen Blauw) arrays. Zoals getoond in figuur op microscopisch niveau kan men de vierkante dozen in het oog op sensor te zien. Deze vierkante dozen zijn arrays van RGB matrix. Elk van deze dozen bevatten drie sensoren, één is voor het ontdekken van rode lichtintensiteit, één is voor het ontdekken van groene lichtintensiteit en de laatste voor het ontdekken van blauwe lichtintensiteit.
elk van de sensor arrays in deze drie arrays worden afzonderlijk geselecteerd afhankelijk van de behoefte. Daarom is het bekend als programmeerbare sensor. De module kan worden gekenmerkt om de specifieke kleur te voelen en de anderen te verlaten. Het bevat filters voor dat selectiedoel. Er is weer-modus die geen filtermodus is. Zonder filtermodus detecteert de sensor wit licht.
vereiste onderdelen
Hardware: Arduino UNO, voeding (5v), LED,JHD_162ALCD (16*2LCD), TCS3200 kleurensensor.
Software: Arduino IDE (Arduino nightly).
schema en werk verklaring
in 16×2 LCD zijn er 16 pinnen over alles als er een backlight is, als er geen backlight is zullen er 14 pinnen zijn. Men kan de Spelden van het achterlicht van stroom voorzien of verlaten. Nu zijn er in de 14 pinnen 8 datapennen (7-14 of D0-D7), 2 voedingspennen (1&2 of VSS&VDD of GND&+5v), 3e pin voor contrastcontrole (VEE-bepaalt hoe dik de tekens moeten worden weergegeven), en 3 controlepennen (RS&RW&E)
In het circuit, u kunt zien dat ik slechts twee controlepennen heb genomen. Het contrast bit en lees / schrijf worden niet vaak gebruikt, zodat ze kunnen worden kortgesloten aan de grond. Dit zet LCD in het hoogste contrast en leesmodus. We hoeven alleen maar te controleren inschakelen en RS-pinnen om tekens en gegevens dienovereenkomstig te verzenden.
de verbindingen die voor LCD worden gemaakt, worden hieronder gegeven:
PIN1 of VSS grond
PIN2-of VDD of VCC naar +5v vermogen
PIN3 of VEE naar de grond (geeft het maximale contrast beste voor een beginner)
PIN4 of RS (Register Selectie) naar PIN8 van de ARDUINO UNO
PIN5 of RW-station (Lezen/Schrijven) naar de grond (zet het LCD scherm in de modus lezen vergemakkelijkt de communicatie voor de gebruiker)
PIN6 of E (Enable) toPIN9 van ARDUINO UNO
PIN11 of D4 te PIN7 van ARDUINO UNO
PIN12 of D5 te PIN11 van ARDUINO UNO
PIN13 of D6 PIN12 van ARDUINO UNO
PIN14 of D7 naar PIN13 van ARDUINO UNO
De verbindingen die worden gedaan voor kleurensensor worden hieronder gegeven:
VDD tot +5V
GND tot grond
OE (output Enable) tot GND
S0 tot UNO pin 2
S1 tot UNO pin 3
S2 tot UNO pin 4
S3 tot UNO pin 5
uit naar uno-pin 10
de kleur die door de kleursensor moet worden waargenomen, wordt geselecteerd door twee pinnen S2 en S3. Met deze twee pinnen logic control kunnen we sensor vertellen welke kleur lichtintensiteit moet worden gemeten.
zeg dat we de rode kleurintensiteit moeten voelen die we nodig hebben om beide pinnen op laag te zetten. Zodra dat is gedaan detecteert de sensor de intensiteit en stuurt de waarde naar het besturingssysteem in de module.
S2 |
S3 |
Fotodiode Type |
L |
L |
Rood |
L |
H |
Blauw |
H |
L |
Duidelijk (geen filter) |
H |
H |
Groen |
De besturing in de module wordt weergegeven in de afbeelding. De lichtintensiteit gemeten door array wordt verzonden naar stroom naar frequentieomvormer. Wat het doet is, het zendt een vierkante golf uit waarvan de frequentie in verhouding is tot de stroom die door ARRAY wordt gestuurd.
dus we hebben een systeem dat een vierkante golf uitzendt waarvan de frequentie afhankelijk is van de lichtintensiteit van 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 veranderen.
S0 |
S1 |
Uitgang Frequentie Schaling (f0) |
L |
L |
Power Down |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
De frequentie schaling wordt gedaan door twee bits S0 en S1. Voor het gemak beperken we de frequentieschaling tot 20%. Dit wordt gedaan door S0 op hoog en S1 op laag te zetten. Deze functie komt van pas wanneer we de module op systeem met lage klok gebruiken.
de Array-gevoeligheid voor kleur wordt weergegeven in onderstaande figuur.
hoewel verschillende kleuren verschillende gevoeligheid hebben, zal het bij normaal gebruik niet veel verschil maken.
uno verzendt hier signaal aan module om kleuren te ontdekken en de gegevens die door de module worden ontvangen worden getoond in 16 * 2 LCD verbonden met het.
de UNO detecteert drie kleurintensiteiten afzonderlijk en toont ze op LCD.
Uno kan de duur van de signaalimpuls ontdekken waarmee wij de frequentie van vierkante golf kunnen krijgen die door module wordt verzonden. Met de frequentie bij de hand kunnen we het matchen met kleur op sensor.
- Int frequentie = pulseIn (10, laag);