En este proyecto, vamos a trabajar en una idea innovadora del proyecto Arduino , donde podemos contar los billetes de papel y calcular su cantidad, detectando el papel moneda usando Color Sensor y Arduino . El sensor de color TCS230 se utilizará para detectar los billetes y Arduino UNO para procesar los datos y mostrar el saldo restante en la pantalla LCD de 16×2 .
Componentes requeridos:
- Arduino UNO
- Sensor de color TCS230
- Sensor de infrarrojos
- Tablero de circuitos
- LCD alfanumérico 16 * 2
- Cables de conexión
Sensor de color TCS3200 funcionando
El sensor de color TCS3200 se utiliza para detectar una amplia gama de colores. Anteriormente interactuamos con el sensor de color TCS3200 con Arduino y Raspberry pi , y también construimos algunos proyectos útiles como la máquina de clasificación de colores.
El sensor TCS230 tiene LED infrarrojos incorporados que se utilizan para iluminar el objeto cuyo color se va a detectar. Esto asegura que no habrá impactos de luz externa circundante sobre el objeto. Este sensor lee un fotodiodo de 8 * 8, que consta de 16 fotodiodos con filtros rojos, 16 con filtros azules, 16 con filtros verdes y 16 fotodiodos sin filtro . Cada una de las matrices de sensores en estas tres matrices se selecciona por separado según el requisito. Por lo tanto, se conoce como un sensor programable . El módulo puede presentarse para detectar el color particular y dejar los demás. Contiene filtros para ese propósito de selección. Hay un cuarto modo llamado ‘modo sin filtro’ en el que el sensor detecta la luz blanca.
La señal de salida del sensor de color TCS230 es una onda cuadrada con un ciclo de trabajo del 50% y su frecuencia es proporcional a la intensidad de la luz del filtro seleccionado.
Pinout del sensor de color TCS3200:
VDD- Pin de suministro de voltaje del sensor. Se suministra con 5V DC.
GND- Pin de referencia a tierra de un sensor de color
S0, S1- Entradas de selección de escalado de frecuencia de salida
S2, S3- Entradas de selección de tipo de fotodiodo
OUT- Pin de salida de un sensor de color
OE: habilita el pin para la frecuencia de salida
Aquí, he hecho una pequeña estructura como una máquina deslizadora de divisas POS utilizando cartones. En esta estructura, un sensor de color y un sensor IR se fijan con el cartón como se muestra en la imagen a continuación.
Aquí el sensor IR se usa para detectar la presencia de moneda dentro de la ranura y si hay una nota, entonces el sensor de color detectará el color de la Nota y enviará el valor de color a Arduino. Y Arduino calcula además el valor de la moneda en función del color de la nota.
Explicación del código
Primero, incluya todas las bibliotecas en el programa. Aquí solo necesitamos que la biblioteca LCD se incluya en el programa. Luego declare todas las variables utilizadas en el código.
#include <LiquidCrystal.h>
int OutPut = 13;
frecuencia int sin signo = 0;
LiquidCrystal lcd (4, 6, 7, 8, 9, 10);
int blue1;
int red1;
int green1;
int a = 0, b = 0;
int total = 1000;
Dentro de la configuración (), imprima el mensaje de bienvenida en la pantalla LCD y defina todas las direcciones de datos de los pines digitales utilizados en este proyecto. A continuación, establezca la escala de frecuencia de salida del sensor de color, en mi caso, se establece en 20%, que se puede configurar dando pulso ALTO a S0 y pulso BAJO a S1.
configuración nula ()
{
Serial.begin (9600);
lcd.begin (16, 2);
lcd.setCursor (0, 0);
lcd.print ("Cartera inteligente");
lcd.setCursor (0, 1);
lcd.print ("Resumen del circuito");
retraso (2000);
lcd.clear ();
pinMode (2, OUTPUT); // S0
pinMode (3, OUTPUT); // S1
pinMode (11, SALIDA); // S2
pinMode (12, SALIDA); // S3
pinMode (13, INPUT); // OUT
digitalWrite (2, ALTO);
digitalWrite (3, BAJO);
}
Dentro del bucle infinito (), lea todas las salidas de datos de los sensores. La salida del sensor IR se puede encontrar leyendo el pin A0 y las frecuencias de color de salida se pueden encontrar llamando a las funciones individuales escritas como rojo (), azul () y verde (). Luego imprímalos todos en el monitor de serie. Esto es necesario cuando necesitamos agregar una nueva moneda a nuestro proyecto.
int sensor = digitalRead (A0);
int red1 = red ();
int blue1 = blue ();
int green1 = green ();
Serial.println (rojo1);
Serial.println (azul1);
Serial.println (verde1);
Serial.println ("-----------------------------");
A continuación, escriba todas las condiciones para verificar la frecuencia de salida del sensor de color con la frecuencia de referencia que hemos establecido anteriormente. Si coincide, deduce la cantidad especificada del saldo de la billetera.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH)
{
a = 1;
}
más si (sensor == BAJO && a == 1)
{
a = 0;
si (total> = 10)
{
lcd.setCursor (0, 1);
lcd.print ("¡10 rupias!");
total = total-10;
retraso (1500);
lcd.clear ();
}
}
Aquí solo hemos establecido las condiciones para 10 Rupias y 50 Rupias Nota de color, puede establecer más condiciones para detectar más no. de billetes de divisas.
Nota: La salida de frecuencia puede ser diferente en su caso según la iluminación externa y la configuración del sensor. Por lo tanto, se recomienda verificar la frecuencia de salida de su moneda y establecer el valor de referencia en consecuencia.
El siguiente código mostrará el saldo disponible en la billetera en la pantalla LCD de 16×2 .
lcd.setCursor (0, 0);
lcd.print ("Total Bal:");
lcd.setCursor (11, 0);
lcd.print (total);
retraso (1000);
La siguiente función obtendrá la frecuencia de color de salida del contenido rojo en la moneda. Del mismo modo, podemos escribir otras funciones para obtener valor para los contenidos de color azul y verde.
int red ()
{
digitalWrite (11, BAJO);
digitalWrite (12, BAJO);
frecuencia = pulseIn (OutPut, LOW);
frecuencia de retorno;
}
Así es como un contador de dinero basado en Arduino se puede construir fácilmente con pocos componentes. Podemos modificarlo aún más integrando algo de procesamiento de imágenes y cámara para detectar la moneda usando la imagen, de esa manera será más precisa y podrá detectar cualquier moneda.
-
Arduino ATmega 2560 R3¡Oferta!
$20.50$19.00 -
Arduino Uno Wifi¡Oferta!
$15.00$13.00 -
Arduino Mini USB Nano V3.0 CH340 Chip Board 5V 16M + Cable¡Oferta!
$9.00$8.50