Contador de objetos com Arduino
Olá, em mais um artigo mostrando as infinitas aplicações do Arduino, vamos abordar um projeto completo de um contador de objetos com Arduino. Utilizaremos o conceito de reset de contagem e também o sensor óptico reflexivo TCRT5000. Então, vamos lá?
Contador de objetos é a ponta do Iceberg.
Claro que um projeto voltado para a contagem de objetos acaba se tornando algo simples. Entretanto, o detalhe principal são os conceitos por trás do conjunto da obra.
Assim, o projeto de hoje é passível de diversos upgrades mais potentes. Voltados para o controle de pessoas em uma portaria, de carros em um estacionamento, ou até, a contagem de linha de produção inteira e de larga escala.
Portanto, entenda que as possibilidades de criação vem da sua imaginação. Contudo, se atente a compreender completamente os conceitos. Entender como o sistema funciona e como as partes se completam para então fazer ele ganhar proporções ainda maiores.
Conhecendo os protagonistas de hoje.
Assim, como em toda obra de arte, temos os elementos principais, e em nosso projeto de hoje não seria diferente. Além disso, o conhecimento a respeito de suas funcionalidades se torna ainda mais importante.
Assim, confira abaixo os artigos de nosso blog explicando cada um deles:
Os componentes listados acima são os protagonistas, contudo, sem os componentes da nossa loja listado abaixo também não seria possível este projeto:
Construindo o cenário.
Portanto, logo após separar todos os componentes listados, chegou o momento de organizar todos eles em sua protoboard (nosso palco!). Para isso, siga o esquema de ligação da imagem abaixo:
Por fim, para finalizar a construção do cenário basta realizar aquela última verificada nas ligações (vai que né!) e vamos agora para a construção da programação (ou das “falas” de nossos protagonistas!)
Escrevendo o roteiro da obra.
Então, depois de montarmos todo o esquemático da apresentação, chegou o momento de organizar todos os papéis dos nossos componentes no projeto.
Por isso, segue abaixo o código desenvolvido (leia ele com atenção!) e caso apareça erros, comente abaixo!
// Chamando a biblioteca do nosso display LCD #include <LiquidCrystal.h> // Quais os pinos utilizados? Usamos esses! LiquidCrystal lcd(12,11,5,4,3,2); // As nossas variaveis globais int contador = 0; int pinosensor = 6; int pino_botao_reset = A0; int valor_sensor; // Armazena o valor lido pelo sensor optico bool s_high; int estadobotao = 0; void setup() { // Qual a config do nosso display? O nosso é 16x2 lcd.begin(16,2); // Define o pino do sensor optico como entrada pinMode(pinosensor, INPUT); // Define o pino do botao reset como entrada pinMode(pino_botao_reset, INPUT); // O display inicia com este texto! lcd.print("Ja contei: 0"); } void loop() { // Verificando se o botao reset foi pressionado estadobotao = digitalRead(pino_botao_reset); if (estadobotao != 1) // Como ele é pull-up então colocamos (1) { contador = 0; //Apaga o valor anterior lcd.setCursor(11,0); lcd.print(" "); //Mostra o valor zerado lcd.setCursor(11,0); lcd.print(contador); } // Vamos ler o estado do nosso sensor valor_sensor = digitalRead(pinosensor); if (valor_sensor == 1){ // Algum objeto passou por ele delay (250); s_high = 1; } // Quando o sensor passar por ele conta +1 if (!valor_sensor && s_high) { s_high = 0; // Incrementa o valor do contador contador += 1; lcd.setCursor(11,0); lcd.print(" "); // Mostra o valor do contador lcd.setCursor(11,0); lcd.print(contador); } }
Após o upload do código para o seu Arduino, você deverá estar vendo uma mensagem no seu display LCD e com toda a certeza já foi testar a contagem (espero que tenha dado certo!).
Então, para não deixar você sozinho nessa, confira abaixo o meu vídeo lá do nosso canal de como este projeto!
Agradecemos a sua presença.
Portanto, hoje vimos um projeto onde podemos aplicá-lo a diversos exemplos do cotidiano como já conversamos. Além disso, o que você deve levar daqui é o conceito por trás de todo o conjunto. Qual a importância de cada componente no sistema geral.
Por fim, espero que tenha aprendido bastante e significaria o mundo para mim se você compartilhasse com o seu colega ou que avaliasse logo abaixo!
Um grande abraço e até a próxima apresentação!
Olá Danilo, seu post era tudo que precisava. eu tenho que contar bolachas de madeira de 100 e 100, tentei por peso mas nunca da exato, esse circuito vai me ajudar muito! Uma duvida, não entendo quase nada de programação, teria como incluir um buzzer quando chegasse a 100 contagens? ou acender um led, ou os dois? muito difícil mudar o código? Obrigado por compartilhar e parabéns pelo seu site.
Olá Luciano, tudo bem?
Claro que pode, para isso você ia precisar adicionar uma condição IF depois do comando “contador += 1;”
Assim, você verifica se a variável “contador” chegou a 100. Caso tenha chegado, aciona o buzzer ou ligue quantos LEDs quiser!
Qualquer dúvida, volte a escrever novamente, mega abraço e bons projetos!
Olá Luciano, venho parabenizar seu trabalho, estou fazendo uma bobinadeira caseira e precisava de um contador e deu muito trabalho para encontrar um projeto que desse certo, esse ficou perfeito muito obrigado…
Olá João, ficamos felizes em saber que foi útil!