- Componentes necessários:
- TCS3200 Sensor de Cor funcionando
- Pinagem do sensor de cor TCS3200:
- Diagrama de circuito
- Explicação do código
Neste projeto, vamos trabalhar em uma ideia inovadora de projeto arduino, onde podemos contar as notas de papel-moeda e calcular seu valor, sentindo o papel-moeda usando Color Sensor e Arduino. O sensor de cores TCS230 será usado para detectar as notas da moeda e, o Arduino UNO para processar os dados e mostrar o saldo restante no LCD 16x2.
Componentes necessários:
- Arduino UNO
- TCS230 sensor de cores
- Sensor infravermelho
- Tábua de pão
- 16 * 2 LCD alfanumérico
- Fios de conexão
TCS3200 Sensor de Cor funcionando
O sensor de cores TCS3200 é usado para detectar uma ampla gama de cores. Anteriormente, fizemos a interface do sensor de cores TCS3200 com o Arduino e o Raspberry pi e também construímos alguns projetos úteis, como máquina de classificação de cores.
O sensor TCS230 possui LEDs infravermelhos embutidos que são usados para iluminar o objeto cuja cor deve ser detectada. Isso garante que não haverá impactos da luz externa circundante no objeto. Este sensor lê um fotodiodo de 8 * 8 array, que compreende 16 fotodiodos com filtros vermelhos, 16 com filtros azuis, 16 com filtros verdes e 16 fotodiodos sem qualquer filtro. Cada uma das matrizes de sensores nessas três matrizes é selecionada separadamente, dependendo do requisito. Por isso, é conhecido como sensor programável. O módulo pode ser caracterizado para detectar a cor específica e deixar as outras. Ele contém filtros para esse propósito de seleção. Existe um quarto modo denominado 'modo sem filtro', no qual o sensor detecta a luz branca.
O sinal de saída do sensor de cores TCS230 é uma onda quadrada com ciclo de trabalho de 50% e sua frequência é proporcional à intensidade de luz do filtro selecionado.
Pinagem do sensor de cor TCS3200:
VDD- Pino de alimentação de tensão do sensor. É fornecido com 5V DC.
GND- Pino de referência de aterramento de um sensor de cor
S0, S1- Entradas de seleção de escala de frequência de saída
S2, S3- Entradas de seleção de tipo de foto-diodo
OUT- Pino de saída de um sensor de cor
OE- Habilitar pino para frequência de saída
Também utilizamos um sensor IR neste projeto, cujo funcionamento pode ser entendido pelo seguinte link.
Diagrama de circuito
Abaixo está o diagrama de circuito para o Contador de dinheiro Arduino:
Aqui, eu fiz uma pequena estrutura como uma máquina de troca de moeda para POS usando papelão. Nessa estrutura, um sensor de cores e um sensor de IR são fixados com o papelão conforme mostrado na imagem abaixo.
Aqui, o sensor IR é usado para detectar a presença de moeda dentro do slot e, se houver uma nota, o sensor de cor detectará a cor da nota e enviará o valor da cor para o Arduino. E o Arduino calcula ainda mais o valor da moeda com base na cor da nota.
Explicação do código
O código completo junto com um vídeo de demonstração é fornecido no final do artigo. Aqui, a explicação passo a passo do código completo é fornecida abaixo.
Primeiro, inclua todas as bibliotecas do programa. Aqui, só precisamos que a biblioteca LCD seja incluída no programa. Em seguida, declare todas as variáveis usadas no código.
#incluir
Dentro de setup (), imprima a mensagem de boas-vindas no LCD e defina todas as direções de dados dos pinos digitais usados neste projeto. Em seguida, defina a escala de frequência de saída do sensor de cor, no meu caso, é definido como 20%, que pode ser definido dando pulso HIGH para S0 e pulso LOW para S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Carteira inteligente"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); atraso (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, ALTO); digitalWrite (3, BAIXO); }
Dentro do loop infinito (), leia todas as saídas de dados dos sensores. A saída do sensor IR pode ser encontrada lendo o pino A0 e as frequências de cor de saída podem ser encontradas chamando as funções individuais escritas como vermelho (), azul () e verde (). Em seguida, imprima todos eles no monitor serial. Isso é necessário quando precisamos adicionar uma nova moeda ao nosso projeto.
sensor interno = digitalRead (A0); int vermelho1 = vermelho (); int azul1 = azul (); int verde1 = verde (); Serial.println (red1); Serial.println (blue1); Serial.println (verde1); Serial.println ("-----------------------------");
Em seguida, escreva todas as condições para verificar a frequência de saída do sensor de cores com a frequência de referência que definimos anteriormente. Se corresponder, então deduz o valor especificado do saldo da carteira.
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 rúpias !!!"); total = total-10; atraso (1500); lcd.clear (); }}
Aqui, definimos apenas as condições para 10 Rúpias e 50 Rúpias Cor da nota, você pode definir mais condições para detectar mais no. de notas de moeda.
Nota: A saída de frequência pode ser diferente no seu caso, dependendo da iluminação externa e configuração do sensor. Portanto, é recomendável verificar a frequência de saída de sua moeda e definir o valor de referência de acordo.
O código abaixo mostrará o saldo disponível na carteira no LCD 16x2.
lcd.setCursor (0, 0); lcd.print ("Bal. Total:"); lcd.setCursor (11, 0); lcd.print (total); atraso (1000);
A função a seguir obterá a frequência da cor de saída do conteúdo vermelho na moeda. Da mesma forma, podemos escrever outras funções para obter valor para o conteúdo das cores azul e verde.
int vermelho () {digitalWrite (11, LOW); digitalWrite (12, LOW); frequência = pulseIn (OutPut, LOW); frequência de retorno; }
Portanto, é assim que um contador de dinheiro baseado em Arduino pode ser construído facilmente usando poucos componentes. Podemos modificá-lo ainda mais integrando algum processamento de imagem e câmera para detectar a moeda usando a imagem, dessa forma ela será mais precisa e será capaz de detectar qualquer moeda.