#include <U8g2lib.h>
#include <Wire.h> // library requires for IIC communication
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // initialization for the used OLED display
void setup() {
// put your setup code here, to run once:
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
Serial.begin(115200);
u8g2.begin(); // start the u8g2 library
}
void loop() {
// put your main code here, to run repeatedly:
int hall_value_0 = analogRead(A0); // 0 - 1023
int hall_value_1 = analogRead(A1); // 0 - 1023
int hall_value_2 = analogRead(A2); // 0 - 1023
int hall_value_3 = analogRead(A3); // 0 - 1023
//int percentage_value = (hall_value - 512) / 5.12;
//int percentage_value = abs(hall_value - 512) / 5.12;
int percentage_value_0 = round(abs(hall_value_0 - 512) / 5.12);
int percentage_value_1 = round(abs(hall_value_1 - 512) / 5.12);
int percentage_value_2 = round(abs(hall_value_2 - 512) / 5.12);
int percentage_value_3 = round(abs(hall_value_3 - 512) / 5.12);
//Serial.println(percentage_value);
//delay(50);
u8g2.clearBuffer(); // clear the internal memory
//u8g2.drawXBMP(0, 0, 128, 64, epd_bitmap_image_to_oled); // draw fullscreen image generated by image2cpp website
//u8g2.drawCircle(16, 16, percentage_value, U8G2_DRAW_ALL);
u8g2.drawCircle(16, 16, round(percentage_value_0 * 0.16), U8G2_DRAW_ALL);
u8g2.drawCircle(16, 16+32, round(percentage_value_1 * 0.16), U8G2_DRAW_ALL);
u8g2.drawCircle(16+32, 16+32, round(percentage_value_2 * 0.16), U8G2_DRAW_ALL);
u8g2.drawCircle(16+32, 16, round(percentage_value_3 * 0.16), U8G2_DRAW_ALL);
//u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setFont(u8g2_font_pressstart2p_8u);
u8g2.setCursor(0, 20);
u8g2.print(percentage_value_0);
u8g2.setCursor(0, 20+32);
u8g2.print(percentage_value_1);
u8g2.setCursor(0+32, 20+32);
u8g2.print(percentage_value_2);
u8g2.setCursor(0+32, 20);
u8g2.print(percentage_value_3);
u8g2.sendBuffer(); // transfer internal memory to the display
}