- Perkakasan Diperlukan:
- Mengetahui tentang Paparan OLED:
- Perkakasan dan sambungan:
- Memprogramkan paparan OLED SSD1306 untuk Arduino:
Sebilangan besar daripada kita akan biasa dengan paparan LCD matriks 16 × 2 Dot yang digunakan dalam kebanyakan projek untuk memaparkan beberapa maklumat kepada pengguna. Tetapi paparan LCD ini mempunyai banyak batasan dalam apa yang dapat mereka lakukan. Dalam tutorial ini kita akan belajar mengenai paparan OLED dan cara menggunakannya Arduino. Terdapat banyak jenis paparan OLED yang tersedia di pasaran dan terdapat banyak cara untuk membuatnya berfungsi. Dalam tutorial ini kita akan membincangkan mengenai klasifikasinya dan juga mana yang paling sesuai untuk projek anda.
Perkakasan Diperlukan:
- Modul paparan OLED 7pin 128 × 64 (SSD1306)
- Arduino UNO / Nano
- Papan roti
- Wayar Penyambung
- Komputer / Komputer riba
Mengetahui tentang Paparan OLED:
Istilah OLED adalah singkatan dari " Organic Light emitting diode" yang menggunakan teknologi yang sama dengan yang digunakan di kebanyakan televisyen kita tetapi mempunyai piksel yang lebih sedikit dibandingkan dengan mereka. Sangat menyeronokkan apabila modul paparan yang kelihatan hebat ini dihubungkan dengan Arduino kerana ini akan menjadikan projek kami kelihatan keren. Kami telah membahas Artikel lengkap mengenai paparan OLED dan jenisnya di sini.
Kami menggunakan paparan OLED Monochrome 7-pin SSD1306 0.96 ”. Sebab untuk memilih paparan ini adalah kerana ia boleh berfungsi pada tiga Protokol komunikasi yang berbeza seperti mod Wire SPI, mod empat wayar SPI dan mod IIC. Tutorial ini akan merangkumi cara menggunakan modul dalam mod 4-wayar SPI kerana ia adalah mod komunikasi terpantas dan yang lalai.
Pin dan fungsinya dijelaskan dalam jadual di bawah.
Nombor PIN |
Nama Pin |
Nama lain |
Penggunaan |
1 |
Gnd |
Tanah |
Pin bawah modul |
2 |
Vdd |
Vcc, 5V |
Pin kuasa (boleh tahan 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 |
Tetapkan semula modul (berguna semasa SPI) |
6 |
DC |
A0 |
Pin Perintah Data. Digunakan untuk protokol SPI |
7 |
CS |
Pilih Cip |
Berguna apabila lebih daripada satu modul digunakan di bawah protokol SPI |
Dalam tutorial ini kita hanya akan mengendalikan modul dalam mod 4-Wire SPI, kita akan meninggalkan yang lain untuk beberapa tutorial lain.
Komuniti Arduino telah memberi kami banyak Perpustakaan yang boleh digunakan secara langsung untuk menjadikannya lebih mudah. Saya mencuba beberapa perpustakaan dan mendapati bahawa Perpustakaan Adafruit_SSD1306 sangat mudah digunakan dan mempunyai sebilangan besar pilihan grafik sehingga kami akan menggunakan yang sama dalam tutorial ini. Tetapi, jika projek anda mempunyai kekangan memori / kelajuan, cuba gunakan Perpustakaan U8g kerana ia berfungsi lebih pantas dan kurang mengambil memori program.
Perkakasan dan sambungan:
The Circuit Diagram untuk SSD1306 OLED antara muka dengan Arduino adalah benar-benar mudah dan ditunjukkan di bawah
Kami hanya mewujudkan komunikasi SPI antara modul OLED dan Arduino. Oleh kerana OLED beroperasi pada 3V-5V dan menggunakan kuasa yang sangat sedikit, ia tidak memerlukan bekalan kuasa luaran. Anda hanya boleh menggunakan wayar untuk membuat sambungan atau menggunakan papan roti seperti yang saya gunakan sehingga mudah untuk bereksperimen. Sambungannya juga disenaraikan dalam kisah di bawah
S.No |
Pin Nama pada modul OLED |
Nama Pin di Arduino |
1 |
Gnd, Tanah |
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 Cip |
12 |
Catatan: Anda tidak akan dapat memvisualisasikan lampu latar / cahaya pada modul OLED hanya dengan menghidupkannya. Anda harus memprogramnya dengan betul untuk melihat perubahan pada paparan OLED.
Memprogramkan paparan OLED SSD1306 untuk Arduino:
Setelah sambungan siap, anda boleh mula memprogram Arduino. Seperti yang dinyatakan sebelumnya, kami akan menggunakan perpustakaan Adafruit dan perpustakaan GFX untuk bekerja dengan modul OLED ini. Ikuti langkah-langkah untuk menguji menjalankan paparan OLED anda.
Langkah 1: Muat turun Adafruit Library dan GFX library dari Github menggunakan pautan di bawah
- Perpustakaan Adafruit
- Perpustakaan Grafik GFX
Langkah 2: Anda mesti memuat turun dua fail Zip. Sekarang tambahkan mereka ke Arduino anda dengan mengikuti
Sketsa-> Sertakan Perpustakaan -> Tambah pustaka Zip seperti gambar di bawah. Kemudian pilih perpustakaan yang baru sahaja kami muat turun. Anda hanya boleh memilih satu perpustakaan pada satu masa, oleh itu anda perlu mengulangi langkah ini sekali lagi.
Langkah 3: Lancarkan program Contoh dengan memilih Fail-> Contoh-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino seperti yang ditunjukkan dalam gambar di bawah.
Langkah 4: Di dalam contoh program di atas baris 64 tambahkan baris "#define SSD1306_LCDHEIGHT 64" seperti yang ditunjukkan dalam gambar di bawah.
Langkah 5: Sekarang muat naik program dan anda akan melihat paparan OLED menyala dengan kod contoh Adafruit lalai seperti yang ditunjukkan dalam gambar di bawah. The video bekerja penuh diberikan pada akhir.
Program contoh ini menunjukkan kepada anda semua kemungkinan grafik yang dapat ditampilkan di skrin OLED. Kod ini semestinya cukup untuk anda membuat bitmap, melukis garis / bulatan / segi empat tepat, bermain dengan piksel, memaparkan char dan string dengan fon dan saiz yang berbeza dan lain-lain…
Sekiranya anda ingin memahami Perpustakaan dan fungsinya dengan lebih baik, anda boleh membaca lebih lanjut. Setiap sampah kod dibahagi dan dijelaskan dengan bantuan baris komen. Kod lengkap diberikan di akhir Artikel ini
Memaparkan dan membersihkan skrin:
Menulis di skrin OLED sama seperti menulis di papan hitam, kita harus menulis nilai dan kemudian membersihkannya sebelum boleh ditimpa. Perintah berikut digunakan untuk menulis dan membersihkan paparan
paparan.display (); // Tulis ke paparan display.clearDisplay (); // kosongkan paparan
Memaparkan Pembolehubah Karakter:
Untuk memaparkan kandungan di dalam pemboleh ubah, kod berikut dapat digunakan.
char i = 5; // pemboleh ubah yang akan dipaparkan display.setTextSize (1); // Pilih ukuran paparan teks.setTextColor (PUTIH); // untuk paparan monokrom hanya paparan yang mungkin sahaja.setCursor (0,0); // 0,0 adalah sudut kiri atas paparan skrin OLED.write (i); // Tulis pemboleh ubah yang akan dipaparkan
Melukis Garisan, Lingkaran, Rectange, Segitiga:
Sekiranya anda mahu menambahkan beberapa simbol ke paparan anda, anda boleh menggunakan kod berikut untuk menarik salah satu daripada yang berikut
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // void drawLine (x0, y0, x1, y1, warna); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, WHITE); // void drawRect (x0, y0, w, h, warna); 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, PUTIH); // void drawTriangle (x0, y0, x1, y1, x2, y2, warna); display.drawCircle (display.width () / 2, display.height () / 2, i, PUTIH); // undian tidak sahCircle (x0, y0, r, color);
Melukis Tali ke Skrin:
Sebilangan kod berikut dapat digunakan untuk memaparkan sebarang pesan di layar di tempat dan ukuran tertentu
display.setTextSize (2); // tetapkan ukuran paparan teks.setTextColor (PUTIH); // paparan tetapan warna.setCursor (10,0); // Rentetan akan bermula pada paparan 10,0 (x, y).clearDisplay (); // Padam sebarang paparan sebelumnya pada paparan layar.println ("Circuit Digest"); // Cetak rentetan di sini "Circuit Digest" display.display (); // hantar teks ke skrin
Memaparkan gambar bitmap:
Satu perkara yang tidak boleh dipercayai yang dapat dilakukan dengan modul OLED adalah ia dapat digunakan untuk memaparkan bitmap. Kod berikut digunakan untuk memaparkan gambar bitmap
char static const unsigned char logo PROGMEM16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B111111, B111111, B111111, B111111, B111111, B111111, B111111, B111111 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, warna);
Seperti yang anda lihat, untuk memaparkan gambar, data bitmap mesti disimpan dalam memori program dalam bentuk arahan PROMGMEM. Secara sederhana, kita harus memerintahkan paparan OLED apa yang harus dilakukan pada setiap piksel dengan meneruskannya urutan atau nilai dari array seperti yang ditunjukkan di atas. Susunan ini akan mengandungi data bitmap gambar.
Ini mungkin terdengar rumit tetapi dengan bantuan alat web sangat mudah untuk menukar gambar menjadi nilai peta sedikit dan memuatkannya ke dalam array di atas.
Cukup muatkan gambar dan sesuaikan tetapan untuk mendapatkan pratonton gambar pilihan anda. Kemudian klik "Hasilkan Kod" salin kod dan tampal ke Array anda. Muat naik program dan anda semua selesai. Saya cuba memaparkan logo batman dan inilah rupanya.
Masih banyak perkara yang boleh anda lakukan dengan perpustakaan ini. Untuk mengetahui kemungkinan lengkap, lawati halaman Adafruit GFX grafik Primitives.
Semoga anda berjaya dan bersedia melaksanakan paparan OLED di beberapa projek anda. Sekiranya anda mempunyai masalah, bagikan di bahagian komen dan saya akan berusaha sebaik mungkin untuk membetulkannya.