#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Define the screen dimensions and create an SSD1306 display object
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // -1 for no reset pin
void setup() {
// Initialize the display with the I2C address
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Use SSD1306_SWITCHCAPVCC for power source
display.clearDisplay(); // Clear the buffer
drawText(F("Hello, World!"), 0, 0);
display.display(); // Send the buffer to the display
delay(2000); // Pause for 2 seconds
}
void loop() {
display.clearDisplay();
drawText(F("Drawing Shapes"), 0, 0);
drawShapes();
display.display();
delay(2000); // Pause for 2 seconds
}
void drawText(const __FlashStringHelper* text, int x, int y) {
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(x, y);
display.println(text);
}
void drawShapes() {
display.drawRect(10, 10, 50, 30, SSD1306_WHITE); // Draw a rectangle
display.drawLine(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, SSD1306_WHITE); // Draw a line
display.drawCircle(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 10, SSD1306_WHITE); // Draw a circle
}