- Hardware yang Dibutuhkan:
- Mengenal OLED Displays:
- Perangkat keras dan koneksi:
- Memprogram layar OLED SSD1306 untuk Arduino:
Sebagian besar dari kita akan terbiasa dengan layar LCD 16x2 Dot matrix yang digunakan di sebagian besar proyek untuk menampilkan beberapa informasi kepada pengguna. Tetapi layar LCD ini memiliki banyak batasan dalam apa yang dapat mereka lakukan. Dalam tutorial ini kita akan belajar tentang tampilan OLED dan cara menggunakannya Arduino. Ada banyak jenis tampilan OLED yang tersedia di pasaran dan ada banyak cara untuk membuatnya berfungsi. Dalam tutorial ini kita akan membahas tentang klasifikasinya dan juga mana yang paling cocok untuk proyek Anda.
Hardware yang Dibutuhkan:
- Modul layar OLED 7pin 128 × 64 (SSD1306)
- Arduino UNO / Nano
- Papan tempat memotong roti
- Menghubungkan Kabel
- Komputer / Laptop
Mengenal OLED Displays:
Istilah OLED adalah singkatan dari " Organic Light emitting diode" yang menggunakan teknologi yang sama yang digunakan di sebagian besar televisi kita tetapi memiliki piksel lebih sedikit dibandingkan dengan mereka. Sangat menyenangkan memiliki modul tampilan yang tampak keren ini untuk dihubungkan dengan Arduino karena itu akan membuat proyek kita terlihat keren. Kami telah membahas Artikel lengkap tentang tampilan OLED dan tipenya di sini.
Kami menggunakan layar OLED Monokrom 7-pin SSD1306 0,96 ”. Alasan memilih tampilan ini adalah karena dapat bekerja pada tiga protokol komunikasi yang berbeda seperti mode SPI 3 Wire, mode SPI empat kabel dan mode IIC. Tutorial ini akan membahas cara menggunakan modul dalam mode SPI 4-kabel karena ini adalah mode komunikasi tercepat dan default.
Pin dan fungsinya dijelaskan pada tabel di bawah ini.
Nomor PIN |
Nama Pin |
Nama lain |
Pemakaian |
1 |
Gnd |
Tanah |
Pin ground modul |
2 |
Vdd |
Vcc, 5V |
Pin daya (dapat ditoleransi 3-5V) |
3 |
SCK |
D0, SCL, CLK |
Bertindak sebagai pin jam. Digunakan untuk I2C dan SPI |
4 |
SDA |
D1, MOSI |
Pin data modul. Digunakan untuk IIC dan SPI |
5 |
RES |
RST, RESET |
Mereset modul (berguna selama SPI) |
6 |
DC |
A0 |
Pin Perintah Data. Digunakan untuk protokol SPI |
7 |
CS |
Pilih Chip |
Berguna jika lebih dari satu modul digunakan di bawah protokol SPI |
Dalam tutorial ini kita hanya akan mengoperasikan modul dalam mode SPI 4-Wire, kita akan meninggalkan sisanya untuk beberapa tutorial lainnya.
Komunitas Arduino telah memberi kami banyak Perpustakaan yang dapat langsung digunakan untuk membuat ini jauh lebih sederhana. Saya mencoba beberapa perpustakaan dan menemukan bahwa Perpustakaan Adafruit_SSD1306 sangat mudah digunakan dan memiliki beberapa opsi grafis sehingga kami akan menggunakan hal yang sama dalam tutorial ini. Namun, jika proyek Anda memiliki batasan memori / kecepatan, coba gunakan Perpustakaan U8g karena ia bekerja lebih cepat dan menggunakan lebih sedikit memori program.
Perangkat keras dan koneksi:
The Circuit Diagram untuk SSD1306 OLED berinteraksi dengan Arduino benar-benar sederhana dan ditampilkan di bawah
Kami hanya membuat komunikasi SPI antara modul OLED dan Arduino. Karena OLED berjalan pada 3V-5V dan mengkonsumsi sangat sedikit daya, OLED tidak memerlukan catu daya eksternal. Anda cukup menggunakan kabel untuk membuat sambungan atau menggunakan papan tempat memotong roti seperti yang telah saya gunakan agar mudah untuk bereksperimen. Hubungannya juga tercantum dalam kisah di bawah ini
S.No |
Pin Name pada modul OLED |
Pin Name di Arduino |
1 |
Gnd, Ground |
Tanah |
2 |
Vdd, Vcc, 5V |
5V |
3 |
SCK, D0, SCL, CLK |
10 |
4 |
SDA, D1, MOSI |
9 |
5 |
RES, RST, RESET |
13 |
6 |
DC, A0 |
11 |
7 |
CS, Pilih Chip |
12 |
Catatan: Anda tidak akan dapat memvisualisasikan cahaya latar / cahaya apa pun pada modul OLED hanya dengan menyalakannya. Anda harus memprogramnya dengan benar untuk melihat perubahan apa pun pada layar OLED.
Memprogram layar OLED SSD1306 untuk Arduino:
Setelah koneksi siap, Anda dapat mulai memprogram Arduino. Seperti yang dikatakan sebelumnya, kami akan menggunakan pustaka Adafruit dan pustaka GFX untuk bekerja dengan modul OLED ini. Ikuti langkah-langkah untuk menguji tampilan OLED Anda.
Langkah 1: Unduh Perpustakaan Adafruit dan perpustakaan GFX dari Github menggunakan tautan di bawah ini
- Perpustakaan Adafruit
- Perpustakaan Grafik GFX
Langkah 2: Anda harus mengunduh dua file Zip. Sekarang tambahkan ke Arduino Anda dengan mengikuti
Sketsa-> Sertakan Perpustakaan -> Tambahkan perpustakaan Zip seperti yang ditunjukkan di bawah ini. Kemudian pilih perpustakaan yang baru saja kita unduh. Anda hanya dapat memilih satu perpustakaan dalam satu waktu, oleh karena itu Anda harus mengulangi langkah ini lagi.
Langkah 3: Luncurkan Program contoh dengan memilih File-> Contoh-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino seperti yang ditunjukkan pada gambar di bawah ini.
Langkah 4: Di dalam program contoh di atas baris 64 tambahkan baris "#define SSD1306_LCDHEIGHT 64" seperti yang ditunjukkan pada gambar di bawah.
Langkah 5: Sekarang unggah program dan Anda akan melihat tampilan OLED menyala dengan kode contoh Adafruit default seperti yang ditunjukkan pada gambar di bawah ini. The video bekerja penuh diberikan di akhir.
Program contoh ini menunjukkan kepada Anda semua kemungkinan grafik yang dapat ditampilkan di layar OLED. Kode ini harus cukup bagi Anda untuk membuat bitmap, menggambar garis / lingkaran / persegi panjang, bermain dengan piksel, menampilkan karakter dan string dengan font dan ukuran berbeda, dll.
Jika Anda ingin memahami Perpustakaan dan fungsinya dengan lebih baik, Anda dapat membaca lebih lanjut. Setiap jung kode dipisahkan dan dijelaskan dengan bantuan baris komentar. Kode lengkap diberikan di akhir artikel ini
Menampilkan dan membersihkan layar:
Menulis di layar OLED seperti menulis di papan tulis, kita harus menulis nilainya dan kemudian membersihkannya sebelum bisa ditimpa. Perintah berikut digunakan untuk menulis dan menghapus tampilan
display.display (); // Tulis ke display display.clearDisplay (); // bersihkan layar
Menampilkan Variabel Karakter:
Untuk menampilkan konten di dalam variabel, kode berikut dapat digunakan.
char i = 5; // variabel yang akan ditampilkan display.setTextSize (1); // Pilih ukuran tampilan teks.setTextColor (WHITE); // untuk tampilan monokrom hanya sedikit yang memungkinkan display.setCursor (0,0); // 0,0 adalah sudut kiri atas tampilan layar OLED.write (i); // Tulis variabel yang akan ditampilkan
Menggambar Garis, Lingkaran, Persegi Panjang, Segitiga:
Jika Anda ingin menambahkan beberapa simbol ke tampilan Anda, Anda dapat menggunakan kode berikut untuk menggambar salah satu dari berikut ini
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // void drawLine (x0, y0, x1, y1, color); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, WHITE); // void drawRect (x0, y0, w, h, color); display.drawTriangle (display.width () / 2, display.height () / 2-i, display.width () / 2-i, display.height () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, WHITE); // void drawTriangle (x0, y0, x1, y1, x2, y2, color); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // void drawCircle (x0, y0, r, color);
Menggambar String ke Layar:
Potongan kode berikut dapat digunakan untuk menampilkan pesan apa pun di layar pada tempat dan ukuran tertentu
display.setTextSize (2); // setel ukuran tampilan teks.setTextColor (WHITE); // pengaturan warna display.setCursor (10,0); // String akan mulai dari 10,0 (x, y) display.clearDisplay (); // Penghapus tampilan sebelumnya pada layar display.println ("Circuit Digest"); // Cetak string di sini "Circuit Digest" display.display (); // kirim teks ke layar
Menampilkan gambar bitmap:
Satu hal tidak tepercaya yang dapat dilakukan dengan modul OLED adalah dapat digunakan untuk menampilkan bitmap. Kode berikut digunakan untuk menampilkan gambar bitmap
statis const unsigned char PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B10011111, B0000 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitmap, w, h, WHITE); // void drawBitmap (x, y, * bitmap, w, h, color);
Seperti yang Anda lihat, untuk menampilkan gambar, data bitmap harus disimpan di memori program dalam bentuk direktif PROMGMEM. Sederhananya, kita harus menginstruksikan tampilan OLED apa yang harus dilakukan dengan setiap piksel dengan meneruskannya urutan atau nilai dari array seperti yang ditunjukkan di atas. Larik ini akan berisi data bitmap gambar.
Ini mungkin terdengar rumit tetapi dengan bantuan alat web, sangat mudah untuk mengubah gambar menjadi nilai peta bit dan memuatnya ke dalam larik di atas.
Cukup muat gambar dan sesuaikan pengaturan untuk mendapatkan pratinjau gambar pilihan Anda. Kemudian klik "Hasilkan Kode", salin kode dan tempelkan ke Array Anda. Unggah program dan selesai. Saya mencoba menampilkan logo batman dan begitulah hasilnya.
Masih banyak hal yang dapat Anda lakukan dengan perpustakaan ini. Untuk mengetahui kemungkinan lengkapnya kunjungi halaman Primitif grafis Adafruit GFX.
Semoga Anda menjalankan ini dan siap untuk menerapkan tampilan OLED di beberapa proyek Anda. Jika Anda memiliki masalah, bagikan di bagian komentar dan saya akan mencoba yang terbaik untuk memperbaikinya.