Pin digitale di pullup...

Salve a tutti vorrei un aiuto su questo codice :Vi spiego brevemente il mio progetto ho collegato un lettore di banconote alla scheda arduino yùn ma alcune volte non legge l’impulso come si bloccasse loop.
allego il codice

#define BLYNK_PRINT Serial
#include <Bridge.h>
#include <BlynkSimpleYun.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
BlynkTimer timer;
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
WidgetLCD blynk_lcd(V31);
const int  buttonPin = 6;    
const int ledPin = 13;       


int buttonState = HIGH;        
int lastButtonState = 0;     
int  banconota5   = 0;
int  sommapar = 0;
void setup() {
 
  pinMode(6, INPUT_PULLUP);
 
  pinMode(ledPin, OUTPUT);
 
  Serial.begin(9600);
   lcd.init();
    lcd.backlight();
    lcd.setCursor(1,0);
    lcd.print("wingames");
    lcd.setCursor(0,1);
    lcd.print("TOTALI");
    lcd.clear();
     Blynk.begin(auth);
       blynk_lcd.clear();
  blynk_lcd.print(1, 0,"wingames" );
  blynk_lcd.print(1, 1, "TOTALI");
  
   blynk_lcd.clear();
}


void loop() {
   buttonState = digitalRead(6);
if (buttonState != lastButtonState) {
  
    if (buttonState == LOW) {
    banconota5 = banconota5 + 20;
        sommapar =  banconota5;
     
      Serial.println("on");
      Serial.println("BANCONOTA 5: ");   
    } else {
    
      Serial.println("off");
      
    }
    
    delay(50);
  }

  lastButtonState = buttonState;

 lcd.setCursor(1,0);
 lcd.print("WIN GAMES");
 lcd.setCursor(8, 1);  
 lcd.print(sommapar);
 lcd.setCursor(0,1);
 lcd.print("TOTALI");
          
blynk_lcd.print(4, 0,sommapar ); 
blynk_lcd.print(4, 1, "TOTALI");

Blynk.run();
}

Ti ho cancellato il codice "auth" per blynk ... non credo tu voglia distribuirlo a tutta la comuità ;)

L'LCD è piuttosto lento (impegna parecchio la MCU), la seriale pure ed anche la comunicazione con "blynk" probabilmente richiede tempo ... se arrivano magari dei segnali dal lettore di banconote mentre il porgramma è impegnato a fare altre cose ... beh ... te li perdi.

Guglielmo

Grazie per il codice. Cosa mi consigli di fare? ho anche altre schede arduino per questo progetto come la mkr 1010 una mega ...

... mah, SE (... ma è da verificare) il problema sono le tempistiche, invece che "leggere" un pin nel loop() potresti usare un "interrupt" con una ISR molto veloce ;)

Guglielmo