#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// --- Choose your display size:
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
// --- I2C address (0x3C is most common)
#define OLED_ADDR 0x3D
// --- Pick the pins you wired:
#define I2C_SDA 6
#define I2C_SCL 7
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
// Start I2C on chosen pins
Wire.begin(I2C_SDA, I2C_SCL);
if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) {
Serial.println("SSD1306 allocation failed (wrong size/address/wiring?)");
while (true) delay(10);
}
Serial.println("Scanning...");
for (uint8_t addr = 1; addr < 127; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) {
Serial.print("Found I2C device at 0x");
Serial.println(addr, HEX);
}
}
display.clearDisplay();
display.setTextSize(1); // 1 = 6x8 font, 2 = 12x16, etc.
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Hello from");
display.println("XIAO ESP32-C3!");
display.display(); // push buffer to the screen
}
void loop() {
// nothing
}
Loading
xiao-esp32-c3
xiao-esp32-c3