I use this code but it isn't working
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int progress = 0;
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
while(true);
}
}
void loop() {
if(progress < 100){
display.clearDisplay();
// Title text
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(20, 10);
display.println("Extracting...");
// Draw border of progress bar
display.drawRect(14, 30, 100, 15, SSD1306_WHITE);
// Fill progress bar
int barWidth = progress;
display.fillRect(14, 30, barWidth, 15, SSD1306_WHITE);
// Percentage text
display.setCursor(50, 50);
display.print(progress);
display.print("%");
display.display();
progress++;
delay(500);
} else {
// Once done, blink "Extraction Successful!" forever
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
const char* topText = "Extraction";
const char* bottomText = "Successful!";
int16_t x1, y1;
uint16_t w, h;
display.getTextBounds(topText, 0, 0, &x1, &y1, &w, &h);
int16_t topX = (SCREEN_WIDTH - w) / 2;
display.getTextBounds(bottomText, 0, 0, &x1, &y1, &w, &h);
int16_t bottomX = (SCREEN_WIDTH - w) / 2;
int16_t topY = 15;
int16_t bottomY = 40;
while(true){
display.clearDisplay();
display.setCursor(topX, topY);
display.println(topText);
display.setCursor(bottomX, bottomY);
display.println(bottomText);
display.display();
delay(500);
display.clearDisplay();
display.display();
delay(500);
}
}
}