- Componenti richiesti:
- Sensore di colore TCS3200 funzionante
- Pinout del sensore di colore TCS3200:
- Schema elettrico
- Spiegazione del codice
In questo progetto lavoreremo su un'idea innovativa di progetto arduino, in cui possiamo contare le banconote in valuta cartacea e calcolare il loro importo, rilevando la valuta cartacea utilizzando il sensore di colore e Arduino. Il sensore di colore TCS230 verrà utilizzato per rilevare le banconote e, Arduino UNO per elaborare i dati e mostrare il saldo residuo su LCD 16x2.
Componenti richiesti:
- Arduino UNO
- TCS230 Sensore di colore
- Sensore IR
- Breadboard
- LCD alfanumerico 16 * 2
- Collegamento dei cavi
Sensore di colore TCS3200 funzionante
Il sensore di colore TCS3200 viene utilizzato per rilevare un'ampia gamma di colori. In precedenza abbiamo interfacciato il sensore di colore TCS3200 con Arduino e Raspberry pi e abbiamo anche creato alcuni progetti utili come la macchina per l'ordinamento dei colori.
Il sensore TCS230 ha LED a infrarossi incorporati che vengono utilizzati per illuminare l'oggetto il cui colore deve essere rilevato. Ciò garantisce che non ci saranno impatti della luce circostante esterna sull'oggetto. Questo sensore legge un fotodiodo di matrice 8 * 8, che comprende 16 fotodiodi con filtri rossi, 16 con filtri blu, 16 con filtri verdi e 16 fotodiodi senza alcun filtro. Ciascuno degli array di sensori in questi tre array viene selezionato separatamente a seconda del requisito. 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. Esiste una quarta modalità chiamata "modalità senza filtro" in cui il sensore rileva la luce bianca.
Il segnale di uscita del sensore di colore TCS230 è un'onda quadra con un duty cycle del 50% e la sua frequenza è proporzionale all'intensità della luce del filtro selezionato.
Pinout del sensore di colore TCS3200:
VDD- Pin di alimentazione di tensione del sensore. Viene fornito con 5V DC.
GND- Pin di riferimento a massa di un sensore di colore
S0, S1- Ingressi di selezione della scala della frequenza di uscita
S2, S3- Ingressi di selezione del tipo di foto-diodo
OUT- Pin di uscita di un sensore di colore
OE- Abilita pin per la frequenza di uscita
Abbiamo anche utilizzato un sensore IR in questo progetto, il cui funzionamento può essere compreso dal seguente link.
Schema elettrico
Di seguito è riportato lo schema del circuito per Arduino Money Counter:
Qui, ho realizzato una piccola struttura come una macchina per lo scorrimento delle valute POS utilizzando dei cartoni. In questa struttura, un sensore di colore e un sensore IR sono fissati con il cartone come mostrato nell'immagine sotto.
Qui il sensore IR viene utilizzato per rilevare la presenza di valuta all'interno dello slot e se c'è una nota, il sensore di colore rileverà il colore della nota e invierà il valore del colore ad Arduino. E Arduino calcola ulteriormente il valore della valuta in base al colore della nota.
Spiegazione del codice
Il codice completo insieme a un video dimostrativo è fornito alla fine dell'articolo. Di seguito viene fornita la spiegazione graduale del codice completo.
Innanzitutto, includi tutte le librerie nel programma. Qui abbiamo solo bisogno della libreria LCD da includere nel programma. Quindi dichiara tutte le variabili utilizzate nel codice.
#includere
All'interno di setup (), stampare il messaggio di benvenuto sul display LCD e definire tutte le direzioni dei dati dei pin digitali utilizzati in questo progetto. Successivamente, imposta la scala della frequenza di uscita del sensore di colore, nel mio caso, è impostata al 20% che può essere impostata dando l'impulso ALTO a S0 e l'impulso BASSO a S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Portafoglio intelligente"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); ritardo (2000); lcd.clear (); pinMode (2, OUTPUT); // S0 pinMode (3, OUTPUT); // S1 pinMode (11, OUTPUT); // S2 pinMode (12, OUTPUT); // S3 pinMode (13, INPUT); // OUT digitalWrite (2, HIGH); digitalWrite (3, LOW); }
All'interno del ciclo infinito (), leggi tutti i dati in uscita dai sensori. L'uscita dal sensore IR può essere trovata leggendo il pin A0 e le frequenze dei colori in uscita possono essere trovate chiamando le singole funzioni scritte come rosso (), blu () e verde (). Quindi stamparli tutti sul monitor seriale. Questo è necessario quando dobbiamo aggiungere una nuova valuta al nostro progetto.
int sensor = digitalRead (A0); int red1 = rosso (); int blue1 = blu (); int green1 = verde (); Serial.println (red1); Serial.println (blue1); Serial.println (green1); Serial.println ("-----------------------------");
Successivamente, scrivi tutte le condizioni per controllare la frequenza di uscita del sensore di colore con la frequenza di riferimento che abbiamo impostato in precedenza. Se corrisponde, deduce l'importo specificato dal saldo del portafoglio.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (sensor == LOW && a == 1) {a = 0; if (total> = 10) {lcd.setCursor (0, 1); lcd.print ("10 Rupees !!!"); totale = totale-10; ritardo (1500); lcd.clear (); }}
Qui abbiamo impostato solo le condizioni per 10 Rupie e 50 Rupie Colore Nota, puoi impostare più condizioni per rilevare più n. di banconote.
Nota: l'uscita in frequenza potrebbe essere diversa nel tuo caso a seconda dell'illuminazione esterna e della configurazione del sensore. Quindi si consiglia di controllare la frequenza di uscita della propria valuta e impostare il valore di riferimento di conseguenza.
Il codice sottostante mostrerà il saldo disponibile nel portafoglio sul display LCD 16x2.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (totale); ritardo (1000);
La seguente funzione otterrà la frequenza del colore di output del contenuto rosso nella valuta. Allo stesso modo, possiamo scrivere altre funzioni per ottenere valore per i contenuti di colore blu e verde.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frequenza = pulseIn (OutPut, LOW); frequenza di ritorno; }
Quindi è così che un contatore di denaro basato su Arduino può essere costruito facilmente utilizzando pochi componenti. Possiamo modificarlo ulteriormente integrando l'elaborazione delle immagini e la fotocamera per rilevare la valuta utilizzando l'immagine, in questo modo sarà più accurata e sarà in grado di rilevare qualsiasi valuta.