Hoe OLED I2C-display te verbinden met ARDUINO

Pin
Send
Share
Send

Inleiding: introductie van het 128 * 64/128 * 32 OLED I2C-display.

Gegroet! Als amateur - een elektronicafanaat, weet ik zeker dat we alleen elektronisch speelgoed doen - zelfgemaakte producten of grote projecten, allemaal uit nieuwsgierigheid en luiheid. Nieuwsgierigheid wil het immense, niet bekende, begrijpen en begrijpen, om te begrijpen hoe het daar werkt, wat het doet, hoe het beweegt. En luiheid verzint, om hiermee te komen, om niet op te staan, niet fit te zijn, niet te tillen, niet vies te worden of iets anders belangrijks.
Aangezien het zien van informatie beter is dan begrijpen wat er op ons apparaat staat te gebeuren, of al is gebeurd of aan het gebeuren is, zullen we deze zeer nuttige informatie zeker van onze microcontrollers, sensoren of andere apparaten willen krijgen. En ik wil in elk geval berichten ontvangen, zoals vragen, waarschuwingen, herinneringen, emoticons, sterretjes, harten en dergelijke.
Voor degenen die ook een vergelijkbare wens hebben, is hier een korte handleiding voor het aansluiten en controleren van kleine en goedkope OLED-schermen.
Vervolgens zullen we het hebben over een van de ruim beschikbare modellen voor hamradiomodellen van OLED-schermen die worden bestuurd door de SSD1306-chip, met een schermgrootte van 0,96 inch en een resolutie van 128 * 64 of 128 * 32 pixels. Deze displays zijn ideaal voor kleine amateurradioontwerpen en zelfgemaakte producten.

Stap 1: sleutelconcepten


We zullen het verbinden met Arduino UNO / NANO, nou ja, en om te programmeren, zullen we het ook verbinden via Arduino.
  • OLED is een organische lichtemitterende diode, d.w.z. een halfgeleiderapparaat gemaakt van organische verbindingen, dat licht begint uit te stralen wanneer er een elektrische stroom doorheen gaat.
  • ARDUINO is een platform voor training en gebouwautomatisering en robotica-systemen.
  • ArduinoIDE is een ontwikkelomgeving. Dit is een gratis Arduino-programmeertool.
  • I2C - Inter-geïntegreerde schakelingen, communicatielijn tussen microcircuits.
  • Een schets, het is een code, het is een programma - Arduino-terminologie.

Volg de instructies om te begrijpen hoe u een OLED-scherm correct kunt aansluiten en configureren op de Arduino en hoe u uw eigen bericht op het scherm kunt weergeven.
We doen alles in stappen.

Stap 2: Accessoires


We hebben slechts vier dingen nodig:
  • 1. Het OLED-scherm zelf is 0,96 inch (kan worden gekocht op AliExpress of Ebay, - lang, maar goedkoop!).
  • 2. Arduino UNO / Nano (op dezelfde plaats als het scherm).
  • 3. Verbindingsdraden (ibid.).
  • 4. Een computer of laptop waarop ArduinoIDE is geïnstalleerd.

Over het algemeen is het kopen van onderdelen voor verschillende projecten op AliExpress en Ebay erg cool, terwijl u het ene project uitvoert, zijn onderdelen voor een ander al onderweg. Het belangrijkste is om niet te vergeten een bestelling te plaatsen.

Stap 3: Sluit het display aan


Het display wordt bestuurd door de SSD1306-chip, die vijf communicatieprotocollen ondersteunt en een daarvan is I2C. Gegevens over dit protocol worden in slechts twee draden verzonden, en hoe minder draden in het geval, hoe beter, dus het past ons goed. Maar! Er zijn modules met SPI-protocol en zelfs protocolomschakeling, dus wees voorzichtig bij het kopen van deze module.

Gebruikte conclusies:
OLED-display - SCL / SCK (klok) en SDA (gegevens), "Plus" power (VCC) en "Minus" power (GND).

Gebruikte conclusies:
Arduino UNO - SCL / SCK op A5 en SSD op A4, "Plus" power (+ 5V) en "Minus" power (GND).
Verbind het display met de Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Stap 4: I2C-scanner


Elk apparaat op de I2C-bus heeft een hexadecimaal adres, u kunt dit niet wijzigen, het is stevig genaaid, elke verantwoordelijke fabrikant moet het ergens op de zaak of in de instructies aangeven. Er zijn modules met schakelaars en jumpers waarmee je het adres kunt wijzigen, maar ... als de apparaten goedkoop zijn, voor de lelijkheid, neemt de fabrikant misschien de moeite niet om met zo'n kleinigheid om te gaan, dus je moet het zelf bepalen.
In totaal kunnen maximaal 127 adressen op de bus worden gebruikt - 119 voor apparaten en 8 serviceadressen. Communicatie vindt plaats op deze adressen. Er is een meester, hij is een meester, maar er is een slaaf, hij is ook een slaaf - Meesters vragen, de volgers antwoorden, alles is eenvoudig.
Aangezien ons OLED-display het I2C-communicatieprotocol gebruikt en het adres mogelijk niet wordt aangegeven, zullen we proberen dit juist te achterhalen.
Dit kan worden gedaan door een korte schets naar je Arduino-bord te downloaden met OLED aangesloten. MAAR!
Neem de tijd om de schets meteen naar Arduino te uploaden! Laten we eerst de "driver" downloaden, d.w.z. we verbinden de bibliotheken, en hiervoor gaan we meteen naar "Stap 5", en dan gaan we terug en gaan verder.

Stap 4: Vervolg:


Download CODE Finder_I2C_Hex_Address.ino, upload naar Arduino.
Open de "Port Monitor", stel de snelheid in op 9600 en als alles correct is aangesloten, toont het programma het apparaatadres, in mijn geval OLED met het adres 0x3F.

Stap 5: download en sluit bibliotheken aan


Om alles correct te laten werken, en je het wiel niet opnieuw hoefde uit te vinden, moet je een aantal bibliotheken aansluiten op de ArduinoIDE-omgeving, namelijk: ADAFRUIT GFX en ADAFRUIT SSD1306, ze zijn nodig voor Arduino om onafhankelijk te kunnen communiceren met het OLED-display.
U kunt deze bibliotheken verbinden door deze stappen te volgen.
  • 1. Ga in ArduinoIDE naar het schetsmenu.
  • 2. Selecteer "Bibliotheken opnemen" / Bibliotheken opnemen.
  • 3. Selecteer "Bibliotheken beheren" / Beheerde bibliotheken.
  • 4. Zoek ADAFRUIT GFX en installeer ze.
  • 5. Zoek ADAFRUIT SSD1306 en installeer ze.

Met de nieuwste versies van bibliotheken werkte het scherm scheef voor mij, misschien is dit natuurlijk te wijten aan de kromming van de handen, maar nadat ik de allereerste versies van deze bibliotheken had geïnstalleerd, begon alles soepel en mooi te verschijnen. Om de een of andere reden duiken de lijnen van Pushkin op in zijn geheugen:
... en ervaring, de zoon van moeilijke fouten,
en geniaal, vriendparadoxen.

Een andere manier om bibliotheken te installeren, is om deze bibliotheken zelf te zoeken, downloaden en installeren.
Voor een voorbeeld van Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Dit zijn dezelfde Adafruit-bibliotheken, maar vergelijkbare bibliotheken kunnen eenvoudig worden doorzocht in zoekmachines, op verzoek van OLED I2C. Veel enthousiastelingen schrijven bibliotheken "voor zichzelf" en plaatsen ze vervolgens op internet. Welke bibliotheek u moet gebruiken, is aan u.
Om Russische letters op het display weer te geven, zijn ook speciale bibliotheken nodig, maar dit is een apart onderwerp voor een afzonderlijk artikel.
Nadat de bibliotheken zijn geïnstalleerd, kunt u terugkeren naar stap 4 en uiteindelijk het hexadecimale adres van uw scherm achterhalen.

Stap 6: Het display testen


Voer het testvoorbeeld uit ArduinoIDE uit om te controleren of alles naar verwachting werkt.
Om dit te doen:
Ga naar BESTAND> VOORBEELDEN> SSD 1306> Selecteer 128x64 i2c
Als u een "Fout" krijgt, probeer dan de SSD 1306> 128x32 i2c te kiezen.
Als het opnieuw Error is, probeer dan het I2C-adres op regel 61 van de democode te wijzigen en te vervangen door het adres van uw display, dat u in stap # 4 hebt bepaald.
Als de fout opnieuw optreedt, kunt u proberen het bestand Adafruit_SSD1306.h te bewerken, het bevindt zich in de map met de Arduino-bibliotheken.

Open het bestand Adafruit_SSD1306.h in een teksteditor en zoek de regels:
// # definieer SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

De regel ongedaan maken:
#define SSD1306_128_64.

Het zou zo moeten zijn:
#define SSD1306_128_64 // # definieer SSD1306_128_32 // #define SSD1306_96_16

Als de fout opnieuw optreedt, moet u de juistheid van de verbindingen controleren.
Nadat het downloaden is voltooid, ziet u een testanimatie op het scherm, wat betekent dat u uw OLED-scherm hebt geconfigureerd.

Wanneer u geniet van deze animatie, kunt u doorgaan naar de volgende stap.

Stap 7: Uw eigen bericht schrijven


Om uw eigen bericht te schrijven, maakt u eerst een nieuwe schets in de programmeeromgeving ArduinoIDE.
In de kop verbinden we 4 bibliotheken:
#include #include #include #include 

Vervolgens schrijven we het reset-protocol:
#define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET);

Geef in de VOID SETUP het hexadecimale adres van ons 0x3C-display op, dat we hebben ontdekt in "Stap nr. 4".
Initialiseer vervolgens het display en wis het:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Vervolgens schrijven we in VOID LOOP de hoofdcode, dat wil zeggen ons bericht, dat we op het display willen weergeven.
Om dit te doen, beschrijven we de tekstgrootte, tekstkleur, cursorpositie en ten slotte geven we een bericht weer met de opdracht println:
display.setTextSize (2); display.setTextColor (WIT); display.setCursor (0,0); display.println ("Goed gedaan!"); display.display ();

Vergeet aan het einde niet te schrijven Display.Displayzodat de afbeelding op het scherm wordt weergegeven, anders krijgt u een nietje.
Als je alles correct hebt gedaan, verschijnt er een bericht op het display.

Hier is de CODE Starting_with_Arduino_OLED.ino van ons programma:
code.zip 946 b (downloads: 1366)

Pin
Send
Share
Send