Kendin Yap
Hayat hack'leri, ustalık sınıfları, faydalı ipuçları, tarifler.
Ev » Elektronik » DIY elektronik » OLED I2C ekranı ARDUINO'ya nasıl bağlanır
Giriş: OLED I2C ekranına giriş 128*64 / 128*32.
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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.
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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.

OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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.
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

Kullanılan pinler:
OLED ekran - SCL/SCK (saat) ve SDA (veri), "Artı" güç (VCC) ve "Eksi" güç (GND).
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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

OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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.
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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.
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

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.
OLED I2C ekranı ARDUINO'ya nasıl bağlanır

İşte programımızın Start_with_Arduino_OLED.ino KODU:
posta kodu [946 b] (indirilenler: 4908)
Yorum
  • papyongülümsemekgülüyorkızarmakgülen yüzrahat rahatsırıtış
    kalp gözleriöpüşen kalpöpüşme_kapalı_eyeskızarmışrahatlamakmemnunsırıtış
    göz kırpmasıkışmış_out_tongue_winking_eyesıkışmış_out_tongue_closed_eyessırıtmaöpüşmeksıkışmış_out_tongueuyuyor
    endişelikaşlarını çatmakıstıraplıaçık_ağızyüzünü buruşturmakafası karışmışsessiz
    ifadesizeğlenmemişter_smileterhayal kırıklığına uğradımyorgunpasif
    hayal kırıklığına uğramışşaşkınkorkunçSoğuk tersebat etmekağlamakhıçkırmak
    neşeşaşkınbağırmakyorgun yüzsinirliöfkelenmekzafer
    uykulutatlımmaskeGüneş gözlüğübaş döndürücü_yüzimpsmile_imp
    nötr_yüzağız yokmasum
4 eksi bir =
Yorumlar (10)
  1. Tatoşka
    #1 Tatoşka Misafirler 14 Kasım 2018 21:18
    9
    Teşekkürler arkadaşım! Bu benim yüklediğim ilk eskiz ve Arduino'ya tanıtımım. Yanıp sönen Yanıp Sönme dışında))
  2. Alişer
    #2 Alişer Misafirler 28 Temmuz 2019 19:35
    8
    Bu Finder_I2C_Hex_Address.ino kodunu nereden indirebilirim?
    1. Al
      #3 Al Misafirler 14 Ağustos 2019 12:51
      11
      resmin altında "İşte programımızın Start_with_Arduino_OLED.ino KODU:" bağlantısı var
  3. Alex
    #4 Alex Misafirler 13 Kasım 2019 20:01
    9
    GEÇERSİZ KURULUM veya GEÇERSİZ DÖNGÜ değil, geçersiz kurulum(); ve geçersiz döngü(); C dili büyük/küçük harfe duyarlı bir dildir.
  4. Misafir Alex
    #5 Misafir Alex Misafirler 14 Ocak 2020 03:00
    6
    >Adım 4: ... benim durumumda adresli OLED 0x3F.
    ve daha sonra
    >VOID SETUP'ta... ekranımızın adresi 0x3CBunu “4. Adımda” öğrendik.
    Bu nasıl?
  5. Misafir Alex
    #6 Misafir Alex Misafirler 14 Ocak 2020 03:10
    9
    Teşekkür ederim! Atmega328 Pro Mini'deki talimatlara göre her şeyi yaptım ve satın alınan 0,96"'yi kontrol ettim. Her ikisinin de çalıştığı ortaya çıktı. Arduino IDE 1.8.10
  6. Okuyucu
    #7 Okuyucu Misafirler 3 Mart 2020 21:50
    4
    Teşekkür ederim öğretici, her şey işe yarıyor!
  7. İldar Xafizov
    #8 İldar Xafizov Misafirler 19 Nisan 2020 19:15
    5
    Bir sorum var. Fotoğrafta (ikinci fotoğraf) sizinkinin aynısı 2 OLED ekran var. Adresi değiştirmek için hangi atlama tellerini kullanacağımı çözemiyorum?
  8. Misafir Maxim
    #9 Misafir Maxim Misafirler 31 Ekim 2020 18:53
    11
    Makale için teşekkür ederim.Ancak bir sorunum var: Harflerdeki pikseller birbiri ardına parlıyor ve yazı tipi olması gerekenden daha büyük. Görünüşe göre Arduino ekran çözünürlüğünü tanımıyor. Birisi aynı sorunu yaşıyorsa, bunu nasıl çözeceğiniz aşağıda açıklanmıştır:
    #define SCREEN_WIDTH 128 // OLED ekran genişliği, piksel cinsinden
    #define SCREEN_HEIGHT 64 // OLED ekran yüksekliği, piksel cinsinden
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  9. Dmitry
    #10 Dmitry Misafirler 9 Mayıs 2021 19:35
    7
    Teşekkür ederim! Her şey hemen yolunda gitmedi. Aslında ekrandaki adres 0x3D değil 0x3C değil 128*64'tü. Ben de Kütüphaneleri versiyonların “ortasından” yeniden düzenledim. Sonuncusu değil çünkü... hafızanın kritik değeri hakkında bir mesaj vardı (Arduino Uno'm var).

Kırmızı soğan turşusu (kanepe, salata, hamburger ve pilav için)

Deniz gün batımı çizimi ve eski bir kapıyı süslemek | Kendin Yap

Bir erkek çocuk için DIY dilek kitabı | Kendin Yap

Matkap mandreni nasıl sökülür ve yağlanır

«Kendin yap - kendi ellerinle» - hurda malzemelerden ve evdeki eşyalardan yapılmış ilginç ev yapımı ürünlerin bulunduğu bir site. Fotoğraflar ve açıklamalar, teknolojiler, yaşam tüyoları içeren adım adım ustalık sınıfları - gerçek bir ustanın veya sadece bir zanaatkarın iğne işi için ihtiyaç duyduğu her şey. Her karmaşıklıkta el sanatları, yaratıcılık için geniş bir yön ve fikir yelpazesi.

Okumanızı öneririz

Çamaşır makinesi hata kodları