Contapunti con arduino

*[digita o incolla il codice qui](https://www.tinkercad.com/things/0lt82IrEaOa-contapunti-venuto-bene)`Usa i tags code per formattare il codice per il forum`*

Buongiorno mi sono iscritto da poco al forum e ho provato a fare un contapunti con uno schermo lcd i2c

#include <Adafruit_LiquidCrystal.h>

int puntig1 = 0;
int puntig2 = 0;
Adafruit_LiquidCrystal lcd_1(0);

void setup()
{ pinMode(2, INPUT_PULLUP);
  pinMode(1, INPUT_PULLUP);
  lcd_1.begin(16, 2);

  lcd_1.print("contapunti");
}

void loop()
{int sensorVal = digitalRead(2);
 int sensorVal2 = digitalRead(1);
  if (sensorVal == LOW) {
  lcd_1.setCursor(0, 1);
    lcd_1.print (puntig1 += 1);}
   if (sensorVal2 == LOW) {
  lcd_1.setCursor(14,1);
    lcd_1.print (puntig2 += 1);}
}

ho provato ha costruire un contapunti con arduino l'ho testato con tinkercad e funziona (link in alto)
ma poi quando provo a costruirlo con arduino non funziona.

Buongiorno e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

Ok così va bene?

Hai seguito CON ATTENZIONE quanto ti è stato scritto ???

... io, dove deve stare, NON la vedo :roll_eyes:

Guglielmo

Buongiorno mi scusi ora penso di aver capito in quale discussione mi diceva: ho inserito una mia breve presentazione spero che possa andare bene.

Frase che significa?

Non si accende, non segna, segna sbagliato?

Devi mettere qualche dettaglio

Grazie per aver risposto si accende lo schermo ma non scrive.
(si accende solo lo schermo blu)

Già provato a guardare qui ?

Grazie ma io ho provato ad usare uno schermo lcd con il modulo i2c, però può tornarmi utile perchè sto provando anche con uno schermo lcd normale.

Poche info. Dire display I2C non basta, serve il modello preciso.
Meglio ancora, posta il link a quel display (magari il link a dove lo hai comprato)

[Freenove I2C LCD 1602 Module, New Type IIC TWI Serial 16x2 Display, Compatible with Arduino Raspberry Pi Pico ESP32 ESP8266 : Amazon.it:

Comunque tieni presente che, quando funzionerà, per come è scritto il programma vedrai i punteggi incrementarsi per tutto il tempo che tieni premuto il pulsante. L'incremento, invece, deve avvenire solo nel momento in cui un pulsante passa dallo stato non premuto allo stato premuto.
Dovrai anche mettere un condensatore da 0,33...1uF in parallelo a ciascun pulsante per evitare i "rimbalzi", cioè i falsi contatti durante la pressione, fenomeno comune a tutti i contatti meccanici, anche quelli dei relè, a meno che adottino speciali accorgimenti come il mercurio.

Abbiamo chiesto un link.
Su amazon con quel nome freenove trovo solo questo:

Devi capire che quei display diventano I2C grazie ad un chip. A quel link che ti ho postato già parla di 2 diversi modelli di display con 2 chip diversi.
Senza sapere ESATTAMENTE che display hai, non possiamo aiutarti
Il chip che fa da conversione I2C è quello cerchiato in rosso, leggi la sigla
image

È quello giusto
(quello che hai trovato ho preso quelli)

Grazie del suggerimento

La sigla è 8574T

La libreria Adafruit, stando al loro sito di come usarla: "Arduino I2C Use | I2C/SPI LCD Backpack | Adafruit Learning System"
parla del loro modulino di espansione I2C che monta il chip MCP23008 e non quello che hai comprato.

Tra le libreria cerca "liquid crystal 8574" c'e' quella di Matthias Hertel, dovrebbe andare.
Tra i parametri dovrai dare indirizzo che indica il venditore:
LiquidCrystal_PCF8574 lcd(0x27);

Se la libreria originale di Hertel non funziona, prova quella modificata da Testato:

Ok grazie avevo visto la scheda del venditore ma avevo usato un'altra libreria. Adesso provo a vedere se con questa libreria funziona tutto correttamente

Grazie mille per avermi aiutato a costruire questo contapunti ho "montato" questa libreria con il codice precedente e così sono riuscito a far funzionare il tutto: ora le scritte appaiono e cambiano i punti quando premo i due pulsanti. Qui sotto lascio il codice che ho usato e grazie ancora di tutti i suggerimenti.

#include <LiquidCrystal_PCF8574.h>



int puntig1 = 0;
int puntig2 = 0;
LiquidCrystal_PCF8574 lcd_1(0x27);


void setup()
{ pinMode(2, INPUT_PULLUP);
  pinMode(1, INPUT_PULLUP);
  lcd_1.begin(16, 2);

  lcd_1.print("contapunti");
}

void loop()
{int sensorVal = digitalRead(2);
 int sensorVal2 = digitalRead(1);
  if (sensorVal == LOW) {
  lcd_1.setCursor(0, 1);
    lcd_1.print (puntig1 += 1);}
   if (sensorVal2 == LOW) {
  lcd_1.setCursor(14,1);
    lcd_1.print (puntig2 += 1);}
}

Buongiorno sto ricostruendo questo contapunti ma mi manda questo messaggio ****Errore durante la compilazione per la scheda Arduino Uno**. **Questo report potrebbe essere più ricco di informazioni abilitando l**'**opzione** "**Mostra un output dettagliato durante la compilazione**" **in** "**File** ->**