Mengakses Modul OLED LCD 0.91 dengan Protokol I2C: Panduan Praktis

By | December 3, 2023
Print Friendly, PDF & Email
881 Views

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

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
See also  Membuat Radio FM dengan Modul Tea5767 berbasis Wifi

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
See also  Jam Digital dengan Modul Real Time Clock RTC pengaturan via Wifi