Go Down

Topic: Pin digitale di pullup... (Read 140 times) previous topic - next topic

WinGamesyun

Mar 17, 2019, 05:12 pm Last Edit: Mar 17, 2019, 09:26 pm by UweFederer Reason: corretto i CODE TAGs doppi.
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
Code: [Select]
#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();
}

gpb01

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
Search is Your friend ... or I am Your enemy !

WinGamesyun

#2
Mar 17, 2019, 05:28 pm Last Edit: Mar 17, 2019, 05:29 pm by WinGamesyun
Grazie per il codice.
Cosa mi consigli di fare?  ho anche altre schede arduino per questo progetto come la mkr 1010 una mega ...

gpb01

... 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
Search is Your friend ... or I am Your enemy !

Go Up