Imagem - Circuito no simulador Proteus
//Programa: Display LCD 16 x 2 / contador
//Autor: Anderson O. de Sampaio
//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>
#include <Wire.h>
//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(22,23, 24, 25, 26, 27);
//LiquidCrystal lcd(22,23, 24, 35, 47, 46);
int pino_sensor = 30;
int valor = 1; //Variavel leitura sensor
int contador = 0;
void setup()
{
Serial.begin(9600);
pinMode ( pino_sensor, INPUT);
//Inicializa o display LCD 16x2 I2C
lcd.begin(16, 2);
//informacoes iniciais
lcd.setCursor(0, 0);
lcd.print("Sensor Sw");
lcd.setCursor(0, 1);
lcd.print("Contador: 0");
Serial.println("Contador com sensor chave");
}
void loop()
{
valor = digitalRead(pino_sensor);
if (valor == 0)
{
// Incrementa contador
contador++;
//Mostra o valor do contador no display
lcd.setCursor(10, 1);
lcd.print(contador);
//Mostra o valor do contador no serial monitor
Serial.print("Contador: ");
Serial.println(contador);
//Loop caso o objeto fique parado em frente ao sensor
while (digitalRead(pino_sensor) == 0)
{
delay(100);
}
}
}