de contatore con pulsante [RISOLTO]

Ciao, qualcuno può indicarmi un semplice esempio di de contatore con un pulsante e display 16X2 ?
Grazie mille

Ciao,
prova questo... devi solo inserire la libreria giusta (se I2c o no), connettere il display ed dichiarare su che pin applicherai il pulsante.

/* Simple Counter
* ——————
*
* This is a simple counter that takes a digital input
*
*/
int ledPin = 13; // choose the pin for the LED
int switchPin =2; // choose the input pin (for a pushbutton)
int val = 0; // variable for reading the pin status
int counter = 0;
int currentState = 0;
int previousState = 0;

void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(switchPin, INPUT); // declare pushbutton as input
Serial.begin(9600);
}

void loop(){
val = digitalRead(switchPin); // read input value
if (val == HIGH) { // check if the input is HIGH (button released)
digitalWrite(ledPin, HIGH); // turn LED on
currentState = 1;
}
else {
digitalWrite(ledPin, LOW); // turn LED off
currentState = 0;
}
if(currentState != previousState){
if(currentState == 1){
counter = counter + 1;
Serial.println(counter);
}
}
previousState = currentState;
delay(250);
}

Ciao, quello che ho scritto e che sto usando in questo topic, funziona alla grande:

prendi i pezzi che ti servono.

Ciao ciao

Grazie mille l'ho fatto nell'attesa.. scusami :slight_smile: :slight_smile: :slight_smile:
unterminated argument list invoking macro "F" cos'è questo errore ?

Risolto tutto grazie a tutti

mi sono bloccato, mi serve un aiuto. ho usato il programma di FEDE. però vorrei fare in modo che il relè si attivi una sola volta e non nel loop di continuo tic e tac. poi vorrei che il contatore riparte a 100 quando invio un segnale sulla seriale. ma questo ci posso arrivare.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x27,16,2);

int rele = 6; // choose the pin for the LED
int switchPin =3; // choose the input pin (for a pushbutton)
int val = 0; // variable for reading the pin status
int counter = 100;
int currentState = 100;
int previousState = 100;

void setup() {

pinMode(rele, OUTPUT); // declare LED as output
pinMode(switchPin, INPUT); // declare pushbutton as input
Serial.begin(9600);
lcd.init();                                       // INIZIALIZZA IL DISPLAY
  lcd.backlight();
  lcd.setCursor(1,0);                               // POSIZIONA IL CURSORE
  lcd.print("PROGETTO");
  lcd.setCursor(1,1);                               
  lcd.print(F("CONTATORE CONSUMI"));
  delay(3500);
}

void loop(){
val = digitalRead(switchPin); // read input value
if (val == HIGH) { // check if the input is HIGH (button released)
//digitalWrite(ledPin, HIGH); // turn LED on
currentState = 100;
}
else {
//digitalWrite(ledPin, LOW); // turn LED off
currentState = 0;
}
if(currentState != previousState){
if(currentState == 100){
counter = counter - 1;
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print(" RIMANENTI");
     lcd.setCursor(5,1);
     lcd.print(counter);
Serial.println(counter);
}
}

if (counter == 90){
digitalWrite(rele, HIGH);
delay(500);
digitalWrite(rele, LOW);
   }
previousState = currentState;
delay(250);
}