Olá
Vamos ver se alguém consegue me ajudar, estou programando um contador de objetos, mas estou com problemas, pois minha programação esta “correta”, mas o arduino não esta fazendo a contagem. Segue programação
// Programa: Contador utilizando LCD 16x2 e botao reset e sensor TCRT 50000
#include<Wire.h>
#include<LiquidCrystal_I2C.h>
#define endereco 0x27
#define colunas 16
#define linhas 2
#define pinBuzzer 7
LiquidCrystal_I2C lcd (endereco, colunas, linhas);
// Cria variaveis globais
int contador = 0;
// Ligado ao pino “coletor” do sensor óptico - Porta A5 ao Arduino
int pinosensor = 5;
// Pino ligado ao botao de reset
int pino_botao_reset = A0;
// Armazena o valor lido pelo sensor optico
int leitura;
// Armazena o estado do botao reset
int estadobotao = 0;
void setup()
{
lcd.init();
lcd.backlight();
lcd.clear();
// Define buzzer
pinMode(pinBuzzer, OUTPUT);
// Define o pino do sensor optico como entrada
pinMode(pinosensor, INPUT);
// Define o pino do botao reset como entrada
pinMode(pino_botao_reset, INPUT);
// Informacoes iniciais no LCD
lcd.print(“Contador:0”);
}
void loop()
{
// Verifica se o botao reset foi pressionado
estadobotao = digitalRead(pino_botao_reset);
if (estadobotao != 1)
{
// Zera o contador
contador = 0;
// Apaga o valor anterior
lcd.setCursor(10,0);
if(contador < 10) lcd.print(" “);
if(contador < 100) lcd.print(” “);
if(contador < 1000) lcd.print(” “);
if(contador < 10000) lcd.print(” “);
if(contador < 100000) lcd.print(” “);
if(contador < 1000000) lcd.print(” “);
lcd.print(”");
// Mostra o valor zerado
lcd.setCursor(10,0);
if(contador < 10) lcd.print(" “);
if(contador < 100) lcd.print(” “);
if(contador < 1000) lcd.print(” “);
if(contador < 10000) lcd.print(” “);
if(contador < 100000) lcd.print(” “);
if(contador < 1000000) lcd.print(” ");
lcd.print(contador);
}
// Le as informações do pino do sensor optico
leitura = digitalRead(pinosensor);
// Verifica se o objeto foi detectado pelo sensor
if (leitura != 1){
digitalWrite(pinBuzzer, HIGH);
}else{
digitalWrite(pinBuzzer, LOW);
}
{
// Incrementa o valor do contador
contador = contador++;
// Apaga o valor anterior
lcd.setCursor(10,0);
if(contador < 10) lcd.print(" “);
if(contador < 100) lcd.print(” “);
if(contador < 1000) lcd.print(” “);
if(contador < 10000) lcd.print(” “);
if(contador < 100000) lcd.print(” “);
if(contador < 1000000) lcd.print(” “);
lcd.print(”");
// Mostra o valor do contador
lcd.setCursor(10,0);
if(contador < 10) lcd.print(" “);
if(contador < 100) lcd.print(” “);
if(contador < 1000) lcd.print(” “);
if(contador < 10000) lcd.print(” “);
if(contador < 100000) lcd.print(” “);
if(contador < 1000000) lcd.print(” ");
lcd.print(contador);
// Loop caso o objeto pare sobre o sensor
while(digitalRead(pinosensor) != 1)
{}
}
}