#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);
}