/*
Download Libraries:
https://www.electroniclinic.com/arduino-libraries-download-and-projects-they-are-used-in-project-codes/
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SimpleTimer.h>
#define REPORTING_PERIOD_MS 2000
SimpleTimer timer;
uint32_t tsLastReport = 0;
// for the OLED display
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int Potentiometer = A0;
int PotVal = 0;
void setup()
{
Serial.begin(115200);
pinMode(Potentiometer,INPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
timer.setInterval(2000L, getSendData);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop()
{
timer.run(); // Initiates SimpleTimer
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
PotVal = analogRead(Potentiometer);
tsLastReport = millis();
}
}
void getSendData()
{
// Oled display
display.clearDisplay();
// display R G B Values
display.setTextSize(3);
display.setCursor(0,0); // column row
display.print("POT:");
display.setTextSize(4);
display.setCursor(0,30);
display.print(PotVal);
display.display();
}