#include "U8glib.h"
#include <Servo.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
Servo myservo;  
int potpin = 0;  
int val;   
int progress = 0;
int ledCount = 10;
int ledLevel=0;
int ledPins[] = {
  4, 5, 6, 7, 8, 9, 10, 11, 12, 13
};   
void setup() {
  u8g.setFont(u8g_font_tpssb);
  u8g.setColorIndex(1);
   myservo.attach(3); 
    for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}
void loop() {
   val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, 107); 
  ledLevel = map(val, 0, 107, 0, ledCount); 
  u8g.firstPage();
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
   
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    }
   
    else {
      digitalWrite(ledPins[thisLed], LOW);
    }
  }
  do {
    u8g.drawStr(25, 50, "Progress Bar");
    u8g.drawFrame(0, 10, 128, 20);
    u8g.drawBox(10, 15, progress, 10);
  } while ( u8g.nextPage() );
    progress=val;    
   if(ledLevel==10&&progress==107){
    myservo.write(180); 
   }else{
     myservo.write(0); 
   }
     delay(15); 
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
ssd1306:GND
ssd1306:VCC
ssd1306:SCL
ssd1306:SDA
pot1:VCC
pot1:SIG
pot1:GND
servo1:GND
servo1:V+
servo1:PWM
bargraph1:A1
bargraph1:A2
bargraph1:A3
bargraph1:A4
bargraph1:A5
bargraph1:A6
bargraph1:A7
bargraph1:A8
bargraph1:A9
bargraph1:A10
bargraph1:C1
bargraph1:C2
bargraph1:C3
bargraph1:C4
bargraph1:C5
bargraph1:C6
bargraph1:C7
bargraph1:C8
bargraph1:C9
bargraph1:C10