// ---------------------------------------------------------------------------
// (| " Progress_Button.ino                                                "|)
// (| " Este es un ejemplo para OLED monocromáticas de 0.96" basadas en    "|)
// (| " el controlador SSD1306 y resolución de 128x64 píxeles, que usan    "|)
// (| " I2C para comunicarse.                                              "|)
// (| "                                                                    "|)
// (| " La libreria <U8glib.h> debe estar instalada en el IDE de arduino   "|)
// (| " para que este sketch funcione.                                     "|)
// (| "                                                                    "|)
// (| " El pin SDA de la OLED monocromática I2C 128x64 va al pin A4 del    "|)
// (| " Arduino UNO Rev3 / NANO.                                           "|)
// (| " El pin SCL de la OLED monocromática I2C 128x64 va al pin A5 del    "|)
// (| " Arduino UNO Rev3 / NANO.                                           "|)
// (| "                                                                    "|)
// (| " Este código de ejemplo es de dominio público.                      "|)
// (| "                                                                    "|)
// (| " Maker: jorgechac©                                                  "|)
// (| " Visita https://jorgechac.blogspot.com/                             "|)
// (| "                                                                    "|)
// (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32                "|)
// (| " Whatsapp y Ventas NEQUI +573177295861                              "|)
// (| " Bucaramanga - Colombia                                             "|)
// (| " Simulación https://wokwi.com/projects/340377132022628948           "|)
// ---------------------------------------------------------------------------

#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI

int progress = 0;
int buttonStateUp = 0;
int buttonStateDown = 0;
const int buttonUp = 2;    //boton AVANZAR en pin D2
const int buttonDown = 3;  //boton RETROCEDER en pin D3

void setup()
{
  u8g.setFont(u8g_font_tpssb);
  u8g.setColorIndex(1);

  pinMode(buttonUp, INPUT_PULLUP);    //habilitamos resistor pull up en D2
  pinMode(buttonDown, INPUT_PULLUP);  //habilitamos resistor pull up en D3
}

void loop()
{
  buttonStateUp = digitalRead(buttonUp);
  buttonStateDown = digitalRead(buttonDown);

  u8g.firstPage();
  do {
    u8g.drawStr(25, 50, "Progress Bar");
    u8g.drawFrame(0, 10, 128, 20);
    u8g.drawBox(10, 15, progress, 10);
  } while ( u8g.nextPage() );

  if (progress < 108 && progress > -1) {
      if(buttonStateUp == HIGH)
        progress++;
      if(buttonStateDown == HIGH)
        progress--;
  } else {
    progress = 0;
  }
}