Segnapunti con fotoresistenze e lcd

Salve ragazzi sto realizzando un progetto per il mio esame di maturità ma non riesco proprio a completare l'ultima parte. Il mio progetto tratta di un campo da basket, e la mia idea è quella che le fotoresistenze montate nei canestri devono contare i punti, ovvero: se il pallone passa nel canestro nel display LCD deve segnare 1, se poi ripassa un altra volta segna 2, e cosi via. Il problema e che quando passa il pallone, conta 1 e poi torna subito a 0 senza salvare quindi quel 1 per poi andare a 2. Qualcuno saprebbe darmi una mano???? ormai sono quasi un mese che non riesco a cavarne piede.

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Devi darci sketch e un disegno di come e cosa hai collegato. Altrimenti come facciamo ?

Stavo provando a farlo cosi ultimamente:
#define fotoresistenza A0
#define fotore A1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int canestro1=0;
int canestro2=0;
int x=0;

int a=x++;
int b=x–;
int c=canestro2+1;
int d=canestro2++;

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
pinMode(A0,INPUT);
pinMode(A1,INPUT);
lcd.init();

lcd.backlight();
lcd.print(“CELTIC”);
lcd.setCursor(0,1);
lcd.print(“LAKERS”);

}

void loop()
{

int fotor1=analogRead(fotoresistenza);
int fotor2=analogRead(fotore);
lcd.setCursor(12,0);
if(fotor1<100)
lcd.print(b);
else
lcd.print(a);
lcd.setCursor(12,1);
if(fotor2<100)
lcd.print(c);
else
lcd.print(d);

}

Ciao, racchiudi il codice con gli appositi tag come indicato nel regolamento!
Semplicemnete stai stampando le variabili ma non le incrementi mai nel loop quindi devi inserire l'incremento delle variabili in base alla condizione delle relativa fotoresistenza.
Altro consiglio non aggiornare l'lcd ad ogni ciclo di loop ma solo al variare del punteggio eviti molti possibili problemi e hai un programma sicuramente più ben fatto a livello logico

fabpolli:
Ciao, racchiudi il codice con gli appositi tag come indicato nel regolamento!
Semplicemnete stai stampando le variabili ma non le incrementi mai nel loop quindi devi inserire l'incremento delle variabili in base alla condizione delle relativa fotoresistenza l'uso delle quattro variabili è oscuro, ne bastano due (una per canestro), in linea di massima devi rivedere completamente la logica del programa perché è tutta sbagliata (a parte il controllo delle fotoresistenze).
Altro consiglio non aggiornare l'lcd ad ogni ciclo di loop ma solo al variare del punteggio eviti molti possibili problemi e hai un programma sicuramente più ben fatto a livello logico

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

#define LDR1 A0
#define LDR2 A1

int Punti1 = 0;
int Punti2 = 0;

LiquidCrystal_I2C LCD(0x27, 16, 2);  

void setup() {
  pinMode(LDR1, INPUT);
  pinMode(LDR2, INPUT);

  LCD.init();  
  LCD.backlight();
  LCD.setCursor(0, 0);
  LCD.print("CELTIC");
  LCD.setCursor(8, 0);
  LCD.print("LAKERS");
}

void loop() {
  if (analogRead(LDR1) < 500) Punti1 ++;
  if (analogRead(LDR2) < 500) Punti2 ++;

  LCD.setCursor(0, 1);
  LCD.print(Punti1);
  LCD.setCursor(8, 1);
  LCD.print(Punti2);
}

ci metterei un “brutale” delay di 3 secondi per lasciare tempo al pallone di transitare fuori da canestro

if (analogRead(LDR1) < 500) {Punti1 ++;delay(3000);}
if (analogRead(LDR2) < 500) {Punti2 ++;delay(3000);}

ovviamente la fotoresistenza non è il sensore giusto per questa cosa ma capisco che è solo un esempio