Cara menyambung paparan OLED I2C ke ARDUINO
Pengenalan: Pengenalan kepada paparan OLED I2C 128*64 / 128*32.
hello! Sebagai peminat elektronik amatur, saya pasti semua yang kami lakukan - mainan elektronik - produk buatan sendiri, atau projek besar - semuanya kerana rasa ingin tahu dan malas. Rasa ingin tahu berusaha untuk memahami dan memahami yang luas, tidak diketahui, untuk mengetahui cara ia berfungsi di sana, apa yang dilakukannya, bagaimana ia bergerak. Dan kemalasan mencipta sesuatu untuk dibuat, supaya tidak bangun, tidak mendekati, tidak mengangkat, tidak mengotorkan atau apa-apa lagi yang penting.
Memandangkan melihat maklumat adalah lebih baik daripada memikirkan perkara yang akan berlaku dalam peranti kami, atau telah berlaku, atau sedang berlaku, kami pasti ingin menerima maklumat yang paling berguna ini daripada mikropengawal, penderia atau peranti lain kami. Dan dalam apa jua keadaan, saya mahu menerima sebarang mesej, seperti soalan, amaran, peringatan, emotikon, bintang, hati dan seumpamanya.
Bagi mereka yang juga mempunyai keinginan yang sama, berikut ialah panduan ringkas untuk menyambung dan menguji paparan OLED yang kecil dan murah.
Seterusnya, kita akan bercakap tentang salah satu model paparan OLED yang tersedia secara meluas untuk radio amatur, dikawal oleh cip SSD1306, dengan saiz skrin 0.96 inci dan resolusi 128 * 64 atau 128 * 32 piksel. Paparan ini sesuai untuk reka bentuk radio amatur kecil dan projek buatan sendiri.
Kami akan menyambungkannya ke Arduino UNO / NANO, dan kami juga akan memprogramkannya melalui Arduino.
Ikut arahan untuk memahami cara menyambung dan mengkonfigurasi paparan OLED dengan betul ke Arduino dan cara memaparkan mesej tersuai pada paparannya.
Kami melakukan semua langkah demi langkah.
Kami hanya memerlukan empat perkara:
Secara umum, membeli alat ganti untuk pelbagai projek di Aliexpress dan Ebay adalah perkara yang sangat menarik, semasa anda sedang mengerjakan satu projek, alat ganti untuk yang lain sedang dalam perjalanan. Perkara utama adalah jangan lupa untuk membuat pesanan.
Paparan dikawal oleh cip SSD1306, yang menyokong lima protokol komunikasi, salah satunya ialah I2C. Data yang menggunakan protokol ini dihantar melalui hanya dua wayar, dan lebih sedikit wayar dalam kes itu, lebih baik, jadi ia sesuai dengan kita.Tetapi! Terdapat modul dengan protokol SPI dan juga dengan pensuisan protokol, jadi berhati-hati semasa membeli modul ini.
Pin yang digunakan:
Paparan OLED - SCL/SCK (jam) dan SDA (data), kuasa “Plus” (VCC) dan kuasa “Minus” (GND).
Pin yang digunakan:
Arduino UNO - SCL/SCK pada A5 dan SSD pada A4, kuasa “Plus” (+5V) dan kuasa “Minus” (GND).
Menyambungkan paparan ke Arduino:
Setiap peranti pada bas I2C mempunyai alamat perenambelasan, ia tidak boleh ditukar, ia berwayar keras, setiap pengeluar yang bertanggungjawab mesti menunjukkannya di suatu tempat pada kes atau dalam arahan. Terdapat modul dengan suis dan pelompat yang boleh digunakan untuk menukar alamat, tetapi... jika peranti itu murah sehingga memalukan, maka pengilang mungkin tidak peduli untuk menangani butiran kecil itu, jadi anda perlu tentukan sendiri.
Secara keseluruhan, sehingga 127 alamat boleh digunakan dalam bas - 119 untuk peranti dan 8 alamat perkhidmatan. Komunikasi dijalankan di alamat ini. Ada yang utama aka Tuan, dan ada hamba aka Hamba - Tuan bertanya, hamba menjawab, semuanya mudah.
Memandangkan paparan OLED kami menggunakan protokol komunikasi I2C, dan alamatnya mungkin tidak dinyatakan, kami akan cuba mengetahui alamat ini sendiri.
Anda boleh melakukan ini dengan memuat naik lakaran pendek ke papan Arduino anda dengan OLED disambungkan. TAPI!
Jangan tergesa-gesa untuk memuat naik lakaran ke Arduino dengan segera! Mari kita muat turun "pemandu" dahulu, i.e. mari kita sambungkan perpustakaan, dan untuk melakukan ini kita akan segera pergi ke "Langkah No. 5", dan kemudian kembali dan teruskan.
Muat turun CODE Finder_I2C_Hex_Address.ino, muat naik ke Arduino.
Buka "Port Monitor", tetapkan kelajuan kepada 9600 dan jika semuanya disambungkan dengan betul, program akan menunjukkan alamat peranti, dalam kes saya OLED dengan alamat 0x3F.
Agar segala-galanya berfungsi dengan betul, dan anda tidak perlu mencipta semula roda, anda perlu menyambungkan beberapa perpustakaan ke persekitaran ArduinoIDE, iaitu: ADAFRUIT GFX dan ADAFRUIT SSD1306, ia diperlukan untuk Arduino dapat berkomunikasi secara bebas dengan paparan OLED.
Anda boleh memasukkan perpustakaan ini dengan mengikuti langkah ini.
Dengan versi terkini perpustakaan, paparan saya berfungsi dengan bengkok, ini mungkin disebabkan oleh kelengkungan tangan saya, tetapi selepas saya memasang versi pertama perpustakaan ini, semuanya mula kelihatan lancar dan cantik. Atas sebab tertentu, garis Pushkin terlintas di fikiran:
... dan pengalaman, anak kepada kesilapan yang sukar,
dan genius, kawan paradoks.
Cara lain untuk memasang perpustakaan ialah mencari, memuat turun dan memasang sendiri perpustakaan ini.
Untuk contoh Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Ini adalah perpustakaan Adafruit yang sama, tetapi perpustakaan serupa boleh dicari dengan mudah dalam enjin carian, atas permintaan OLED I2C. Ramai peminat menulis perpustakaan "untuk diri mereka sendiri" dan kemudian menyiarkannya di web. Perpustakaan mana yang hendak digunakan terpulang kepada anda.
Agar paparan memaparkan huruf Rusia, perpustakaan khas juga diperlukan, tetapi ini adalah topik yang berasingan untuk artikel yang berasingan.
Selepas perpustakaan dipasang, anda boleh kembali ke langkah 4 dan akhirnya mengetahui alamat perenambelasan paparan anda.
Untuk menyemak sama ada semuanya berfungsi seperti yang diharapkan, jalankan contoh ujian daripada ArduinoIDE.
Untuk ini:
Pergi ke FAIL > CONTOH > SSD 1306 > Pilih 128x64 i2c
Jika anda mendapat "Ralat", cuba pilih SSD 1306 > 128x32 i2c.
Jika "Ralat" berlaku sekali lagi, cuba tukar alamat I2C pada baris 61 kod demo dan gantikannya dengan alamat paparan anda yang anda tentukan dalam langkah #4.
Jika ralat berlaku lagi, anda boleh cuba mengedit fail Adafruit_SSD1306.h, ia terletak dalam folder perpustakaan Arduino.
Buka fail Adafruit_SSD1306.h dalam editor teks dan cari baris:
Nyahkomen baris:
Ia sepatutnya kelihatan seperti ini:
Jika ralat berlaku lagi, anda perlu menyemak sambungan yang betul.
Setelah muat turun selesai, anda akan melihat animasi ujian pada skrin, yang bermaksud anda telah berjaya menyediakan paparan OLED anda.
Apabila anda benar-benar menikmati animasi ini, anda boleh meneruskan ke langkah seterusnya.
Untuk menulis mesej anda sendiri, mula-mula buat lakaran baharu dalam persekitaran pengaturcaraan ArduinoIDE.
Dalam pengepala kami menyertakan 4 perpustakaan:
Kemudian kami menulis protokol tetapan semula:
Dalam VOID SETUP kami menunjukkan alamat perenambelasan paparan kami 0x3C, yang kami pelajari dalam "Langkah No. 4".
Kemudian, kami memulakan paparan dan mengosongkannya:
Seterusnya, dalam VOID LOOP kita menulis kod utama, iaitu, mesej kita yang ingin kita paparkan pada paparan.
Untuk melakukan ini, kami menerangkan saiz teks, warna teks, kedudukan kursor, dan akhirnya, paparkan mesej menggunakan perintah println:
Akhir kata jangan lupa menulis paparan.paparansupaya imej dipaparkan pada skrin, jika tidak, anda akan mendapat kekosongan.
Jika anda melakukan semuanya dengan betul, mesej akan muncul pada paparan.
Berikut ialah KOD Starting_with_Arduino_OLED.ino program kami:
hello! Sebagai peminat elektronik amatur, saya pasti semua yang kami lakukan - mainan elektronik - produk buatan sendiri, atau projek besar - semuanya kerana rasa ingin tahu dan malas. Rasa ingin tahu berusaha untuk memahami dan memahami yang luas, tidak diketahui, untuk mengetahui cara ia berfungsi di sana, apa yang dilakukannya, bagaimana ia bergerak. Dan kemalasan mencipta sesuatu untuk dibuat, supaya tidak bangun, tidak mendekati, tidak mengangkat, tidak mengotorkan atau apa-apa lagi yang penting.
Memandangkan melihat maklumat adalah lebih baik daripada memikirkan perkara yang akan berlaku dalam peranti kami, atau telah berlaku, atau sedang berlaku, kami pasti ingin menerima maklumat yang paling berguna ini daripada mikropengawal, penderia atau peranti lain kami. Dan dalam apa jua keadaan, saya mahu menerima sebarang mesej, seperti soalan, amaran, peringatan, emotikon, bintang, hati dan seumpamanya.
Bagi mereka yang juga mempunyai keinginan yang sama, berikut ialah panduan ringkas untuk menyambung dan menguji paparan OLED yang kecil dan murah.
Seterusnya, kita akan bercakap tentang salah satu model paparan OLED yang tersedia secara meluas untuk radio amatur, dikawal oleh cip SSD1306, dengan saiz skrin 0.96 inci dan resolusi 128 * 64 atau 128 * 32 piksel. Paparan ini sesuai untuk reka bentuk radio amatur kecil dan projek buatan sendiri.
Langkah 1: Konsep Asas
Kami akan menyambungkannya ke Arduino UNO / NANO, dan kami juga akan memprogramkannya melalui Arduino.
- OLED ialah Diod Pemancar Cahaya Organik, iaitu peranti semikonduktor yang diperbuat daripada sebatian organik yang mula memancarkan cahaya apabila arus elektrik melaluinya.
- ARDUINO ialah platform untuk melatih dan membina sistem automasi dan robotik.
- ArduinoIDE - persekitaran pembangunan. Ini adalah program pengaturcaraan Arduino percuma.
- I2C – Litar Bersepadu Antara, talian komunikasi antara cip.
- Lakaran, kod aka, program aka - terminologi Arduino.
Ikut arahan untuk memahami cara menyambung dan mengkonfigurasi paparan OLED dengan betul ke Arduino dan cara memaparkan mesej tersuai pada paparannya.
Kami melakukan semua langkah demi langkah.
Langkah 2: Aksesori
Kami hanya memerlukan empat perkara:
- 1. Paparan OLED itu sendiri ialah 0.96” (anda boleh membelinya di Aliexpress atau Ebay, ia panjang, tetapi murah!).
- 2. Arduino UNO / Nano (tempat yang sama dengan paparan).
- 3. Wayar penyambung (ibid.).
- 4. Komputer atau komputer riba dengan ArduinoIDE dipasang.
Secara umum, membeli alat ganti untuk pelbagai projek di Aliexpress dan Ebay adalah perkara yang sangat menarik, semasa anda sedang mengerjakan satu projek, alat ganti untuk yang lain sedang dalam perjalanan. Perkara utama adalah jangan lupa untuk membuat pesanan.
Langkah 3: Menyambung Paparan
Paparan dikawal oleh cip SSD1306, yang menyokong lima protokol komunikasi, salah satunya ialah I2C. Data yang menggunakan protokol ini dihantar melalui hanya dua wayar, dan lebih sedikit wayar dalam kes itu, lebih baik, jadi ia sesuai dengan kita.Tetapi! Terdapat modul dengan protokol SPI dan juga dengan pensuisan protokol, jadi berhati-hati semasa membeli modul ini.
Pin yang digunakan:
Paparan OLED - SCL/SCK (jam) dan SDA (data), kuasa “Plus” (VCC) dan kuasa “Minus” (GND).
Pin yang digunakan:
Arduino UNO - SCL/SCK pada A5 dan SSD pada A4, kuasa “Plus” (+5V) dan kuasa “Minus” (GND).
Menyambungkan paparan ke Arduino:
- Vcc - 5V
- GND - GND
- SDA-A4
- SCL-A5
Langkah 4: Pengimbas I2C
Setiap peranti pada bas I2C mempunyai alamat perenambelasan, ia tidak boleh ditukar, ia berwayar keras, setiap pengeluar yang bertanggungjawab mesti menunjukkannya di suatu tempat pada kes atau dalam arahan. Terdapat modul dengan suis dan pelompat yang boleh digunakan untuk menukar alamat, tetapi... jika peranti itu murah sehingga memalukan, maka pengilang mungkin tidak peduli untuk menangani butiran kecil itu, jadi anda perlu tentukan sendiri.
Secara keseluruhan, sehingga 127 alamat boleh digunakan dalam bas - 119 untuk peranti dan 8 alamat perkhidmatan. Komunikasi dijalankan di alamat ini. Ada yang utama aka Tuan, dan ada hamba aka Hamba - Tuan bertanya, hamba menjawab, semuanya mudah.
Memandangkan paparan OLED kami menggunakan protokol komunikasi I2C, dan alamatnya mungkin tidak dinyatakan, kami akan cuba mengetahui alamat ini sendiri.
Anda boleh melakukan ini dengan memuat naik lakaran pendek ke papan Arduino anda dengan OLED disambungkan. TAPI!
Jangan tergesa-gesa untuk memuat naik lakaran ke Arduino dengan segera! Mari kita muat turun "pemandu" dahulu, i.e. mari kita sambungkan perpustakaan, dan untuk melakukan ini kita akan segera pergi ke "Langkah No. 5", dan kemudian kembali dan teruskan.
Langkah 4: Bersambung:
Muat turun CODE Finder_I2C_Hex_Address.ino, muat naik ke Arduino.
Buka "Port Monitor", tetapkan kelajuan kepada 9600 dan jika semuanya disambungkan dengan betul, program akan menunjukkan alamat peranti, dalam kes saya OLED dengan alamat 0x3F.
Langkah 5: Muat turun dan sambungkan perpustakaan
Agar segala-galanya berfungsi dengan betul, dan anda tidak perlu mencipta semula roda, anda perlu menyambungkan beberapa perpustakaan ke persekitaran ArduinoIDE, iaitu: ADAFRUIT GFX dan ADAFRUIT SSD1306, ia diperlukan untuk Arduino dapat berkomunikasi secara bebas dengan paparan OLED.
Anda boleh memasukkan perpustakaan ini dengan mengikuti langkah ini.
- 1. Dalam ArduinoIDE, pergi ke menu Sketch.
- 2. Pilih "Sertakan Perpustakaan".
- 3.Pilih "Urus Perpustakaan".
- 4. Cari ADAFRUIT GFX dan pasangkannya.
- 5. Cari ADAFRUIT SSD1306 dan pasangkannya.
Dengan versi terkini perpustakaan, paparan saya berfungsi dengan bengkok, ini mungkin disebabkan oleh kelengkungan tangan saya, tetapi selepas saya memasang versi pertama perpustakaan ini, semuanya mula kelihatan lancar dan cantik. Atas sebab tertentu, garis Pushkin terlintas di fikiran:
... dan pengalaman, anak kepada kesilapan yang sukar,
dan genius, kawan paradoks.
Cara lain untuk memasang perpustakaan ialah mencari, memuat turun dan memasang sendiri perpustakaan ini.
Untuk contoh Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Ini adalah perpustakaan Adafruit yang sama, tetapi perpustakaan serupa boleh dicari dengan mudah dalam enjin carian, atas permintaan OLED I2C. Ramai peminat menulis perpustakaan "untuk diri mereka sendiri" dan kemudian menyiarkannya di web. Perpustakaan mana yang hendak digunakan terpulang kepada anda.
Agar paparan memaparkan huruf Rusia, perpustakaan khas juga diperlukan, tetapi ini adalah topik yang berasingan untuk artikel yang berasingan.
Selepas perpustakaan dipasang, anda boleh kembali ke langkah 4 dan akhirnya mengetahui alamat perenambelasan paparan anda.
Langkah 6: Ujian Paparan
Untuk menyemak sama ada semuanya berfungsi seperti yang diharapkan, jalankan contoh ujian daripada ArduinoIDE.
Untuk ini:
Pergi ke FAIL > CONTOH > SSD 1306 > Pilih 128x64 i2c
Jika anda mendapat "Ralat", cuba pilih SSD 1306 > 128x32 i2c.
Jika "Ralat" berlaku sekali lagi, cuba tukar alamat I2C pada baris 61 kod demo dan gantikannya dengan alamat paparan anda yang anda tentukan dalam langkah #4.
Jika ralat berlaku lagi, anda boleh cuba mengedit fail Adafruit_SSD1306.h, ia terletak dalam folder perpustakaan Arduino.
Buka fail Adafruit_SSD1306.h dalam editor teks dan cari baris:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
Nyahkomen baris:
#define SSD1306_128_64.
Ia sepatutnya kelihatan seperti ini:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16
Jika ralat berlaku lagi, anda perlu menyemak sambungan yang betul.
Setelah muat turun selesai, anda akan melihat animasi ujian pada skrin, yang bermaksud anda telah berjaya menyediakan paparan OLED anda.
Apabila anda benar-benar menikmati animasi ini, anda boleh meneruskan ke langkah seterusnya.
Langkah 7: Tulis mesej anda sendiri
Untuk menulis mesej anda sendiri, mula-mula buat lakaran baharu dalam persekitaran pengaturcaraan ArduinoIDE.
Dalam pengepala kami menyertakan 4 perpustakaan:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Kemudian kami menulis protokol tetapan semula:
#define OLED_RESET 4
Paparan Adafruit_SSD1306(OLED_RESET);
Dalam VOID SETUP kami menunjukkan alamat perenambelasan paparan kami 0x3C, yang kami pelajari dalam "Langkah No. 4".
Kemudian, kami memulakan paparan dan mengosongkannya:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
Seterusnya, dalam VOID LOOP kita menulis kod utama, iaitu, mesej kita yang ingin kita paparkan pada paparan.
Untuk melakukan ini, kami menerangkan saiz teks, warna teks, kedudukan kursor, dan akhirnya, paparkan mesej menggunakan perintah println:
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Syabas!");
display.display();
Akhir kata jangan lupa menulis paparan.paparansupaya imej dipaparkan pada skrin, jika tidak, anda akan mendapat kekosongan.
Jika anda melakukan semuanya dengan betul, mesej akan muncul pada paparan.
Berikut ialah KOD Starting_with_Arduino_OLED.ino program kami:
kod.zip
[946 b] (muat turun: 4908)
Kelas induk yang serupa
Amat menarik
Komen (10)