#include <U8g2lib.h>

U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);


byte cx=25; //x center
byte cy=40; //y center
byte Cx=100; //x center
byte Cy=40; //y center
byte radius=25; //radius

int progress = 0; // variable para el progreso actual
int total = 100; // variable para el total de progreso


void Drawgauge( ) 
{
       
//u8g2.drawCircle(cx,cy,radius, U8G2_DRAW_UPPER_LEFT|U8G2_DRAW_UPPER_RIGHT );
  u8g2.drawCircle(cx,cy,radius, U8G2_DRAW_UPPER_LEFT |U8G2_DRAW_UPPER_RIGHT );
  u8g2.drawCircle(Cx,Cy,radius, U8G2_DRAW_UPPER_LEFT |U8G2_DRAW_UPPER_RIGHT );
}

void updateProgress() {
  int value = analogRead(4); // lee el valor del ADC
  progress = map(value, 0, total, 0, 100); // mapea el valor del ADC al rango de 0-100
}
void setup() {
u8g2.begin();
}

void loop() 
{ //this loop is for testing gauges mode
/*
    for (int c=0; c <= 10; c++) {  //this loop is for testing needle movement
      Drawgauge();
    }
 */
 updateProgress(); // actualiza el progreso según la lectura del ADC
 
  u8g2.firstPage();
  do {
    Drawgauge(); // dibuja la barra de progreso circular
  } while (u8g2.nextPage());
  delay(50); // espera un poco antes de actualizar el progreso
}