OLED I2C ekranı ARDUINO'ya nasıl bağlanır
Giriş: OLED I2C ekranına giriş 128*64 / 128*32.
Merhaba! Amatör bir elektronik meraklısı olarak, elektronik oyuncaklardan, ev yapımı ürünlere, büyük projelere kadar yaptığımız her şeyin tamamen merak ve tembellikten kaynaklandığına eminim. Merak, engin, bilinmeyeni anlamaya, kavramaya, orada nasıl çalıştığını, ne yaptığını, nasıl hareket ettiğini anlamaya çalışır. Ve tembellik, kalkmamak, yaklaşmamak, kaldırmamak, kirlenmemek veya başka önemli bir şey yapmamak için ortaya çıkacak bir şey icat eder.
Bilgiyi görmek, cihazımızda ne olacağını, zaten olduğunu veya oluyor olduğunu anlamaktan daha iyi olduğundan, bu en yararlı bilgiyi kesinlikle mikrodenetleyicilerimizden, sensörlerimizden veya diğer cihazlarımızdan almak isteyeceğiz. Ve her durumda soru, uyarı, hatırlatma, ifade, yıldız, kalp ve benzeri mesajları almak istiyorum.
Benzer bir arzuya sahip olanlar için burada küçük ve ucuz OLED ekranların bağlanması ve test edilmesiyle ilgili kısa bir kılavuz bulunmaktadır.
Daha sonra radyo amatörleri için yaygın olarak bulunan, SSD1306 çipi ile kontrol edilen, 0,96 inç ekran boyutuna ve 128*64 veya 128*32 piksel çözünürlüğe sahip OLED ekran modellerinden birinden bahsedeceğiz. Bu ekranlar küçük amatör radyo tasarımları ve ev yapımı projeler için idealdir.
Arduino UNO/NANO’ya bağlayacağız ve Arduino üzerinden de programlayacağız.
OLED ekranın Arduino'ya nasıl düzgün şekilde bağlanıp yapılandırılacağını ve ekranında özel bir mesajın nasıl görüntüleneceğini anlamak için talimatları izleyin.
Her şeyi adım adım yapıyoruz.
Sadece dört şeye ihtiyacımız var:
Genel olarak Aliexpress ve Ebay'den çeşitli projeler için parça satın almak çok güzel bir şey, siz bir proje üzerinde çalışırken diğerinin parçaları zaten yolda. Önemli olan sipariş vermeyi unutmamaktır.
Ekran, biri I2C olan beş iletişim protokolünü destekleyen bir SSD1306 yongası tarafından kontrol ediliyor. Bu protokolü kullanan veriler yalnızca iki kablo üzerinden iletilir ve ne kadar az kablo olursa o kadar iyidir, bu nedenle bize oldukça uygundur.Ancak! SPI protokolüne sahip ve hatta protokol anahtarlamalı modüller vardır, bu nedenle bu modülü satın alırken dikkatli olun.
Kullanılan pinler:
OLED ekran - SCL/SCK (saat) ve SDA (veri), "Artı" güç (VCC) ve "Eksi" güç (GND).
Kullanılan pinler:
Arduino UNO - A5'te SCL/SCK ve A4'te SSD, "Artı" güç (+5V) ve "Eksi" güç (GND).
Ekranı Arduino'ya bağlama:
I2C veriyolundaki her cihazın onaltılık bir adresi vardır, değiştirilemez, kabloludur, her sorumlu üretici bunu kutunun üzerinde veya talimatlarda bir yerde belirtmelidir. Adresi değiştirmek için kullanılabilecek anahtarlar ve jumper'lar içeren modüller vardır, ancak... eğer cihazlar utanç verici derecede ucuzsa, o zaman üretici bu kadar küçük bir ayrıntıyla uğraşma zahmetine girmeyebilir, bu yüzden siz de uğraşmak zorunda kalacaksınız. kendiniz belirleyin.
Toplamda veri yolunda en fazla 127 adres kullanılabilir - 119'u cihazlar için ve 8'i servis adresi. İletişim bu adreslerden gerçekleştirilir. Bir ana var, yani Efendi ve bir köle var, yani Köle - Ustalar soruyor, köleler cevap veriyor, her şey basit.
OLED ekranımız I2C iletişim protokolünü kullandığından ve adres belirtilmemiş olabileceğinden, bu adresi kendimiz bulmaya çalışacağız.
Bunu, OLED bağlıyken Arduino kartınıza kısa bir çizim yükleyerek yapabilirsiniz. ANCAK!
Taslağı hemen Arduino'ya yüklemek için acele etmeyin! Önce “sürücüleri” indirelim, yani. hadi kütüphaneleri birbirine bağlayalım ve bunun için hemen “5. Adım”a gidip sonra geri dönüp devam edeceğiz.
CODE Finder_I2C_Hex_Address.ino'yu indirin, Arduino'ya yükleyin.
“Port Monitor”ü açın, hızı 9600'e ayarlayın ve her şey doğru bağlanırsa program cihazın adresini, benim durumumda 0x3F adresli OLED'i gösterecektir.
Her şeyin doğru çalışması için ve tekerleği yeniden icat etmenize gerek kalmaması için, ArduinoIDE ortamına birkaç kütüphane bağlamanız gerekir: ADAFRUIT GFX ve ADAFRUIT SSD1306, Arduino'nun bağımsız olarak iletişim kurabilmesi için gereklidirler. OLED ekran ile.
Bu adımları takip ederek bu kütüphaneleri dahil edebilirsiniz.
Kütüphanelerin son versiyonlarında ekranım çarpık çalışıyordu, bu elbette ellerimin eğriliğinden kaynaklanıyor olabilir ama bu kütüphanelerin ilk versiyonlarını kurduktan sonra her şey düzgün ve güzel görünmeye başladı. Nedense Puşkin'in şu satırları geliyor aklıma:
...ve tecrübe, zorlu hataların oğlu,
ve dahi, paradoksların dostu.
Kütüphaneleri kurmanın bir başka yolu da bu kütüphaneleri kendiniz bulmak, indirmek ve kurmaktır.
Github örneği için:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Bunlar aynı Adafruit kütüphaneleridir ancak OLED I2C'nin isteği üzerine benzer kütüphaneler arama motorlarında kolaylıkla aranabilir. Pek çok meraklı, kütüphaneleri "kendileri için" yazıyor ve ardından bunları web'de yayınlıyor. Hangi kütüphaneyi kullanacağınız size kalmış.
Ekranın Rusça harfleri göstermesi için özel kütüphanelere de ihtiyaç vardır ancak bu ayrı bir makale için ayrı bir konudur.
Kitaplıklar yüklendikten sonra 4. adıma dönebilir ve son olarak ekranınızın onaltılık adresini öğrenebilirsiniz.
Her şeyin beklendiği gibi çalışıp çalışmadığını kontrol etmek için ArduinoIDE'deki test örneğini çalıştırın.
Bunun için:
DOSYA > ÖRNEKLER > SSD 1306'ya gidin > 128x64 i2c'yi seçin
"Hata" alırsanız SSD 1306 > 128x32 i2c'yi seçmeyi deneyin.
Tekrar "Hata" oluşursa demo kodunun 61. satırındaki I2C adresini değiştirmeyi deneyin ve bunu ekranınızın 4. adımda belirlediğiniz adresiyle değiştirin.
Hata tekrar oluşursa Arduino kütüphaneleri klasöründe bulunan Adafruit_SSD1306.h dosyasını düzenlemeyi deneyebilirsiniz.
Adafruit_SSD1306.h dosyasını bir metin düzenleyicide açın ve şu satırları bulun:
Satırın yorumunu kaldırın:
Şunun gibi görünmeli:
Hata tekrar oluşursa doğru bağlantıları kontrol etmeniz gerekir.
İndirme işlemi tamamlandıktan sonra ekranda bir test animasyonu göreceksiniz; bu, OLED ekranınızı başarıyla kurduğunuz anlamına gelir.
Bu animasyondan iyice keyif aldığınızda bir sonraki adıma geçebilirsiniz.
Kendi mesajınızı yazmak için öncelikle ArduinoIDE programlama ortamında yeni bir taslak oluşturun.
Başlığa 4 kütüphane ekledik:
Sonra sıfırlama protokolünü yazıyoruz:
VOID SETUP'ta “Adım No. 4”te öğrendiğimiz 0x3C ekranımızın hexadecimal adresini belirtiyoruz.
Ardından ekranı başlatıyoruz ve temizliyoruz:
Daha sonra VOID LOOP'a ana kodu yani ekranda görünmesini istediğimiz mesajımızı yazıyoruz.
Bunu yapmak için metin boyutunu, metnin rengini, imleç konumunu tanımlıyoruz ve son olarak println komutunu kullanarak mesajı görüntülüyoruz:
Sonunda yazmayı unutmayın ekran.görüntüböylece görüntü ekranda görüntülenir, aksi takdirde boşluk elde edersiniz.
Her şeyi doğru yaptıysanız ekranlarda bir mesaj görünecektir.
İşte programımızın Start_with_Arduino_OLED.ino KODU:
Merhaba! Amatör bir elektronik meraklısı olarak, elektronik oyuncaklardan, ev yapımı ürünlere, büyük projelere kadar yaptığımız her şeyin tamamen merak ve tembellikten kaynaklandığına eminim. Merak, engin, bilinmeyeni anlamaya, kavramaya, orada nasıl çalıştığını, ne yaptığını, nasıl hareket ettiğini anlamaya çalışır. Ve tembellik, kalkmamak, yaklaşmamak, kaldırmamak, kirlenmemek veya başka önemli bir şey yapmamak için ortaya çıkacak bir şey icat eder.
Bilgiyi görmek, cihazımızda ne olacağını, zaten olduğunu veya oluyor olduğunu anlamaktan daha iyi olduğundan, bu en yararlı bilgiyi kesinlikle mikrodenetleyicilerimizden, sensörlerimizden veya diğer cihazlarımızdan almak isteyeceğiz. Ve her durumda soru, uyarı, hatırlatma, ifade, yıldız, kalp ve benzeri mesajları almak istiyorum.
Benzer bir arzuya sahip olanlar için burada küçük ve ucuz OLED ekranların bağlanması ve test edilmesiyle ilgili kısa bir kılavuz bulunmaktadır.
Daha sonra radyo amatörleri için yaygın olarak bulunan, SSD1306 çipi ile kontrol edilen, 0,96 inç ekran boyutuna ve 128*64 veya 128*32 piksel çözünürlüğe sahip OLED ekran modellerinden birinden bahsedeceğiz. Bu ekranlar küçük amatör radyo tasarımları ve ev yapımı projeler için idealdir.
Adım 1: Temel Kavramlar
Arduino UNO/NANO’ya bağlayacağız ve Arduino üzerinden de programlayacağız.
- OLED, Organik Işık Yayan Diyot, yani içinden bir elektrik akımı geçtiğinde ışık yaymaya başlayan, organik bileşiklerden yapılmış bir yarı iletken cihazdır.
- ARDUINO, otomasyon ve robotik sistemlerin eğitimi ve inşası için bir platformdur.
- ArduinoIDE - geliştirme ortamı. Bu ücretsiz bir Arduino programlama programıdır.
- I2C – Entegre Devreler, çipler arası iletişim hattı.
- Taslak, diğer adıyla kod, diğer adıyla program – Arduino terminolojisi.
OLED ekranın Arduino'ya nasıl düzgün şekilde bağlanıp yapılandırılacağını ve ekranında özel bir mesajın nasıl görüntüleneceğini anlamak için talimatları izleyin.
Her şeyi adım adım yapıyoruz.
Adım 2: Aksesuarlar
Sadece dört şeye ihtiyacımız var:
- 1. OLED ekranın kendisi 0,96 inçtir (Aliexpress veya Ebay'den satın alabilirsiniz, uzun ama ucuzdur!).
- 2. Arduino UNO / Nano (ekranla aynı yer).
- 3. Bağlantı kabloları (aynı eser).
- 4. ArduinoIDE kurulu bilgisayar veya dizüstü bilgisayar.
Genel olarak Aliexpress ve Ebay'den çeşitli projeler için parça satın almak çok güzel bir şey, siz bir proje üzerinde çalışırken diğerinin parçaları zaten yolda. Önemli olan sipariş vermeyi unutmamaktır.
3. Adım: Ekranı Bağlama
Ekran, biri I2C olan beş iletişim protokolünü destekleyen bir SSD1306 yongası tarafından kontrol ediliyor. Bu protokolü kullanan veriler yalnızca iki kablo üzerinden iletilir ve ne kadar az kablo olursa o kadar iyidir, bu nedenle bize oldukça uygundur.Ancak! SPI protokolüne sahip ve hatta protokol anahtarlamalı modüller vardır, bu nedenle bu modülü satın alırken dikkatli olun.
Kullanılan pinler:
OLED ekran - SCL/SCK (saat) ve SDA (veri), "Artı" güç (VCC) ve "Eksi" güç (GND).
Kullanılan pinler:
Arduino UNO - A5'te SCL/SCK ve A4'te SSD, "Artı" güç (+5V) ve "Eksi" güç (GND).
Ekranı Arduino'ya bağlama:
- Vcc-5V
- GND - GND
- SDA-A4
- SCL-A5
Adım 4: I2C Tarayıcı
I2C veriyolundaki her cihazın onaltılık bir adresi vardır, değiştirilemez, kabloludur, her sorumlu üretici bunu kutunun üzerinde veya talimatlarda bir yerde belirtmelidir. Adresi değiştirmek için kullanılabilecek anahtarlar ve jumper'lar içeren modüller vardır, ancak... eğer cihazlar utanç verici derecede ucuzsa, o zaman üretici bu kadar küçük bir ayrıntıyla uğraşma zahmetine girmeyebilir, bu yüzden siz de uğraşmak zorunda kalacaksınız. kendiniz belirleyin.
Toplamda veri yolunda en fazla 127 adres kullanılabilir - 119'u cihazlar için ve 8'i servis adresi. İletişim bu adreslerden gerçekleştirilir. Bir ana var, yani Efendi ve bir köle var, yani Köle - Ustalar soruyor, köleler cevap veriyor, her şey basit.
OLED ekranımız I2C iletişim protokolünü kullandığından ve adres belirtilmemiş olabileceğinden, bu adresi kendimiz bulmaya çalışacağız.
Bunu, OLED bağlıyken Arduino kartınıza kısa bir çizim yükleyerek yapabilirsiniz. ANCAK!
Taslağı hemen Arduino'ya yüklemek için acele etmeyin! Önce “sürücüleri” indirelim, yani. hadi kütüphaneleri birbirine bağlayalım ve bunun için hemen “5. Adım”a gidip sonra geri dönüp devam edeceğiz.
Adım 4: Devamı:
CODE Finder_I2C_Hex_Address.ino'yu indirin, Arduino'ya yükleyin.
“Port Monitor”ü açın, hızı 9600'e ayarlayın ve her şey doğru bağlanırsa program cihazın adresini, benim durumumda 0x3F adresli OLED'i gösterecektir.
5. Adım: Kitaplıkları indirin ve bağlayın
Her şeyin doğru çalışması için ve tekerleği yeniden icat etmenize gerek kalmaması için, ArduinoIDE ortamına birkaç kütüphane bağlamanız gerekir: ADAFRUIT GFX ve ADAFRUIT SSD1306, Arduino'nun bağımsız olarak iletişim kurabilmesi için gereklidirler. OLED ekran ile.
Bu adımları takip ederek bu kütüphaneleri dahil edebilirsiniz.
- 1. ArduinoIDE'de Çizim menüsüne gidin.
- 2. “Kütüphaneleri Dahil Et”i seçin.
- 3. “Kütüphaneleri Yönet”i seçin.
- 4. ADAFRUIT GFX'i bulun ve yükleyin.
- 5. ADAFRUIT SSD1306'yı bulun ve yükleyin.
Kütüphanelerin son versiyonlarında ekranım çarpık çalışıyordu, bu elbette ellerimin eğriliğinden kaynaklanıyor olabilir ama bu kütüphanelerin ilk versiyonlarını kurduktan sonra her şey düzgün ve güzel görünmeye başladı. Nedense Puşkin'in şu satırları geliyor aklıma:
...ve tecrübe, zorlu hataların oğlu,
ve dahi, paradoksların dostu.
Kütüphaneleri kurmanın bir başka yolu da bu kütüphaneleri kendiniz bulmak, indirmek ve kurmaktır.
Github örneği için:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Bunlar aynı Adafruit kütüphaneleridir ancak OLED I2C'nin isteği üzerine benzer kütüphaneler arama motorlarında kolaylıkla aranabilir. Pek çok meraklı, kütüphaneleri "kendileri için" yazıyor ve ardından bunları web'de yayınlıyor. Hangi kütüphaneyi kullanacağınız size kalmış.
Ekranın Rusça harfleri göstermesi için özel kütüphanelere de ihtiyaç vardır ancak bu ayrı bir makale için ayrı bir konudur.
Kitaplıklar yüklendikten sonra 4. adıma dönebilir ve son olarak ekranınızın onaltılık adresini öğrenebilirsiniz.
Adım 6: Ekran Testi
Her şeyin beklendiği gibi çalışıp çalışmadığını kontrol etmek için ArduinoIDE'deki test örneğini çalıştırın.
Bunun için:
DOSYA > ÖRNEKLER > SSD 1306'ya gidin > 128x64 i2c'yi seçin
"Hata" alırsanız SSD 1306 > 128x32 i2c'yi seçmeyi deneyin.
Tekrar "Hata" oluşursa demo kodunun 61. satırındaki I2C adresini değiştirmeyi deneyin ve bunu ekranınızın 4. adımda belirlediğiniz adresiyle değiştirin.
Hata tekrar oluşursa Arduino kütüphaneleri klasöründe bulunan Adafruit_SSD1306.h dosyasını düzenlemeyi deneyebilirsiniz.
Adafruit_SSD1306.h dosyasını bir metin düzenleyicide açın ve şu satırları bulun:
//#SSD1306_128_64'ü tanımlayın
#SSD1306_128_32'yi tanımlayın
// #SSD1306_96_16'yı tanımla
Satırın yorumunu kaldırın:
#SSD1306_128_64'ü tanımlayın.
Şunun gibi görünmeli:
#SSD1306_128_64'ü tanımlayın
//#SSD1306_128_32'yi tanımlayın
// #SSD1306_96_16'yı tanımla
Hata tekrar oluşursa doğru bağlantıları kontrol etmeniz gerekir.
İndirme işlemi tamamlandıktan sonra ekranda bir test animasyonu göreceksiniz; bu, OLED ekranınızı başarıyla kurduğunuz anlamına gelir.
Bu animasyondan iyice keyif aldığınızda bir sonraki adıma geçebilirsiniz.
Adım 7: Kendi mesajınızı yazın
Kendi mesajınızı yazmak için öncelikle ArduinoIDE programlama ortamında yeni bir taslak oluşturun.
Başlığa 4 kütüphane ekledik:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Sonra sıfırlama protokolünü yazıyoruz:
#define OLED_RESET 4
Adafruit_SSD1306 ekranı(OLED_RESET);
VOID SETUP'ta “Adım No. 4”te öğrendiğimiz 0x3C ekranımızın hexadecimal adresini belirtiyoruz.
Ardından ekranı başlatıyoruz ve temizliyoruz:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
Daha sonra VOID LOOP'a ana kodu yani ekranda görünmesini istediğimiz mesajımızı yazıyoruz.
Bunu yapmak için metin boyutunu, metnin rengini, imleç konumunu tanımlıyoruz ve son olarak println komutunu kullanarak mesajı görüntülüyoruz:
display.setTextSize(2);
display.setTextColor(BEYAZ);
display.setCursor(0,0);
display.println("Aferin!");
display.display();
Sonunda yazmayı unutmayın ekran.görüntüböylece görüntü ekranda görüntülenir, aksi takdirde boşluk elde edersiniz.
Her şeyi doğru yaptıysanız ekranlarda bir mesaj görünecektir.
İşte programımızın Start_with_Arduino_OLED.ino KODU:
posta kodu
[946 b] (indirilenler: 4908)
Benzer ana sınıflar
Özellikle ilginç
Yorumlar (10)