Csináld magad
Life hackek, mesterkurzusok, hasznos tippek, receptek.
itthon » Elektronika » DIY elektronika » OLED I2C kijelző csatlakoztatása ARDUINO-hoz
Bevezetés: Az OLED I2C 128*64 / 128*32 kijelző bemutatása.
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

Helló! Amatőr elektronikai rajongó lévén biztos vagyok benne, hogy minden, amit csinálunk – elektronikus játékok, házi készítésű termékek, vagy nagy projektek – mind kíváncsiságból és lustaságból fakad. A kíváncsiság arra törekszik, hogy megértse és megértse a hatalmasat, az ismeretlent, hogy rájöjjön, hogyan működik ott, mit csinál, hogyan mozog. A lustaság pedig kitalál valamit, hogy ne keljen fel, ne közelítsen, ne emeljen, ne koszoljon vagy bármi más fontosat.

Mivel az információkat látni jobb, mint kitalálni, hogy mi fog történni a készülékünkben, vagy már megtörtént, vagy történik, mindenképpen szeretnénk megkapni ezeket a leghasznosabb információkat mikrokontrollereinktől, érzékelőinktől vagy más eszközeinktől. És mindenesetre szeretnék bármilyen üzenetet kapni, például kérdéseket, figyelmeztetéseket, emlékeztetőket, hangulatjeleket, csillagokat, szíveket és hasonlókat.

Akinek szintén hasonló vágya van, annak itt egy rövid útmutató a kisméretű és olcsó OLED-kijelzők csatlakoztatásához és teszteléséhez.
Ezután a rádióamatőrök számára széles körben elérhető, SSD1306 chippel vezérelt, 0,96 hüvelykes képernyőmérettel és 128 * 64 vagy 128 * 32 pixeles felbontású OLED kijelzőmodellről lesz szó. Ezek a kijelzők ideálisak kis rádióamatőr tervekhez és házi projektekhez.
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

1. lépés: Alapfogalmak


Csatlakoztatjuk az Arduino UNO / NANO-hoz, és programozzuk is az Arduino-n keresztül.
  • Az OLED egy szerves fénykibocsátó dióda, azaz szerves vegyületekből készült félvezető eszköz, amely akkor kezd fényt kibocsátani, amikor elektromos áram halad át rajta.
  • Az ARDUINO egy platform az automatizálási és robotikai rendszerek képzéséhez és épületgépészetéhez.
  • ArduinoIDE - fejlesztői környezet. Ez egy ingyenes Arduino programozó program.
  • I2C – Inter-Integrated Circuits, inter-chip kommunikációs vonal.
  • Vázlat, más néven kód, más néven program - Arduino terminológia.

Kövesse az utasításokat, hogy megértse, hogyan kell megfelelően csatlakoztatni és konfigurálni az OLED-kijelzőt az Arduino-hoz, és hogyan jeleníthet meg egyéni üzenetet a kijelzőn.
Mindent lépésről lépésre csinálunk.

2. lépés: Tartozékok


Csak négy dologra van szükségünk:
  • 1. Maga az OLED-kijelző 0,96”-os (Aliexpressen vagy Ebay-en megveheted, hosszú, de olcsó!).
  • 2. Arduino UNO / Nano (ugyanott, ahol a kijelző).
  • 3. Csatlakozó vezetékek (uo.).
  • 4. Számítógép vagy laptop ArduinoIDE telepítve.

Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

Általánosságban elmondható, hogy az Aliexpressen és az Ebay-en különféle projektekhez alkatrészeket vásárolni nagyon klassz dolog, miközben az egyik projekten dolgozik, egy másikhoz már folyamatban van. A lényeg az, hogy ne felejtsd el megrendelni.

3. lépés: A kijelző csatlakoztatása


A kijelzőt egy SSD1306 chip vezérli, amely öt kommunikációs protokollt támogat, amelyek közül az egyik az I2C. Az adatátvitel ezzel a protokollal csak két vezetéken történik, és minél kevesebb vezeték van a tokban, annál jobb, tehát nekünk ez elég jól áll.De! Vannak olyan modulok, amelyek SPI protokollal, sőt protokollváltással is rendelkeznek, ezért legyen óvatos a modul megvásárlásakor.
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

Felhasznált tűk:
OLED kijelző - SCL/SCK (óra) és SDA (adat), „Plus” teljesítmény (VCC) és „Mínusz” teljesítmény (GND).
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

Felhasznált tűk:
Arduino UNO - SCL/SCK A5-ön és SSD A4-en, „Plus” táp (+5V) és „Mínusz” táp (GND).
A kijelző csatlakoztatása Arduinohoz:
  • Vcc - 5V
  • GND - GND
  • SDA-A4
  • SCL-A5

Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

4. lépés: I2C szkenner


Az I2C buszon minden eszköz hexadecimális címmel rendelkezik, nem módosítható, vezetékes, ezt minden felelős gyártónak fel kell tüntetnie valahol a házon vagy a használati utasításban. Vannak olyan modulok kapcsolókkal, jumperekkel, amelyekkel lehet címet változtatni, de... ha nevetségesen olcsók a készülékek, akkor lehet, hogy a gyártó nem foglalkozik egy ilyen részlettel, így neked kell meghatároznod.

Összesen legfeljebb 127 cím használható a buszon - 119 eszközök és 8 szolgáltatási cím. A kommunikáció ezeken a címeken történik. Van egy fő, aka Mester, és van egy rabszolga, más néven Slave - kérdezik a Mesterek, válaszolnak a rabszolgák, minden egyszerű.
Mivel OLED kijelzőnk az I2C kommunikációs protokollt használja, és előfordulhat, hogy a cím nincs megadva, megpróbáljuk magunk is kideríteni ezt a címet.

Ezt úgy teheti meg, hogy egy rövid vázlatot tölt fel Arduino kártyájára, csatlakoztatva az OLED-et. DE!
Ne rohanjon azonnal feltölteni a vázlatot az Arduino-ba! Először töltsük le a „meghajtókat”, azaz kössük össze a könyvtárakat, és ehhez azonnal menjünk az „5. lépéshez”, majd térjünk vissza és folytassuk.

4. lépés: Folytatás:


Töltse le a CODE Finder_I2C_Hex_Address.ino-t, töltse fel az Arduino-ba.
Nyissa meg a „Port Monitort”, állítsa a sebességet 9600-ra, és ha minden megfelelően van csatlakoztatva, a program megmutatja az eszköz címét, esetemben OLED 0x3F címmel.
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

5. lépés: Töltse le és csatlakoztassa a könyvtárakat


Ahhoz, hogy minden megfelelően működjön, és ne kelljen újra feltalálni a kereket, pár könyvtárat kell csatlakoztatni az ArduinoIDE környezethez, nevezetesen: ADAFRUIT GFX és ADAFRUIT SSD1306, ezek szükségesek ahhoz, hogy az Arduino önállóan tudjon kommunikálni. OLED kijelzővel.
Ezeket a könyvtárakat az alábbi lépések végrehajtásával veheti fel.
  • 1. Az ArduinoIDE programban lépjen a Sketch menübe.
  • 2. Válassza az „Include Libraries” lehetőséget.
  • 3. Válassza a „Könyvtárak kezelése” lehetőséget.
  • 4. Keresse meg az ADAFRUIT GFX-et, és telepítse.
  • 5. Keresse meg az ADAFRUIT SSD1306-ot, és telepítse.

A könyvtárak legfrissebb verzióinál a kijelzőm ferdén működött, ez persze lehet a kezem görbülete miatt, de miután telepítettem ezeknek a könyvtáraknak a legelső verzióit, kezdett minden simának és gyönyörűnek tűnni. Valamiért Puskin sorai jutnak eszembe:
...és a tapasztalat, a nehéz hibák fia,
és zseni, a paradoxonok barátja.

A könyvtárak telepítésének másik módja az, hogy saját maga keresi meg, tölti le és telepíti ezeket a könyvtárakat.
Github példa:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306

Ezek ugyanazok az Adafruit könyvtárak, de az OLED I2C kérésére a hasonló könyvtárak könnyen kereshetők a keresőkben. Sok rajongó „maga számára” ír könyvtárakat, majd felteszi őket az internetre. Ön dönti el, hogy melyik könyvtárat használja.
Ahhoz, hogy a kijelző orosz betűket jelenítsen meg, speciális könyvtárakra is szükség van, de ez egy külön cikk külön témája.
A könyvtárak telepítése után visszatérhet a 4. lépéshez, és végre megtudhatja a kijelző hexadecimális címét.

6. lépés: Kijelző tesztelése


Annak ellenőrzéséhez, hogy minden a várt módon működik-e, futtassa az ArduinoIDE tesztpéldáját.
Ezért:
Lépjen a FÁJL > PÉLDÁK > SSD 1306 > Válassza a 128x64 i2c lehetőséget
Ha az "Error" üzenetet kapja, válassza az SSD 1306 > 128x32 i2c lehetőséget.
Ha ismét megjelenik a „Hiba”, próbálja meg megváltoztatni az I2C címet a demókód 61. sorában, és cserélje ki a kijelzőjének a 4. lépésben meghatározott címére.
Ha a hiba ismét jelentkezik, megpróbálhatja szerkeszteni az Adafruit_SSD1306.h fájlt, amely az Arduino könyvtárak mappában található.
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

Nyissa meg az Adafruit_SSD1306.h fájlt egy szövegszerkesztőben, és keresse meg a sorokat:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16 

Törölje a sor megjegyzését:
#define SSD1306_128_64. 

Így kell kinéznie:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16

Ha a hiba ismét jelentkezik, ellenőriznie kell a megfelelő csatlakozásokat.
A letöltés befejeztével egy tesztanimáció jelenik meg a képernyőn, ami azt jelenti, hogy sikeresen beállította az OLED-kijelzőt.

Ha teljesen élvezte ezt az animációt, továbbléphet a következő lépésre.

7. lépés: Írja meg saját üzenetét


Saját üzenet írásához először hozzon létre egy új vázlatot az ArduinoIDE programozási környezetben.
A fejlécben 4 könyvtár található:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Ezután írjuk a reset protokollt:
#define OLED_RESET 4
Adafruit_SSD1306 kijelző (OLED_RESET);

A VOID SETUP-ban a kijelzőnk 0x3C hexadecimális címét jelöljük, amelyet a „4. lépésben” tanultunk meg.
Ezután inicializáljuk a kijelzőt és töröljük:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();

Ezután a VOID LOOP-ban írjuk be a fő kódot, vagyis az üzenetünket, amit a kijelzőn szeretnénk megjeleníteni.
Ehhez leírjuk a szöveg méretét, a szöveg színét, a kurzor pozícióját, végül a println paranccsal megjelenítjük az üzenetet:
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Jól sikerült!");
display.display();

A végén ne felejts el írni display.displayhogy a kép megjelenjen a képernyőn, különben űrt kap.
Ha mindent jól csinált, egy üzenet jelenik meg a kijelzőkön.
Az OLED I2C kijelző csatlakoztatása az ARDUINO-hoz

Íme a programunk Starting_with_Arduino_OLED.ino kódja:
code.zip [946 b] (letöltések száma: 4908)
Megjegyzés
  • csokornyakkendőmosolynevetéselpirulmosolygósellazult ellazultönelégült mosoly
    szív_szemkissing_heartcsókoló_csukott_szemmelkipirultmegkönnyebbültenelégedettvigyorog
    Rákacsintáskinyújtotta a nyelvét pislogó szemmelkinyújtotta a nyelvét csukott szemmelvigyorogvacsókolózáselakadt_nyelvalvás
    aggódóa homlokát ráncolvagyötrődvenyitott szájgrimaszolvazavaroselhallgatott
    kifejezéstelennem szórakozottverejték_mosolyizzadcsalódott_megkönnyebbültfáradtpasszív
    csalódottösszezavarodvafélelmeteshideg verejtékkitartanikiáltászokogás
    örömelképedvesikolyfáradt_arcmérgesdühdiadal
    álmosfincsimaszknapszemüvegszédült_arcmanómosolygó_imp
    semleges_arcno_mouthártatlan
4 mínusz egy =
Megjegyzések (10)
  1. Tatoshka
    #1 Tatoshka Vendégek 2018. november 14. 21:18
    9
    Köszönöm barátom! Ez az első feltöltött vázlatom és bevezetőm az Arduino-hoz. A pislogáson kívül Blink))
  2. Alisher
    #2 Alisher Vendégek 2019. július 28. 19:35
    8
    Honnan tudom letölteni ezt a Finder_I2C_Hex_Address.ino kódot?
    1. Al
      #3 Al Vendégek 2019. augusztus 14. 12:51
      11
      a kép alatt van egy link "Itt van programunk Starting_with_Arduino_OLED.ino KÓDJA:"
  3. Alex
    #4 Alex Vendégek 2019. november 13. 20:01
    9
    Nem VOID SETUP vagy VOID LOOP, hanem void setup(); és void loop(); A C nyelv megkülönbözteti a kis- és nagybetűket.
  4. Vendég Alex
    #5 Vendég Alex Vendégek 2020. január 14. 03:00
    6
    >4. lépés: ... az én esetemben OLED címmel 0x3F.
    és akkor
    >A VOID SETUP-ban... a kijelzőnk címe 0x3C, amelyet a „4. lépésben” tanultunk meg.
    Hogy van ez?
  5. Vendég Alex
    #6 Vendég Alex Vendégek 2020. január 14. 03:10
    9
    Köszönöm! Mindent az Atmega328 Pro Mini utasításai szerint csináltam, és megnéztem a vásárolt 0,96". Mindkettő működik. Arduino IDE 1.8.10
  6. Olvasó
    #7 Olvasó Vendégek 2020. március 3. 21:50
    4
    Köszönöm, tanulságos, minden működik!
  7. Ildar Xafizov
    #8 Ildar Xafizov Vendégek 2020. április 19. 19:15
    5
    Kérdésem van. 2 db OLED-kijelző található, amelyek megegyeznek a képen látható OLED-kijelzővel (második kép). Nem tudom melyik jumpert használjam a cím megváltoztatásához?
  8. Vendég Maxim
    #9 Vendég Maxim Vendégek 2020. október 31. 18:53
    11
    Köszönöm a cikket.De van egy problémám: a betűk pixelei egymás után világítanak, és a betűtípus nagyobb, mint kellene. Úgy tűnik, az Arduino nem ismeri fel a képernyő felbontását. Ha valakinek hasonló problémája van, a következőképpen oldhatja meg:
    #define SCREEN_WIDTH 128 // OLED kijelző szélessége, pixelben
    #define SCREEN_HEIGHT 64 // OLED kijelző magassága, pixelben
    Adafruit_SSD1306 kijelző(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  9. Dmitrij
    #10 Dmitrij Vendégek 2021. május 9. 19:35
    7
    Köszönöm! Nem minden sikerült azonnal. Valóban, a kijelzőn a cím 128*64 volt, nem 0x3D, hanem 0x3C. A Könyvtárakat pedig a verziók „középéről” átrendeztem. Nem a legújabb, mert... volt egy üzenet a memória kritikus értékéről (Van egy Arduino Unom).

Ecetes lilahagyma (kanapékhoz, salátákhoz, hamburgerekhez és pilafhoz)

Tengeri naplemente rajzolása és egy régi ajtó díszítése | Csináld magad

DIY kívánságkönyv egy fiúnak | Csináld magad

Hogyan kell szétszerelni és kenni a fúrótokmányt

«Csináld magad - saját kezeddel» - az otthoni hulladékanyagokból és tárgyakból készült érdekes házi termékek oldala. Lépésről lépésre mesterkurzusok fotókkal és leírásokkal, technológiákkal, életvitelekkel - mindennel, amire egy igazi mesternek vagy csak egy kézművesnek szüksége van a kézimunkához. Bármilyen bonyolultságú kézműves, a kreativitás irányai és ötletei széles választéka.

Olvasásra ajánljuk

Mosógép hibakódok