/* * ============================================================ * OLED 0.96" 128×64 I2C Display (SSD1306) — Sample Sketch * Tishvi Electronics | guide.tishvi.com * ============================================================ * Wiring (I2C): * OLED GND → Arduino GND * OLED VCC → Arduino 5V * OLED SCL → Arduino A5 * OLED SDA → Arduino A4 * * I2C Address: 0x3C (default for most SSD1306 modules) * * Libraries required — install via Arduino IDE Library Manager: * 1. Adafruit SSD1306 (search: "Adafruit SSD1306") * 2. Adafruit GFX Library (search: "Adafruit GFX") * * What this sketch does: * 1. Initialises the OLED display * 2. Shows a Tishvi welcome screen with border * 3. After 2 seconds, shows a live counter (counts up every second) * 4. Also demonstrates text size, cursor positioning, and clearing * ============================================================ */ #include #include #include // ── Display Configuration ──────────────────────────────────── #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // No reset pin on 4-pin I2C modules #define OLED_ADDRESS 0x3C // Default I2C address Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // ── Counter variable ───────────────────────────────────────── unsigned long counter = 0; void setup() { Serial.begin(9600); // ── Initialise display ────────────────────────────────── if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDRESS)) { Serial.println("ERROR: OLED not found at 0x3C!"); Serial.println("Check wiring: SDA → A4, SCL → A5, VCC → 5V"); while (true); // Stop if display not found } Serial.println("OLED initialised successfully."); // ── Welcome Screen ────────────────────────────────────── display.clearDisplay(); // Draw a border display.drawRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SSD1306_WHITE); // Title display.setTextSize(2); display.setTextColor(SSD1306_WHITE); display.setCursor(14, 10); display.println("TISHVI"); // Subtitle display.setTextSize(1); display.setCursor(18, 32); display.println("OLED Ready!"); // Small note display.setCursor(12, 46); display.println("guide.tishvi.com"); display.display(); // Push buffer to screen delay(2500); // Show welcome for 2.5 seconds } void loop() { // ── Counting Screen ───────────────────────────────────── display.clearDisplay(); // Header display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println(" Tishvi OLED Sample"); display.drawLine(0, 10, SCREEN_WIDTH, 10, SSD1306_WHITE); // Label display.setCursor(0, 18); display.setTextSize(1); display.println("Counter:"); // Large counter value display.setCursor(0, 32); display.setTextSize(3); display.println(counter); // Footer display.setTextSize(1); display.setCursor(0, 56); display.print("SSD1306 128x64"); display.display(); // Push to screen Serial.print("Counter: "); Serial.println(counter); counter++; delay(1000); // Increment every second }