#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiWire oled;
int st,stp=0;
unsigned long millis_p;
void setup() {
Wire.begin();
oled.begin(&Adafruit128x64, I2C_ADDRESS);
oled.setFont(System5x7);
oled.clear();
oled.print("Hello world!");
}
int var=0;
void loop() {
st = digitalRead(2);
delay(60); //leggi ingresso pulsante
if ((st != stp) && (stp == 0)) // pulsante appena premuto
{
stp = st; //setta flag per pulsante premuto
millis_p = millis(); //setta variabile controllo tempo
}
if ((st != stp) && (stp == 1)) //pulsante appena rilasciato
{
stp = st; //resetta flag per pulsante rilasciato
if (millis() - millis_p <= 500) //pulsante premuto per meno di mezzo secondo
{
oled.setCursor(0,2);
oled.print(var++);
//qui ci vanno tutte le operazioni da compiere al RILASCIO del tasto,
//UNA SOLA VOLTA, se il tasto e' rimasto premuto per meno di 500mS
}
else
{oled.clear();
var=0;
//qui vanno tutte le operazioni da compiere al RILASCIO del tasto,
//UNA SOLA VOLTA, se il tasto e' rimasto premuto per piu di 500mS
}
}
}