Somma di un Valore

Sto leggendo un opto sensore, classico diodo che butta luce sul transistor e quando viene coperto emette un valore diverso, ma a me non serve una variabile infatti lo leggo da un pin digitale, quando è inutilizzato emette il suo 0 e quando lo si copre 1, io adesso ho solo bisogno di fare la somma di questi valori, siccome il transistor viene coperto al passaggio di una moneta nel hopper, quindi se passano 10 monete il sensore viene coperto 10 volte, quindi 10 volte 1, io ho bisogno di fare la somma, questo è il mio sketch funzionante:

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
  
  lcd.begin(16, 2);
  pinMode(7, INPUT_PULLUP);
  

}

void loop(){

  int sensorVal = digitalRead(7);
  lcd.setCursor(0, 0);
  lcd.println(sensorVal);
  delay(100);
  
}

Nel Setup:

unsigned char  tot = 0;

nel Loop:

int sensorVal = digitalRead(7);
  ++tot;
  lcd.setCursor(0, 0);
  lcd.println(sensorVal);
  lcd.setCursor(1, 0);
  lcd.println(tot);
  delay(100);

Nella seconda linea ti ritroverai quante volte il foto transistor si è spento (oppure acceso) ovvero quante monetye ha contato.

Dimenticavo, con unsigned char arrivi a 255 monete e poi riparte da zero. Se non ti basta, usi un int e arrivi fino a 65535.

La dichiarazione della variabile non la devi mettere nel setup() perchè a causa dello "scope" non sarebbe visibile e quindi utilizzabile nel loop().
La devi mettere all'esterno e poi nel setup la azzeri senza dichiararla nuovamente.

unsigned int  tot;

void setup(){
 tot = 0;
}

Nel loop() inserisci

if (sensorVal == HIGH){
  tot++; // incrementa il numero di monete
  delay(50); // aspetta che passi la moneta
  }

più il codice per l'LCD scritto da Babbuino.

Si, ti ghe rasun.

Sto programmando da troppo con altri sistemi e quando torno su Arduino mi porto in testa Main e soci.

E non hai usato i Tag per il codice. :grin:

Se ti becca @Leo ... ]:smiley:

nid69ita:
E non hai usato i Tag per il codice. :grin:

Se ti becca @Leo ... ]:smiley:

Beccato... ]:smiley:

Ed inoltre un'altra tirata d'orecchie:

BaBBuino:
usi un int e arrivi fino a 65535.

E' l'unsigned int che va da 0 a 65535, l'int signed va da -32768 a +32767 :stuck_out_tongue: :stuck_out_tongue:

leo72:

nid69ita:
E non hai usato i Tag per il codice. :grin:

Se ti becca @Leo ... ]:smiley:

Beccato... ]:smiley:

Ed inoltre un'altra tirata d'orecchie:

BaBBuino:
usi un int e arrivi fino a 65535.

E' l'unsigned int che va da 0 a 65535, l'int signed va da -32768 a +32767 :stuck_out_tongue: :stuck_out_tongue:

Vado di nuovo a lasciarmi morire nel mio angolo... :blush:

BaBBuino:
Vado di nuovo a lasciarmi morire nel mio angolo... :blush:

Va bè, dai, la prossima volta che sparo cacate sull'elettronica (tipo il mio mettere resistenza su leg GND di un led RGB) ti vengo a fare compagnia. :grin: :grin:

Grazie Mille Ragazzi! Funge Tutto! 8)