- Nepieciešamā aparatūra:
- Iepazīšanās ar OLED displejiem:
- Aparatūra un savienojumi:
- SSD1306 OLED displeja programmēšana Arduino:
Lielākā daļa no mums būtu pazīstami ar 16 × 2 punktu matricas LCD displeju, kas tiek izmantots lielākajā daļā projektu, lai lietotājiem parādītu kādu informāciju. Bet šiem LCD displejiem ir daudz ierobežojumu attiecībā uz to, ko viņi var darīt. Šajā apmācībā mēs uzzināsim par OLED displejiem un kā tos izmantot Arduino. Tirgū ir pieejami daudzi OLED displeju veidi, un ir daudz veidu, kā tos darbināt. Šajā apmācībā mēs apspriedīsim par tā klasifikāciju un arī to, kas vislabāk būs piemērots jūsu projektam.
Nepieciešamā aparatūra:
- 7 pin 128 × 64 OLED displeja modulis (SSD1306)
- Arduino UNO / Nano
- Maizes dēlis
- Vadu savienošana
- Dators / klēpjdators
Iepazīšanās ar OLED displejiem:
Termins OLED nozīmē “ organisko gaismu izstarojošo diodi”, un tajā tiek izmantota tā pati tehnoloģija, kas tiek izmantota lielākajā daļā mūsu televizoru, taču salīdzinājumā ar tiem ir mazāk pikseļu. Ir patiešām jautri, ka šie atdzistos displeja moduļus var sasaistīt ar Arduino, jo tas mūsu projektiem izskatīsies forši. Šeit esam apskatījuši pilnu rakstu par OLED displejiem un to veidiem.
Mēs izmantojam vienkrāsainu 7 kontaktu SSD1306 0,96 ”OLED displeju. Šī displeja izvēles iemesls ir tas, ka tas var strādāt ar trim dažādiem sakaru protokoliem, piemēram, SPI 3 vadu režīmu, SPI četru vadu režīmu un IIC režīmu. Šajā apmācībā tiks aplūkots, kā moduli izmantot SPI 4 vadu režīmā, jo tas ir ātrākais saziņas un noklusējuma režīms.
Adatas un tās funkcijas ir paskaidrotas zemāk esošajā tabulā.
PIN kods |
Piespraudes nosaukums |
Citi vārdi |
Lietošana |
1 |
Gnd |
Zeme |
Moduļa zemējuma tapa |
2 |
Vdd |
Vcc, 5V |
Barošanas tapa (3-5V pieļaujama) |
3 |
SCK |
D0, SCL, CLK |
Darbojas kā pulksteņa tapa. Izmanto gan I2C, gan SPI |
4 |
SDA |
D1, MOSI |
Moduļa datu tapa. Izmanto gan IIC, gan SPI |
5 |
RES |
RST, ATIESTATĪT |
Modulis tiek atiestatīts (noderīgs SPI laikā) |
6 |
DC |
A0 |
Datu komandas piespraude. Izmanto SPI protokolam |
7 |
CS |
Chip Select |
Noderīgi, ja SPI protokolā tiek izmantoti vairāki moduļi |
Šajā apmācībā mēs vienkārši darbināsim moduli 4 vadu SPI režīmā, pārējo atstāsim citai apmācībai.
Arduino kopiena jau ir devusi mums daudz bibliotēku, kuras var tieši izmantot, lai padarītu to daudz vienkāršāku. Es izmēģināju dažas bibliotēkas un atklāju, ka Adafruit_SSD1306 bibliotēku bija ļoti viegli izmantot, un tajā bija nedaudz grafisko iespēju, tāpēc mēs to izmantosim arī šajā apmācībā. Bet, ja jūsu projektam ir atmiņas / ātruma ierobežojums, mēģiniet izmantot U8g bibliotēku, jo tā darbojas ātrāk un aizņem mazāk programmas atmiņas.
Aparatūra un savienojumi:
Circuit diagramma par SSD1306 OLED sasaistei ar Arduino ir ļoti vienkārša un ir parādīts zemāk
Mums vienkārši ir jāizveido SPI komunikācija starp OLED moduli un Arduino. Tā kā OLED darbojas ar 3V-5V un patērē ļoti maz enerģijas, tam nav nepieciešams ārējs barošanas avots. Lai izveidotu savienojumu, varat vienkārši izmantot vadus vai izmantot maizes dēli, kā es to izmantoju, lai to būtu viegli eksperimentēt. Savienojums ir norādīts arī zemāk esošajā pasakā
S.No |
Piespraudes nosaukums OLED modulī |
Piespraudes nosaukums vietnē Arduino |
1 |
Gnd, Zeme |
Zeme |
2 |
Vdd, Vcc, 5V |
5V |
3 |
SCK, D0, SCL, CLK |
10 |
4 |
SDA, D1, MOSI |
9 |
5 |
RES, RST, RESET |
13 |
6 |
DC, A0 |
11 |
7 |
CS, mikroshēmas atlase |
12 |
Piezīme: Jūs nevarēsiet vizualizēt OLED moduļa apgaismojumu / spīdumu, tikai to darbinot. Jums tas ir pareizi jāprogrammē, lai pamanītu izmaiņas OLED displejā.
SSD1306 OLED displeja programmēšana Arduino:
Kad savienojumi ir gatavi, varat sākt programmēt Arduino. Kā minēts iepriekš, darbam ar šo OLED moduli izmantosim Adafruit bibliotēku un GFX bibliotēku. Izpildiet darbības, lai pārbaudītu OLED displeja darbību.
1. solis: lejupielādējiet Adafruit bibliotēku un GFX bibliotēku no Github, izmantojot zemāk esošo saiti
- Adafruit bibliotēka
- GFX grafikas bibliotēka
2. solis: Jums vajadzētu lejupielādēt divus ZIP failus. Tagad pievienojiet tos savam Arduino, sekojot
Skice-> Iekļaut bibliotēku -> Pievienot Zip bibliotēku, kā parādīts zemāk. Pēc tam atlasiet tikko lejupielādēto bibliotēku. Vienlaikus var atlasīt tikai vienu bibliotēku, tāpēc šī darbība ir jāatkārto vēlreiz.
3. solis: Palaidiet programmas piemēru, atlasot Fails-> Piemēri-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino, kā parādīts zemāk esošajā attēlā.
4. solis: Programmas paraugā 64. rindas augšpusē pievienojiet rindiņu “#define SSD1306_LCDHEIGHT 64”, kā parādīts zemāk esošajā attēlā.
5. solis: Tagad augšupielādējiet programmu, un jums vajadzētu redzēt OLED displeju, kas tiek aktivizēts ar noklusējuma Adafruit parauga kodu, kā parādīts zemāk esošajā attēlā. Pilnu darba videoklips tiek dota beigās.
Šis programmas piemērs parāda visas iespējamās grafikas, kuras varētu parādīt OLED ekrānā. Šim kodam vajadzētu būt pietiekamam, lai jūs varētu izveidot bitkartes, uzzīmēt līnijas / apļus / taisnstūrus, spēlēt ar pikseļiem, parādīt char un string ar dažādiem fontiem un izmēriem utt.
Ja vēlaties labāk izprast bibliotēku un tās funkcijas, varat lasīt tālāk. Katrs koda junks ir sadalīts un izskaidrots ar komentāru rindiņu palīdzību. Pilnīgs kods ir norādīts šī panta beigās
Ekrāna parādīšana un notīrīšana:
Rakstīšana uz OLED ekrāna ir gluži tāpat kā rakstīšana uz melna dēļa. Mums ir jāraksta vērtības un pēc tam jānotīra, pirms tās var pārrakstīt. Displeja rakstīšanai un notīrīšanai tiek izmantotas šādas komandas
display.display (); // Rakstiet, lai parādītu display.clearDisplay (); // notīrīt displeju
Rāda rakstzīmju mainīgo:
Lai parādītu mainīgā saturu, var izmantot šādu kodu.
char i = 5; // parādāmais mainīgais display.setTextSize (1); // Atlasiet teksta displeja lielumu.setTextColor (WHITE); // vienkrāsainam displejam ir iespējams tikai displejs.setCursor (0,0); // 0,0 ir OLED ekrāna displeja augšējais kreisais stūris. Rakstīt (i); // Uzrakstiet parādāmo mainīgo
Līnijas, apļa, taisnstūra, trīsstūra zīmēšana:
Ja vēlaties displejā pievienot dažus simbolus, varat izmantot šo kodu, lai uzzīmētu kādu no šiem
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // void drawLine (x0, y0, x1, y1, krāsa); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, WHITE); // void drawRect (x0, y0, w, h, krāsa); Trīsstūris (display.width () / 2, display.height () / 2-i, display.width () / 2-i, display.height () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, WHITE); // void drawTriangle (x0, y0, x1, y1, x2, y2, krāsa); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // void drawCircle (x0, y0, r, krāsa);
Stīgu vilkšana uz ekrāna:
Šādu koda daļu var izmantot, lai ekrānā parādītu jebkuru ziņojumu noteiktā vietā un lielumā
display.setTextSize (2); // iestatiet teksta displeja lielumu.setTextColor (WHITE); // krāsu iestatījums display.setCursor (10,0); // Virkne sāksies ar 10,0 (x, y) display.clearDisplay (); // Dzēš jebkuru iepriekšējo displeju ekrāna display.println ("Circuit Digest"); // Drukājiet virkni šeit “Circuit Digest” display.display (); // nosūtiet tekstu uz ekrāna
Parāda bitu kartes attēlu:
Viena neuzticama lieta, ko var izdarīt ar OLED moduli, ir tā, ka to var izmantot, lai parādītu bitu kartes. Šis attēls tiek izmantots, lai parādītu bitkartes attēlu
static const neparakstīts simbols PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B11111111111111111111111111 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitkarte, w, h, BALTS); // void drawBitmap (x, y, * bitkarte, w, h, krāsa);
Kā redzat, bitu kartes dati, lai parādītu attēlu, PROMGMEM direktīvas veidā jāglabā programmas atmiņā. Vienkārši sakot, mums ir jāmāca OLED displejs, kas jādara ar katru pikseļu, nododot tam secību vai vērtības no masīva, kā parādīts iepriekš. Šajā masīvā būs attēla bitkartes dati.
Tas varētu izklausīties sarežģīti, bet ar tīmekļa rīka palīdzību ir ļoti viegli pārveidot attēlu mazliet kartes vērtībās un ielādēt tos iepriekš minētajā masīvā.
Vienkārši ielādējiet attēlu un pielāgojiet iestatījumus, lai iegūtu vēlamo attēla priekšskatījumu. Pēc tam noklikšķiniet uz “Ģenerēt kodu”, nokopējiet kodu un ielīmējiet to savā masīvā. Augšupielādējiet programmu, un viss ir pabeigts. Es mēģināju parādīt Betmena logotipu, un tas tā arī izrādījās.
Ar šīm bibliotēkām joprojām ir daudz lietu. Lai uzzinātu visas iespējas, apmeklējiet Adafruit GFX grafikas primitīvu lapu.
Ceru, ka jūs to izmantojat un esat gatavs ieviest OLED displeju dažos savos projektos. Ja jums radās kāda problēma, kopīgojiet tos komentāru sadaļā, un es centīšos darīt visu iespējamo, lai tos novērstu.