- Components necessaris:
- Sensor de color TCS3200 funcionant
- Pinout del sensor de color TCS3200:
- Esquema de connexions
- Explicació del codi
En aquest projecte treballarem en una innovadora idea de projecte arduino, en la qual podrem comptar les notes de moneda en paper i calcular-ne la quantitat, detectant la moneda del paper mitjançant Color Sensor i Arduino. El sensor de color TCS230 s’utilitzarà per detectar els bitllets de divises i, Arduino UNO per processar les dades i mostrar el saldo restant a la pantalla LCD de 16x2.
Components necessaris:
- Arduino UNO
- Sensor de color TCS230
- Sensor IR
- Taula de pa
- 16 * 2 LCD alfanumèric
- Connexió de cables
Sensor de color TCS3200 funcionant
El sensor de color TCS3200 s’utilitza per detectar una àmplia gamma de colors. Prèviament hem interfacat el sensor de color TCS3200 amb Arduino i Raspberry pi, i també hem construït alguns projectes útils com la màquina de classificació de colors.
El sensor TCS230 té LED d'infrarojos incorporats que s'utilitzen per il·luminar l'objecte el color del qual s'ha de detectar. D’aquesta manera es garanteix que no hi haurà impactes de llum circumdant externa sobre l’objecte. Aquest sensor llegeix un fotodiode de matriu de 8 * 8, que comprèn 16 fotodíodes amb filtres vermells, 16 amb filtres blaus, 16 amb filtres verds i 16 fotodíodes sense filtre. Cadascuna de les matrius de sensors d’aquestes tres matrius es selecciona per separat segons el requisit. Per tant, es coneix com a sensor programable. El mòdul es pot presentar per detectar el color concret i deixar els altres. Conté filtres per a aquest propòsit de selecció. Hi ha un quart mode anomenat "mode sense filtre" en què el sensor detecta llum blanca.
El senyal de sortida del sensor de color TCS230 és una ona quadrada amb un cicle de treball del 50% i la seva freqüència és proporcional a la intensitat lumínica del filtre seleccionat.

Pinout del sensor de color TCS3200:

VDD- Pin d'alimentació de tensió del sensor. Es subministra amb corrent continu de 5V.
GND- Pin de referència a terra d’un sensor de color
S0, S1- Entrades de selecció d’escala de freqüència de sortida
S2, S3- Entrades de selecció de tipus de díode fotogràfic
OUT- Pin de sortida d’un sensor de color
OE- Activa el pin per a la freqüència de sortida
També hem utilitzat un sensor IR en aquest projecte, el funcionament del qual es pot entendre mitjançant el següent enllaç.
Esquema de connexions
A continuació es mostra el diagrama de circuits del comptador de diners Arduino:

Aquí he creat una petita estructura com una màquina de lliscar moneda amb TPV que utilitza cartrons. En aquesta estructura, un sensor de color i un sensor IR es fixen amb el cartró com es mostra a la imatge següent.

Aquí s’utilitza el sensor IR per detectar la presència de moneda dins de la ranura i, si hi ha una nota, el sensor de color detectarà el color de la nota i enviarà el valor del color a Arduino. I Arduino calcula a més el valor de la moneda en funció del color de la nota.
Explicació del codi
Al final de l'article es dóna un codi complet juntament amb un vídeo de demostració. Aquí es mostra a continuació l’explicació gradual del codi complet.
En primer lloc, incloeu totes les biblioteques del programa. Aquí només necessitem incloure la biblioteca LCD al programa. A continuació, declareu totes les variables utilitzades al codi.
#incloure
Dins de la configuració (), imprimiu el missatge de benvinguda a la pantalla LCD i definiu totes les direccions de dades dels pins digitals utilitzats en aquest projecte. A continuació, configureu l’escala de freqüència de sortida del sensor de color, en el meu cas, s’estableix en un 20%, que es pot configurar donant pols ALT a S0 i pols BAIX a S1.
configuració nul·la () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Cartera intel·ligent"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); endarreriment (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, ALT); digitalWrite (3, BAIX); }
Dins del bucle infinit (), llegiu totes les dades de sortida dels sensors. La sortida del sensor IR es pot trobar llegint el pin A0 i les freqüències de color de sortida es poden trobar trucant a les funcions individuals escrites en vermell (), blau () i verd (). A continuació, imprimiu-los tots al monitor sèrie. Això és necessari quan hem d'afegir una nova moneda al nostre projecte.
int sensor = digitalRead (A0); int red1 = red (); int blau1 = blau (); int green1 = green (); Serial.println (vermell1); Serial.println (blau1); Serial.println (green1); Serial.println ("----------------------------");
A continuació, escriviu totes les condicions per comprovar la freqüència de sortida del sensor de color amb la freqüència de referència que hem establert abans. Si coincideix, es dedueix l'import especificat del saldo de la cartera.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (sensor == BAIX && a == 1) {a = 0; if (total> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rupies !!!"); total = total-10; retard (1500); lcd.clear (); }}
Aquí només hem establert les condicions per al color de 10 rupies i 50 rupies, podeu establir més condicions per detectar-ne més. de bitllets de divises.

Nota: la sortida de freqüència pot ser diferent en el vostre cas, segons la il·luminació externa i la configuració del sensor. Per tant, es recomana comprovar la freqüència de sortida de la seva moneda i establir el valor de referència en conseqüència.

El codi següent mostrarà el saldo disponible a la cartera a la pantalla LCD de 16x2.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (total); retard (1000);
La següent funció obtindrà la freqüència de color de sortida del contingut vermell a la moneda. De la mateixa manera, podem escriure altres funcions per obtenir valor per als continguts de color blau i verd.
int red () {digitalWrite (11, BAIX); digitalWrite (12, BAIX); freqüència = pulseIn (OutPut, LOW); freqüència de retorn; }
Així és com es pot construir fàcilment un comptador de diners basat en Arduino utilitzant pocs components. Podem modificar-la encara més integrant processament d’imatges i càmeres per detectar la moneda mitjançant la imatge, d’aquesta manera serà més precisa i serà capaç de detectar qualsevol moneda.
