#include "U8glib.h"
/********** OLED parameters *******************************/
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
uint8_t screenWidth = 128;
uint8_t screenHeight = 64;
uint8_t strValue = 0;
uint8_t strIncre = 1;
float rad2grad=57.295779513;
/**********************************************************/
void u8g_prepare(void) {
u8g.setFont(u8g_font_6x10);
u8g.setFontRefHeightExtendedText();
u8g.setDefaultForegroundColor();
u8g.setFontPosTop();
}
void u8g_line(uint8_t a) {
u8g.drawStr( 0, 0, "drawLine");
u8g.drawLine(7+a, 10, 40, 55);
u8g.drawLine(7+a*2, 10, 60, 55);
u8g.drawLine(7+a*3, 10, 80, 55);
u8g.drawLine(7+a*4, 10, 100, 55);
}
void draw(void) {
u8g_prepare();
u8g.drawStr( 0, 0, "Webinar 5:");
u8g.drawFrame(0,10,screenWidth,10);
u8g.drawBox(0,10,strValue,10);
float ang_sec = ((strValue*2.8125)/rad2grad);
u8g.drawCircle(screenWidth/2, (screenHeight/2)+10, 20, U8G_DRAW_ALL);
byte xsec = ((screenWidth/2)+(sin(ang_sec)*19));
byte ysec = (((screenHeight/2)+10)-(cos(ang_sec)*19));
u8g.drawLine(screenWidth/2, (screenHeight/2)+10, xsec, ysec);
}
void setup(void) {
Serial.begin(115200);
// flip screen, if required
//u8g.setRot180();
//u8g.setFont(u8g_font_unifont);
//u8g.setFont(u8g_font_ncenR08);
u8g.setFont(u8g_font_profont12);
u8g.setColorIndex(1);
pinMode( A0, INPUT );
}
void loop(void) {
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
strValue = (analogRead(A0)/8);
if ( strValue >= screenWidth) { strValue = screenWidth; }
delay(50);
}