// LINK:
// https://programmersqtcpp.blogspot.com/
//#include <SSD1306Ascii.h>
//#include <SSD1306AsciiAvrI2c.h>
#define SSD1306_NO_SPLASH
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//#include <Fonts/FreeMono12pt7b.h>
#include <Fonts/Picopixel.h>
#include <JC_Button.h>
#include "gfx_battery.h"
#include "wrap.h"
#define DDEBUG
#include "ddebug.h"
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library.
// On an arduino UNO: A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
// On an arduino LEONARDO: 2(SDA), 3(SCL), ...
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const byte PLAY_BTN = 2;
Button playBtn(PLAY_BTN);
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
//dbg.setEnable(true);
DDBG_Enable(true);
DDBG_("test debug\n");
DDBG_(F("in flash\n"));
DDBG_sn("auto = ", 1000, HEX); DDBG_NL();
DDBG_(1000); DDBG_NL();
playBtn.begin();
pinMode(LED_BUILTIN, OUTPUT);
DDBG_("debug\n");
//dbg.print("Inizializza display");
if(!oled.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
oled.clearDisplay();
}
byte playState = 0;
uint32_t saveMillis;
uint16_t interval;
bool pin13State;
uint32_t st;
void loop() {
playBtn.read();
if(playBtn.wasPressed()) {
//Serial.println(".");
DDBG_('.');
}
/*if ((playState == 0) && playBtn.wasPressed()) {
playState = 1;
interval = 3000;
saveMillis = millis();
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("play track002.mp3");
}
if (playState == 1) {
if (playBtn.isReleased()) {
digitalWrite(LED_BUILTIN, LOW);
Serial.println("Stop track002.mp3");
playState = 0;
} else {
if (millis() - saveMillis >= interval) {
digitalWrite(LED_BUILTIN, LOW);
interval = 5000;
saveMillis = millis();
playState = 2;
Serial.println("Stop track002.mp3");
}
}
}
if (playState == 2) {
if (millis() - saveMillis >= interval) {
playState = 0;
}
}*/
}
void serialEventRun() {
char c = Serial.read();
if (c == '1')
DDBG_Enable(true);
else if (c == '0')
DDBG_Enable(false);
}