Sådan forbindes OLED I2C-skærm til ARDUINO

Pin
Send
Share
Send

Introduktion: Introduktion til 128 * 64/128 * 32 OLED I2C-skærm.

Hilsner! At være amatør - en elektronikentusiast, er jeg sikker på, at alt, hvad vi gør, er elektroniske legetøj - hjemmelavede produkter eller store projekter, alt sammen fra nysgerrighed og dovenskab. Nysgerrighed søger at forstå og forstå det enorme, ikke kendte, at forstå, hvordan det fungerer der, hvad det gør, hvordan det bevæger sig. Og dovenskab opfinder for at komme med dette for ikke at rejse sig, ikke passe, ikke løfte, ikke blive snavset eller noget andet vigtigt.
Da det er bedre at se information end at forstå, hvad der er ved at ske på vores enhed, eller allerede er sket eller sker, vil vi bestemt ønske at få denne meget nyttige information fra vores mikrokontrollere, sensorer eller andre enheder. Og jeg vil under alle omstændigheder modtage meddelelser, såsom spørgsmål, advarsler, påmindelser, humørikoner, stjerner, hjerter og lignende.
For dem, der også har et lignende ønske, her er en hurtig guide til tilslutning og kontrol af små og billige OLED-skærme.
Derefter vil vi tale om en af ​​de bredt tilgængelige til skinke radiomodeller af OLED-skærme kontrolleret af SSD1306-chippen, med en skærmstørrelse på 0,96 inches og en opløsning på 128 * 64 eller 128 * 32 pixels. Disse skærme er ideelle til små amatørradiodesign og hjemmelavede produkter.

Trin 1: Nøglekoncepter


Vi forbinder det til Arduino UNO / NANO, ja, og til henholdsvis programmering vil vi også forbinde det gennem Arduino.
  • OLED er en organisk lysemitterende diode, dvs. en halvlederindretning fremstillet af organiske forbindelser, som begynder at udsende lys, når en elektrisk strøm passerer gennem den.
  • ARDUINO er ​​en platform til træning og opbygning af automatiserings- og robotiksystemer.
  • ArduinoIDE er et udviklingsmiljø. Dette er et gratis Arduino-programmeringsværktøj.
  • I2C - Interintegrerede kredsløb, kommunikationslinie mellem mikrokredsløb.
  • En skitse, det er en kode, det er et program - Arduino-terminologi.

Følg instruktionerne for at forstå, hvordan du korrekt tilslutter og konfigurerer en OLED-skærm til Arduino, og hvordan du viser din egen meddelelse på dens display.
Vi gør alt i trin.

Trin 2: Tilbehør


Vi har kun brug for fire ting:
  • 1. Selve OLED-skærmen er 0,96 ”(kan købes på Aliexpress eller Ebay, - lang, men billig!).
  • 2. Arduino UNO / Nano (på samme sted som displayet).
  • 3. Tilslutning af ledninger (ibid.).
  • 4. En computer eller bærbar computer med ArduinoIDE installeret.

Generelt er det en meget cool ting at købe dele til forskellige projekter på Aliexpress og Ebay, mens du laver et projekt, er dele til et andet allerede på vej. Det vigtigste er ikke at glemme at afgive en ordre.

Trin 3: Tilslut skærmen


Displayet styres af SSD1306-chippen, der understøtter fem kommunikationsprotokoller, hvoraf den ene er I2C. Data om denne protokol transmitteres i kun to ledninger, og jo færre ledninger i tilfældet, jo bedre, så det passer os godt. Men! Der er moduler med SPI-protokol og endda protokolleskift, så vær forsigtig, når du køber dette modul.

Brugte konklusioner:
OLED-display - SCL / SCK (ur) og SDA (data), "Plus" strøm (VCC) og "Minus" strøm (GND).

Brugte konklusioner:
Arduino UNO - SCL / SCK på A5 og SSD på A4, "Plus" strøm (+ 5V) og "Minus" strøm (GND).
Forbind skærmen til Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Trin 4: I2C Scanner


Hver enhed på I2C-bussen har en hexadecimal adresse, du kan ikke ændre den, den er syet tæt, hver ansvarlig producent skal angive det et eller andet sted på sagen eller i instruktionerne. Der er moduler med afbrydere og jumpere, som du kan ændre adresse med, men ... hvis enhederne er billige, til grimt, er det måske, at producenten ikke gider at tackle en sådan bagatel, så du bliver nødt til at bestemme det selv.
I alt kan der bruges op til 127 adresser på bussen - 119 til enheder og 8 serviceadresser. Kommunikation foregår på disse adresser. Der er en mester, han er en mester, men der er en slave, han er også en slave - Mestere spørger, tilhængere svarer, alt er enkelt.
Da vores OLED-skærm bruger I2C-kommunikationsprotokollen, og adressen muligvis ikke er angivet, vil vi forsøge at finde ud af netop denne adresse.
Dette kan gøres ved at downloade en kort skitse til dit Arduino-kort med OLED tilsluttet. MEN!
Tag dig tid til at uploade skitsen til Arduino med det samme! Lad os først downloade "driveren", dvs. vi forbinder bibliotekerne, og for dette går vi direkte til "Trin 5", og så går vi tilbage og fortsætter.

Trin 4: Fortsættes:


Download CODE Finder_I2C_Hex_Address.ino, upload til Arduino.
Åbn "Port Monitor", indstil hastigheden til 9600, og hvis alt er tilsluttet korrekt, viser programmet enhedens adresse, i mit tilfælde OLED med adressen 0x3F.

Trin 5: Download og tilslut biblioteker


For at alt fungerer korrekt, og du ikke behøvede at genopfinde hjulet, skal du forbinde et par biblioteker til ArduinoIDE-miljøet, nemlig: ADAFRUIT GFX og ADAFRUIT SSD1306, de er nødvendige for at Arduino skal kunne kommunikere uafhængigt med OLED-skærmen.
Du kan forbinde disse biblioteker ved at følge disse trin.
  • 1. Gå til Sketch-menuen i ArduinoIDE.
  • 2. Vælg "Inkluder biblioteker" / Inkluder biblioteker.
  • 3. Vælg "Administrer biblioteker" / Administrerede biblioteker.
  • 4. Find ADAFRUIT GFX, og installer dem.
  • 5. Find ADAFRUIT SSD1306, og installer dem.

Med de nyeste versioner af biblioteker fungerede displayet skævt for mig, måske skyldes det selvfølgelig hændernes krumning, men efter at jeg installerede de allerførste versioner af disse biblioteker, begyndte alt at fremstå glat og smukt. Af en eller anden grund dukker Pushkins linjer op i hans hukommelse:
... og erfaring, sønnen af ​​vanskelige fejl,
og geni, vensparadokser.

En anden måde at installere biblioteker på er at finde, downloade og installere disse biblioteker selv.
For et eksempel på Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Dette er de samme Adafruit-biblioteker, men lignende biblioteker kan let søges i søgemaskiner på anmodning fra OLED I2C. Mange entusiaster skriver biblioteker "for sig selv" og sætter dem derefter på nettet. Hvilket bibliotek du skal bruge er op til dig.
For at displayet skal kunne vise russiske breve, er der også behov for specielle biblioteker, men dette er et separat emne for en separat artikel.
Når bibliotekerne er installeret, kan du vende tilbage til trin 4 og endelig finde ud af den hexadecimale adresse på din skærm.

Trin 6: Test af skærmen


For at kontrollere, om alt fungerer som forventet, skal du køre testeksemplet fra ArduinoIDE.
Sådan gør du:
Gå FIL> EKSEMPLER> SSD 1306> Vælg 128x64 i2c
Hvis du får en "Fejl", kan du prøve at vælge SSD 1306> 128x32 i2c.
Hvis der igen er fejl, kan du prøve at ændre I2C-adressen på linje 61 i demokoden, og erstatte den med adressen på dit display, som du bestemte i trin # 4.
Hvis fejlen opstår igen, kan du prøve at redigere Adafruit_SSD1306.h-filen, den er placeret i mappen med Arduino-bibliotekerne.

Åbn filen Adafruit_SSD1306.h i en teksteditor, og find linjerne:
// # definere SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Fjern linjen:
#definer SSD1306_128_64.

Det skulle være sådan:
#define SSD1306_128_64 // # definere SSD1306_128_32 // #define SSD1306_96_16

Hvis fejlen igen er, er det nødvendigt at kontrollere de korrekte forbindelser.
Når downloadet er afsluttet, vil du se en testanimation på skærmen, hvilket betyder, at du har konfigureret din OLED-skærm.

Når du nyder denne animation, kan du gå videre til næste trin.

Trin 7: Skriv din egen meddelelse


For at skrive din egen besked skal du først oprette en ny skitse i programmeringsmiljøet ArduinoIDE.
I overskriften forbinder vi 4 biblioteker:
#include #include #include #include 

Så skriver vi nulstillingsprotokollen:
#definer OLED_RESET 4 Adafruit_SSD1306-display (OLED_RESET);

I VOID SETUP skal du specificere den hexadecimale adresse på vores 0x3C-skærm, som vi fandt ud af i "Trin nr. 4".
Initialiser derefter skærmen, og ryd det:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Dernæst skriver vi i VOID LOOP hovedkoden, det vil sige vores meddelelse, som vi vil vise på displayet.
For at gøre dette beskriver vi tekststørrelse, tekstfarve, markørposition og til sidst viser vi en meddelelse ved hjælp af kommandoen println:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Godt gjort!"); display.display ();

I slutningen skal du ikke glemme at skrive display.displayså billedet vises på skærmen, ellers får du et tomrum.
Hvis du gjorde alt korrekt, vises en meddelelse på skærmene.

Her er CODE starter_med_Arduino_OLED.ino i vores program:
code.zip 946 b (downloads: 1366)

Pin
Send
Share
Send