Dalam dunia elektronika dan mikrokontroler, kemampuan untuk mengakses modul seperti OLED LCD 0.91 dengan menggunakan protokol I2C membuka pintu untuk berbagai kemungkinan proyek. Artikel ini akan memberikan panduan langkah-demi-langkah yang mudah diikuti untuk berinteraksi dengan modul OLED LCD 0.91 menggunakan protokol I2C, memanfaatkan potensi penuhnya untuk proyek Anda.
Memahami Komponen-komponen
Contents
1. Modul OLED LCD 0.91
Modul ini memiliki ukuran yang kompak dengan kemampuan grafis yang mengesankan. Penggunaannya dengan teknologi Organic Light-Emitting Diode (OLED) memastikan tampilan yang hidup dan konsumsi daya yang rendah.
2. Protokol I2C
Protokol Inter-Integrated Circuit (I2C) adalah standar komunikasi yang populer dalam dunia elektronika. Ini memungkinkan beberapa perangkat berkomunikasi satu sama lain menggunakan antarmuka serial dua kabel.
Mengakses Modul OLED LCD 0.91 dengan Protokol I2C: Panduan PraktisSemua informasi yang ditampilkan tidak hanya sebuah text namun juga gambar ataupun objek geometri untuk itu tidak cukup menggunakan modul SPI Serial Interface1602 16X2 LCD Module. Dipasaran terdapat OLED LCD 0.91 Inch 128 x 32 Blue I2C Protocol bisa kalian beli dengan murah yaitu sekitar Rp. 29 ribuan saja.
OLED LCD 0.91 Inch 128 x 32 Blue I2C Protocol menggunakan I2C sehingga hemat pin dengan ukurannya kecil akan sangat menghemat tempat.
Berikut Spesifikasi dari OLED LCD 0.91 Inch 128 x 32 Blue I2C Protocol
- 12.0mm x 39mm (0.47″ x 1.5″)
- Display area: 7mm x 25mm
- Thickness: 4mm
- Diagonal Screen Size0.91″
- Number of Pixels128 32
- Interface I2C
- Drive IC: SSD1306
- Color DepthMonochrome (Blue)
- GND: Power Ground
- VCC: Power + (DC 3.3 ~5v)
- SCL: Clock Line
- SDA: Data Line
Wiring dengan NodeMCU Amica
Sebagai bahan uji coba, saya menggunakan NodeMCU Amica dengan wiring sebagai berikut (oiya saya menggunakan Vin untuk ambil 5 Volt dari NodeMCU alih2 3.3 Volt
Pin NodeMCU | Pin Oled |
Vin | VCC |
Gnd | Gnd |
D1 | SCL |
D2 | SDA |
Install Library
Sebelum menggunakannya, kalian perlu install library di arduino yang dibutuhkan yaitu
- adafruit ssd 1306
- adafruit GFX
- adafruit BUS IO
tapi tenang saja, biasanya arduino akan secara otomatis akan melakukan install depencies nya
Mari kita coba saja dengan versi lengkapnya Cara Akses Modul dengan OLED LCD 0.91 dengan I2C Protocol
#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for SSD1306 display connected using I2C #define OLED_RESET -1 // Reset pin #define SCREEN_ADDRESS 0x3C Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { Serial.begin(9600); // initialize the OLED object if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } // Clear the buffer. display.clearDisplay(); // Display Text display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,28); display.println("Hello world!"); display.display(); delay(2000); display.clearDisplay(); // Display Inverted Text display.setTextColor(BLACK, WHITE); // 'inverted' text display.setCursor(0,28); display.println("Hello world!"); display.display(); delay(2000); display.clearDisplay(); // Changing Font Size display.setTextColor(WHITE); display.setCursor(0,24); display.setTextSize(8); display.println("Hello!"); display.display(); delay(2000); display.clearDisplay(); // Display Numbers display.setTextSize(8); display.setCursor(0,28); display.println(123456789); display.display(); delay(2000); display.clearDisplay(); // Specifying Base For Numbers display.setCursor(0,28); display.print("0x"); display.print(0xFF, HEX); display.print("(HEX) = "); display.print(0xFF, DEC); display.println("(DEC)"); display.display(); delay(2000); display.clearDisplay(); // Display ASCII Characters display.setCursor(0,24); display.setTextSize(8); display.write(3); display.display(); delay(2000); display.clearDisplay(); // Scroll full screen display.setCursor(0,0); display.setTextSize(1); display.println("Full"); display.println("screen"); display.println("scrolling!"); display.display(); display.startscrollright(0x00, 0x07); delay(2000); display.stopscroll(); delay(1000); display.startscrollleft(0x00, 0x07); delay(2000); display.stopscroll(); delay(1000); display.startscrolldiagright(0x00, 0x07); delay(2000); display.startscrolldiagleft(0x00, 0x07); delay(2000); display.stopscroll(); display.clearDisplay(); // Scroll part of the screen display.setCursor(0,0); display.setTextSize(1); display.println("Scroll"); display.println("some part"); display.println("of the screen."); display.display(); display.startscrollright(0x00, 0x00); } void loop() { }
Mari kita coba dengan yang simple Cara Akses Modul dengan OLED LCD 0.91 dengan I2C Protocol
//White 0.91 Inch 128×32 I2C OLED LCD Display Module //https://lastminuteengineers.com/oled-display-esp8266-tutorial/ #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for SSD1306 display connected using I2C #define OLED_RESET -1 // Reset pin #define SCREEN_ADDRESS 0x3C Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { Serial.begin(9600); // initialize the OLED object if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } } void loop() { display.clearDisplay(); display.setTextWrap(true); display.setTextSize(3); display.setTextColor(WHITE); display.setCursor(0,0); display.print("Hello World"); }
Berikut kode yang digunakan untuk running text
//White 0.91 Inch 128×32 I2C OLED LCD Display Module //https://lastminuteengineers.com/oled-display-esp8266-tutorial/ #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for SSD1306 display connected using I2C #define OLED_RESET -1 // Reset pin #define SCREEN_ADDRESS 0x3C Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); int x, minX; void setup() { Serial.begin(9600); // initialize the OLED object if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } } void loop() { char message[] = "running text ya....."; minX = -12 * strlen(message); // 12 = 6 pixels/character * text size 2 display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(3); display.setCursor(x, 20); display.print(message2); display.setTextWrap(false); display.display(); if(--x < minX) x = display.width(); }
Keunggulan menggunakan Oled daripada LCD text biasanya yaitu
- bisa membuat animasi /gambar
- ataupun simbol2
- ukurannya yang kecil jadi tidak memerlukan tempat
- untuk tempat belinya bisa Tokopedia