In questo progetto interfacciamo il sensore di colore TCS3200 con Arduino UNO. TCS3200 è un sensore di colore in grado di rilevare qualsiasi numero di colori con la giusta programmazione. TCS3200 contiene array RGB (Red Green Blue). Come mostrato in figura a livello microscopico si possono vedere le caselle quadrate all'interno dell'occhio sul sensore. Queste scatole quadrate sono array di matrice RGB. Ciascuna di queste scatole contiene tre sensori, uno per rilevare l'intensità della luce ROSSA, uno per rilevare l'intensità della luce VERDE e l'ultimo per rilevare l'intensità della luce BLU.
Ciascuno degli array di sensori in questi tre array viene selezionato separatamente a seconda dei requisiti. Quindi è noto come sensore programmabile. Il modulo può essere caratterizzato per percepire il colore particolare e lasciare gli altri. Contiene filtri per tale scopo di selezione. C'è una quarta modalità che non è una modalità di filtro. Senza la modalità filtro, il sensore rileva la luce bianca.
Componenti richiesti
Hardware: ARDUINO UNO, alimentatore (5v), LED, JHD_162ALCD (16 * 2LCD), sensore di colore TCS3200.
Software: ARDUINO IDE (ARDUINO notturno).
Schema del circuito e spiegazione del funzionamento
In 16x2 LCD ci sono 16 pin in tutto se c'è una retroilluminazione, se non c'è retroilluminazione ci saranno 14 pin. Si può alimentare o lasciare i perni della retroilluminazione. Ora nei 14 pin ci sono 8 pin dati (7-14 o D0-D7), 2 pin di alimentazione (1 & 2 o VSS & VDD o GND & + 5v), 3 ° pin per il controllo del contrasto (VEE-controlla lo spessore dei caratteri mostrato) e 3 pin di controllo (RS & RW & E)
Nel circuito, puoi osservare che ho preso solo due pin di controllo. Il bit di contrasto e READ / WRITE non sono usati spesso, quindi possono essere cortocircuitati a massa. Questo mette l'LCD nel più alto contrasto e modalità di lettura. Abbiamo solo bisogno di controllare i pin ENABLE e RS per inviare caratteri e dati di conseguenza.
Di seguito sono riportati i collegamenti effettuati per l'LCD:
PIN1 o VSS a terra
Alimentazione da PIN2 o VDD o VCC a + 5v
PIN3 o VEE a massa (offre il massimo contrasto migliore per un principiante)
PIN4 o RS (Register Selection) al PIN8 di ARDUINO UNO
PIN5 o RW (lettura / scrittura) a massa (mette l'LCD in modalità di lettura facilita la comunicazione per l'utente)
PIN6 o E (Enable) al PIN9 di ARDUINO UNO
PIN11 o D4 al PIN7 di ARDUINO UNO
PIN12 o D5 al PIN11 di ARDUINO UNO
PIN13 o D6 al PIN12 di ARDUINO UNO
PIN14 o D7 al PIN13 di ARDUINO UNO
Di seguito sono riportati i collegamenti che vengono effettuati per il sensore di colore:
VDD a + 5V
GND a TERRA
OE (output Enable) su GND
S0 al pin UNO 2
S1 su UNO pin 3
S2 al pin UNO 4
S3 al pin UNO 5
OUT a UNO pin 10
Il colore che deve essere rilevato dal sensore di colore è selezionato da due pin S2 e S3. Con questo controllo logico a due pin possiamo dire al sensore quale intensità di luce del colore deve essere misurata.
Supponiamo di dover rilevare l'intensità del colore ROSSO di cui abbiamo bisogno per impostare entrambi i pin su BASSO. Fatto ciò, il sensore rileva l'intensità e invia il valore al sistema di controllo all'interno del modulo.
S2 |
S3 |
Tipo di fotodiodo |
L |
L |
Rosso |
L |
H |
Blu |
H |
L |
Cancella (nessun filtro) |
H |
H |
verde |
Il sistema di controllo all'interno del modulo è mostrato in figura. L'intensità della luce misurata dall'array viene inviata alla corrente al convertitore di frequenza. Quello che fa è emettere un'onda quadra la cui frequenza è in relazione alla corrente inviata da ARRAY.
Quindi abbiamo un sistema che invia un'onda quadra la cui frequenza dipende dall'intensità della luce del colore che è selezionata da S2 e S3.
La frequenza del segnale inviato dal modulo può essere modulata a seconda dell'utilizzo. Possiamo cambiare la larghezza di banda della frequenza del segnale di uscita.
S0 |
S1 |
Scala frequenza di uscita (f 0) |
L |
L |
Spegnimento |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
La scalatura della frequenza viene eseguita da due bit S0 e S1. Per comodità, limiteremo il ridimensionamento della frequenza al 20%. Questo viene fatto impostando S0 su alto e S1 su BASSO. Questa funzione è utile quando si utilizza il modulo su un sistema con clock basso.
La sensibilità dell'array al colore è mostrata nella figura sottostante.
Sebbene colori diversi abbiano una sensibilità diversa, per un uso normale non farà molta differenza.
L'UNO qui invia il segnale al modulo per rilevare i colori ei dati ricevuti dal modulo vengono visualizzati nell'LCD 16 * 2 ad esso collegato.
L'UNO rileva tre intensità di colore separatamente e le mostra sul display LCD.
Uno è in grado di rilevare la durata dell'impulso del segnale in base alla quale possiamo ottenere la frequenza dell'onda quadra inviata dal modulo. Con la frequenza a portata di mano possiamo abbinarla al colore sul sensore.
|
Come per la condizione precedente, UNO legge la durata dell'impulso sul 10 ° pin di UNO e memorizza il valore in un numero intero di "frequenza".
Lo faremo per tutti e tre i colori per il riconoscimento del colore. Tutte e tre le intensità di colore sono mostrate dalle frequenze sull'LCD 16x2.