// Source code from https://techatronic.com/oled-display-with-arduino-ssd1306-oled
// TECHATRONIC.COM
// Library SPI.h
// https://github.com/PaulStoffregen/SPI
// Library Adafruit_GFX.h
// https://github.com/adafruit/Adafruit-GFX-Library
// Library Adafruit_SSD1306.h
// https://github.com/adafruit/Adafruit_SSD1306
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define screen_width 128 // OLED display width, in pixels
#define screen_height 64 // OLED display height, in pixels
#define OLED_RESET 4
Adafruit_SSD1306 display(screen_width, screen_height);
#define btnEnter 4
#define btnDown 3
#define btnUp 2
#define ledIndicador 8
#define ledClick 9
unsigned long int TempoInicial = 0;
int TempoFinal;
boolean StatusLed = LOW;
int segundo;
int cont = 0 ;
int cont1 = 5;
void setup(){
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
pinMode(btnEnter, INPUT_PULLUP);
pinMode(ledIndicador, OUTPUT);
}
void loop(){
//display.display();
if(!digitalRead(btnEnter)){
if ( millis() - TempoInicial >= 300 ){
cont ++;
TempoInicial = millis();
//Serial.print(TempoInicial);Serial.println(" aqui");
StatusLed = !StatusLed;
//tela(cont);
}
//else(digitalRead(btnEnter)){
//cont = 0;
//}
}else{
cont = 0;
}
if(cont == 1){
digitalWrite(ledIndicador,HIGH );
}else{
digitalWrite(ledIndicador,LOW );
}
if( (cont ==5)){
if(digitalRead(btnEnter)){
Serial.print("Contou 5");
tela("cont");
cont = 0;
}
}
}
void tela(char pi){
display.clearDisplay();
display.setTextSize(1); // Normal 1:1 pixel scale
display.setTextColor(SSD1306_WHITE); // Draw white text
display.setCursor(0, 0);
display.print(pi);
display.display();
}