Muunganisho wa Lcd nokia 5110. Faida za kutumia Arduino Uno. Mchoro katika hatua

Labda, mimi, kama wajenzi wote wa Arduino, nilikuwa na aina fulani ya wazo la kichaa kichwani mwangu. Niliagiza sehemu zote muhimu kutoka China. Ilitubidi tungojee kwa muda mrefu sana, lakini mshirika wa bodi ya Arduino Uno na onyesho la Nokia 5110 LCD viliwasilishwa kabla ya ratiba. Kwa kuwa sikuwa na ufahamu wa umeme na programu hapo awali, niliamua kutopoteza muda na nikaanza kujifunza jinsi ya kuonyesha habari kwenye moduli hii.

Jambo la kwanza nililofanya ni Google na nikapata uchapishaji wa "Arduino, moduli ya LCD ya Nokia 5110 na alfabeti ya Cyrillic" kutoka kwa mwandishi. Na kisha nikagundua kuwa kila kitu ambacho nilikuwa nimepanga hapo awali haingekuwa rahisi sana kufanya.

Niligundua alfabeti ya Cyrillic, kila kitu ni rahisi huko, siwezi kunakili-kubandika chapisho la mwisho, lakini kuna shida halisi na picha. Kazi ni: unahitaji kuteka picha na kuipakia kwenye maonyesho. Inakabiliwa na shida ya kwanza, imeingia Jumatano Programu ya Arduino Niliona kuwa hakuna kitu kama "Ingiza - Picha", lakini unahitaji kuandika picha na nambari fulani katika mfumo wa nambari ya hex. Nilipata wahariri kadhaa, lakini haikuwa hivyo. Picha haijaonyeshwa vya kutosha. Nilianza kutafuta matatizo ambayo yanaweza kuwa.

Kupitia rundo la majaribio, majaribio na majaribio, nilikuja na kanuni ambayo nitashiriki nawe:

1) Unahitaji kupata picha yenyewe, katika umbizo nyeusi na nyeupe .bmp na kiendelezi cha pikseli 84 x 48.
Hii inaweza kufanyika kwa rundo la njia kwa karibu kila mtu. mhariri wa picha Kuna kazi ya "Hifadhi kama" ambapo tunabainisha vigezo muhimu.
Nilifanya katika corelDRAW. Tunapata kitu sawa. Ni muhimu kufafanua kwamba jina la picha lazima lihifadhiwe Mpangilio wa Kilatini keyboards, kwa sababu programu inayofuata haitaweza kuifungua.

2) Ikiwa ni lazima, unaweza kuhariri picha katika rangi isiyo ya kawaida, kuna zana kadhaa rahisi na za kuvutia huko.

3) Kwa kutumia hii tunapata nambari ya hex ya picha.

4) Ingiza kanuni hii V msimbo wa programu Arduino na upakie kwenye ubao:

// SCK - Pin 8 // MOSI - Pin 9 // DC - Pin 10 // RST - Pin 11 // CS - Pin 12 // #jumuisha LCD5110 myGLCD(8,9,10,11,12); uint8_t OKO wa nje; kuelea y; uint8_t* bm; nafasi ya ndani; usanidi utupu() ( myGLCD.InitLCD(); ) kitanzi tupu() ( myGLCD.clrScr(); myGLCD.drawBitmap(0, 0, OKO, 84, 48); myGLCD.sasisha(); kuchelewa(2000);)

#pamoja na const uint8_t OKO PROGMEM=( // Imenakiliwa msimbo wa hex zana za GLCD );

Wakati wa kukusanya vifaa kwenye Arduino, mara nyingi tunakabiliwa na haja ya pato la uhuru wa habari. Na, kama kawaida, ninataka suluhisho liwe la bei rahisi. Na hapa inageuka kuwa uchaguzi wa vifaa vya gharama nafuu sio tajiri sana.

Ikiwa kuna habari kidogo iliyoonyeshwa, ni rahisi kutumia viashiria vya sehemu saba. Wao ni mkali sana na tofauti. Rula kama hizo za tarakimu 4 za inchi 0.36 juu kwenye TM1637 zinauzwa kwa senti 70 na zinadhibitiwa na pini 2 tu. Kama unavyoweza kudhani, zimeundwa sana kuonyesha wakati, ingawa zinaweza kuonyesha kwa urahisi, kwa mfano, joto, shinikizo na vigezo vingine, ambavyo tarakimu 4 zinatosha.

Lakini ikiwa kuna habari nyingi za pato, hazitafanya kazi. Katika hali kama hizi, maonyesho ya "watu" LCD 1602 hutumiwa mara nyingi, ambayo yana uwezo wa kuonyesha mistari 2 ya herufi 16 kwa bei ya pesa moja na nusu. Kwa njia hii unaweza kuonyesha habari zaidi.

Ndugu yake ya juu zaidi ya safu-4 ataonyesha habari zaidi, lakini inagharimu zaidi, kama dola 5, na saizi yake tayari ni kubwa.

Vifaa hivi vyote vina faida na hasara zao. Hasara kuu ni pamoja na ukosefu wa msaada kwa lugha ya Kirusi, kwani meza ya kificho imefungwa sana kwenye chip, na kutokuwa na uwezo wa kuonyesha graphics. Kwa kusema kabisa, inawezekana kuwa na firmware ya Cyrillic katika vifaa vile, lakini hizi zinauzwa hasa nchini Urusi na kwa bei zisizofaa.
Ikiwa hasara hizi ni za kuamua kwa matumizi katika kifaa kinachoundwa na azimio la saizi 84x48 katika picha nyeusi na nyeupe inafaa kwako, basi unapaswa kuzingatia onyesho la Nokia 5110 Mara moja kulikuwa na moja, lakini ilikuwa haijakamilika , na katika maeneo yaliyopitwa na wakati. Hasa, ilisemwa hapo kwamba haiwezekani kuonyesha alfabeti ya Cyrillic. Leo hakuna shida kama hiyo.

Shujaa wa ukaguzi wetu, bei ya chini ya pesa kadhaa, alikuja kwangu kwenye sanduku la kadibodi la kudumu na filamu ya kinga kwenye skrini, ambayo shukrani nyingi kwa muuzaji. Kifaa kina ukubwa wa bodi ya mzunguko iliyochapishwa ya 45x45 mm ya PCB nyekundu na skrini ya LCD yenye azimio la saizi 84x48 na ukubwa wa 40x25 mm. Kifaa kina uzito wa 15 g Ina backlight ya bluu ambayo inaweza kuzimwa. Kwa Arduino, onyesho hili litazima pini 5 za dijitali, bila kuhesabu usambazaji wa nishati. Ubao una safu 2 za pini zinazofanana, kwa hivyo unaweza kutumia safu moja tu. Kati ya hizi, 5 ni za udhibiti, 2 za nguvu na moja ya kuwasha taa ya nyuma. Ili kuwasha taa ya nyuma, unahitaji kufupisha pini ya LIGHT chini (kuna toleo lingine la onyesho hili, kama wanasema - kwenye ubao wa bluu, ambapo pini hii imeunganishwa na usambazaji wa umeme). Ubao huja bila kuuzwa, masega mawili yamejumuishwa kwenye kit.
Kwa hiyo, tunaunganisha pini za SCLK, DIN, DC, CE na RTS kwa pini za Arduino, kwa mfano, 3, 4, 5, 6, 7. Pini ya VCC hadi 3.3V (Hasa 3.3, si 5!), kuunganisha ardhi na kupakua maktaba.
Utendakazi kutoka kwa maktaba hii hukuruhusu kuonyesha picha za asili (mstari, mduara, mstatili, n.k.), picha mbaya na maandishi. Maktaba ina mfano unaoonyesha uwezo wake, nakushauri uiangalie. Lakini ili maandishi yaonekane kwa Kirusi, itabidi ubadilishe fonti. Lakini, kwa bahati nzuri, watu wema tayari wamefanya kila kitu kwa ajili yetu na faili ya uingizwaji inaweza kupakuliwa.
Nitatoa mfano wa mchoro hapa chini, na matokeo ya pato la maandishi katika Kirusi yanaweza kuonekana hapo juu. Ni rahisi kuhesabu kuwa kwa saizi ndogo zaidi ya fonti (Na. 1), unaweza kuonyesha herufi 84 (14 katika mistari 6), ambayo inatosha kuonyesha, kwa mfano, ujumbe wa uchunguzi wa kina. Fonti #2 ni kubwa mara mbili.
Azimio la skrini hukuruhusu kuonyesha picha nzuri za rangi mbili, ambazo zinaweza kutumika kama ikoni kwenye programu.

Kuunda icons vile ni rahisi sana. Chini ya spoiler nitakuonyesha jinsi hii inafanywa.

Jinsi ya kuunda haraka picha mbaya kwa kutumia mfano wa nembo ya tovuti ya MYSKU

Kwanza, hebu tuchukue picha ya skrini ya skrini ya nembo (Print Screen key).
Zindua Rangi kutoka kwa programu za kawaida na ubonyeze Ctrl+V. Skrini nzima iliyo na nembo iko mikononi mwetu.


Chagua kipande unachotaka na ubonyeze kitufe cha TRIM. Wacha tupate kipande chetu.

Sasa tunahitaji kugeuza kipande hiki kuwa rangi mbili. Rangi yenyewe inaweza kushughulikia hili. Bofya "Hifadhi Kama" na uchague aina ya "Picha ya Monochrome (*.bmp)". Tunapuuza onyo la mhariri na bofya SAWA na kuona picha ifuatayo:

Sasa tunahitaji kugeuza seti hii ya saizi kuwa safu ya misimbo ya Arduino. Nilipata moja ambayo inashughulikia kazi hii.
Anahitaji kuwasilisha faili ya bmp kama ingizo, lakini lazima iwe na rangi 256! Kwa hivyo tutabofya "Hifadhi Kama" tena na uchague aina ya "256 rangi ya bmp". Sasa hebu tukumbuke vipimo vya pande za faili inayosababishwa, utahitaji kuzionyesha kwenye mchoro (angalia Rangi chini kwenye upau wa hali au kwa kufungua Sifa za Faili -> kichupo cha Maelezo) na uende kwa kibadilishaji mkondoni. .


Wacha tuchague faili yetu, angalia nambari za hexadecimal na ubofye BADILISHA.
Wacha tupate safu tunayohitaji:


Tunakili safu hii kwenye mchoro, tuunganishe na tuone kinachotokea.


Sasa hebu tuzima taa ya nyuma na tuone jinsi picha zitakavyoonekana bila hiyo.


Kama unaweza kuona, maandishi na ikoni zote zinasomeka. Zaidi ya hayo, kadiri mwanga unavyong'aa, ndivyo usomaji unavyoweza kusomeka (oh, nakumbuka jinsi ilivyokuwa kupendeza kutumia Nokia 1100 siku ya jua, wakati watu walificha simu zao zilizo na matrices ya rangi kwenye kivuli ili kupiga nambari). Kwa ujumla, unaweza kutumia onyesho katika hali hii ikiwa kuna mwanga wa kutosha au taa ya nyuma inaingilia, au kuokoa nguvu ya betri. Ikiwa skrini ya mtu ni ngumu kuona, cheza na utofautishaji kwenye mchoro. Tofauti bora na bila backlight hupatikana kwa maadili tofauti, hii lazima izingatiwe.

Mchoro wa mfano wa kuonyesha maandishi na picha

#pamoja na #pamoja na // pini 3 - Saa ya kuzima (SCLK) // pini 4 - Data nyingi nje (DIN) // pini 5 - Chagua data/Amri (D/C) // pini 6 - chagua chipu ya LCD (CS) // pini 7 - LCD reset (RST) Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7); const static unsigned char PROGMEM ku59x39 = ( 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0, 0x0, xff, 0xff, 0xff, 0xff, 0xf0, 0xe0, 0x1f, 0xff, 0xff, 0xe0, 0x0, 0x3, 0xf0, 0xfc, 0xf, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 7 0x0, 0x0, 0x7f, 0xc0, 0xff, 0xe3, 0xff, 0x0, 0x0, 0x7f, 0xff, 0x90, 0xff, 0xf1, 0xfc, 0x0, 0x7, 0xff, 0xff, 0xf8, 0, 0xfc 0xff, 0xfe, 0x30, 0xff, 0xfc, 0x40, 0x3, 0xff, 0xff, 0xfc, 0x70, 0xff, 0xfe, 0x0, 0xf, 0xff, 0xff, 0xf8, 0xf0, 0xf0, 0xf0, 0xff, 0x0 , 0xf0, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xe1, 0xf0, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xe3, 0xf0, 0xff, 0xff, 0xc30, 0ff, 0xff, 0xf xff, 0x3, 0xff, 0xff, 0xff, 0x83, 0xf0, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0x87, 0xf0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf , 0xff, 0xff , 0xff, 0x87, 0xf0, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0x1f, 0x87, 0xf0, 0xff, 0xff, 0xf8, 0x7f, 0x0, 0x0, 0, xf 0x38, 0x0, 0x0, 0x1, 0xf0, 0xff, 0xff, 0xfc, 0x20, 0x0, 0x0, 0xbf, 0xf0, 0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff0, 0xff, 0xff, 0 x3f, 0x1, 0xff, 0xf0, 0xff, 0xff, 0xfe, 0x3, 0xf0, 0x0, 0x1, 0xf0, 0xff, 0xff, 0xfe, 0xf, 0x80, 0x0, 0x0, 0xf0, 0x0, xff f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xc, 0x3, 0xff, 0xe1, 0xf0, 0xff, 0xff, 0xff, 0x0, 0x1f, 0xff, 0xc0, 0xf0, 0xff, xf0, 0x8 0xf0, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0x9c, 0xf0, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0x38, 0xf0, 0xff, 0xff, 0x30, 0x3, 9 xff, 0xff, 0xff " ff, 0xce, 0x7f , 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x9e, 0x7f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x8c, 0xff, 0xff, 0x00, 0x00 , 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xf0); usanidi utupu() ( display.begin(); display.setContrast(50); display.setTextSize(1); display.setTextColor(BLACK); // weka rangi ya maandishi) kitanzi batili() ( display.clearDisplay(); onyesha .drawBitmap(10, 5, ku59x39, 59, 39, BLACK display.display(); display.setCursor(0,0); ; display.display(2000);


Kweli, na kwa kuwa Arduino (Processor+RAM+Booloader-BIOS)+drive (EEPROM) + mfumo wa pembejeo/pato (IRDA Remote na Nokia 5110) ni, kwa kweli, kompyuta iliyojaa, basi kwa nini usiandike full-fledged. mchezo kwa ajili yake? Bila shaka, kompyuta yetu ya Arduino haitaweza kushughulikia mchezo kama vile GTA, lakini inaweza kushughulikia kwa urahisi toy ya kawaida! Wacha tuandike mchezo wa nyakati zote - Tetris.
Kwa programu yoyote, hii ni kama mazoezi ya asubuhi, zoezi rahisi kwa ubongo, kwa hivyo endelea! Na ni kama hii haijawahi kutokea hapo awali kwenye muska. Na mchezo utaonyesha uwezo wa somo.
Kama mfumo wa ingizo, niliamua kutumia kidhibiti cha mbali cha IRDA kutoka kwa kifaa CHOCHOTE. Kwa suluhisho hili, tunahitaji moja tu, kwa gharama ya rubles 4 kila moja. Na udhibiti wa kijijini wa IR unaweza kupatikana katika ghorofa yoyote. Kwa uigizaji wa sauti, tutatumia pia tweeter ya piezo kutoka kwa ubao wa mama wa zamani - hii itakuwa analog yetu ya bajeti ya multimedia)). Moja ya baridi zaidi inakuja kwangu sasa, lakini hii tayari inapandisha bei ya kompyuta yetu kuu kwa dola nzima! Tutaweza kwa sasa. Itakuwa pamoja naye tayari.
Kwenye ubao wa mkate tunaunganisha vifaa vya pato na pembejeo na "multimedia" yetu. Ilibadilika kama hii:


Nilitumia Arduino Uno, kwa kuwa tayari ina 3.3V tunayohitaji, lakini ikiwa unatumia Mini, itabidi kupata 3.3 inayohitajika kutoka kwa volts 5 kwa skrini. Njia rahisi kutoka kwenye mtandao ni kuweka diode mbili za silicon katika mfululizo (chagua).
Ili sio kuchora mchoro wa umeme, nitaonyesha tu pini za Arduino nilizotumia.
Kuunganisha onyesho la Nokia 5110:
pini 3 - saa ya kuzima (SCLK)
pini 4 - data ya serial nje (DIN)
pini 5 - Data/Amri chagua (D/C)
pini 6 - chagua chipu ya LCD (CS)
pini 7 - kuweka upya LCD (RST)
Ili kuangazia pini NURU ya onyesho, tunaitupa kwa GND ya Arduino. (Kwa bodi nyekundu tu!). Ugavi wa umeme kwa 3.3V. Chini hadi GND.
Muunganisho wa Kipokea IR:
pini 8 - IR (kudhibiti). Ugavi wa nishati katika +5V na GND mtawalia.
Kuunganisha tweeter ya piezo:
pini 9 - spika, Ground hadi GND.
Baada ya ufungaji, pakia mchoro

Mchoro wa mchezo wa Tetris

//// © Klop 2017 #include #pamoja na #pamoja na #pamoja na #fafanua rk 4 // upana wa mraba #fafanua rz 5 // upana wa kiti #fafanua smeX 1 #fafanua smeY 1 #fafanua MaxX 10 // nambari ya glasi ya viti kwa mlalo #fafanua spika 9 #fafanua RECV_PIN 8 // mguu kwenye kipokezi cha IRDA // pini 3 - Saa ya kuzima (SCLK) // pin 4 - Data ya serial nje (DIN) // pin 5 - Data/Amri chagua (D/C) // pin 6 - LCD chip select (CS) // pin 7 - LCD reset (RST) Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7); IRrecv irrecv(RECV_PIN); decode_results matokeo; byte mstacan; byte Lst,SmeH, center, NumNext; byte MaxY; // idadi ya glasi ya maeneo kwa wima int dxx, dyy, FigX, FigY, Ushindi, myspeed, tempspeed; haijasainiwa kwa muda mrefu sawa, kushoto, pravo, vniz, myrecord; unsigned long flffirst=1234; // uzinduzi wa kwanza lebo baiti fig= (((0,0,0,0), (0,0,0,0), (0,0,0,0), (0,0,0,0)) , ((0,1,0,0), (0,1,0,0), (0,1,0,0), (0,1,0,0)), ((0,0,0) ,0), (0,1,1,0), (0,1,1,0), (0,0,0,0)), ((0,1,0,0), (0,1 ,1,0), (0,0,1,0), (0,0,0,0)), (0,1,0,0), (0,1,0,0), (0) ,1,1,0), (0,0,0,0)), ((0,1,0,0), (0,1,1,0), (0,1,0,0), (0,0,0,0)), ((0,0,1,0), (0,1,1,0), (0,1,0,0), (0,0,0,0) )), ((0,0,1,0), (0,0,1,0), (0,1,1,0), (0,0,0,0)), ((0,0) ,0,0), //8 (0,0,0,0), (0,0,0,0), (0,0,0,0))); //================================================ ============= batili mybeep () // sauti (analogWrite(mzungumzaji, 100); chelewesha(100); analogAndika(mzungumzaji, 0); ) //======= =============== ========================= utupu figmove(byte a, byte b) ( kwa (baiti i=0;i<4;i++) for (byte j=0;j<4;j++) fig[a][i][j]=fig[b][i][j]; } //============================================== void figinit(byte a) { for (byte i=0;i<4;i++) for (byte j=0;j<4;j++) { fig[i][j]=fig[i][j]; if (fig[a][j][i]==1) // покажем след фигуру display.fillRect(i*rz+60, 20+(j)*rz, rk , rk, BLACK); else display.fillRect(i*rz+60, 20+(j)*rz, rk , rk, WHITE); } display.display(); NumNext=a; tempspeed=myspeed-(Victory/30)*50; // через каждые 30 линий увеличим скорость падения; dxx=0; for (byte i=0;i0) display.fillRect(i*rz+1, SmeH+(j-4)*rz, rk , rk, BLACK); else display.fillRect(i*rz+1, SmeH+(j-4)*rz, rk , rk, WHITE); ds(Ushindi,1); display.display(); ) //============================================== =============== = batili ds(int aa, int b) ( display.fillRect(55, 10, 29, 10, WHITE); display.setCursor(55,b*10) ); display.println(aa) //=== =============================== ========================= bool ifig(int dx , int dy) (int i,j; bendera bool=kweli; bool pov=false; kwa (i=0;i MaxX-1) dx=-1;// jaribu kuisogeza mbali na ukuta upande wa kulia kwa 1 ) ) ) kwa (i=0;i<4;i++) for (j=0;j<4;j++) if (fig[j][i]==1) if (i+FigX+dx<0 || i+FigX+dx>MaxX-1 | FigY+j+dy>MaxY-1 || mstacan>0) (bendera=uongo; vunja;) // imeangaliwa kwa viwianishi vipya ikiwa (bendera) (FigX=FigX+dx; FigY=FigY+dy;byte k=0; kwa (i=0;i<4;i++) for (j=0;j<4;j++) if (fig[j][i]==1) {mstacan=1; dxx=0; } } // переместили фигуру на новые координаты else { if (pov) figmove(0,8); for (i=0;i<4;i++) // восстановили фигуру for (j=0;j<4;j++) if (fig[j][i]==1) mstacan=1; } return(flag); } //================================================ void clearstacan() { for (byte i=0;imyrecord) ( myrecord=Ushindi; EEPROM_write(16, myrecord); ) display.setCursor(5,0); display.print("Rekodi"); display.setCursor(5,10); display.print(myrecord); display.display(); display.setCursor(5,20); kuchelewa(2000); irrecv.resume(); display.println("Bonyeza"); tb=getbutton("Sawa"); ikiwa (tb!=sawa) ( ok=tb; levo=getbutton("Kushoto"); pravo=getbutton("Kulia"); vniz=getbutton("Chini"); EEPROM_write(0, sawa); EEPROM_write(4, levo EEPROM_write(8, pravo_write(12, vniz) display.fillRect(5, 0, (MaxX-1)*rz, 40, WHITE); kasi yangu=800; tempspeed=kasi yangu; Ushindi=0; ) //============================================== ================ = usanidi batili() ( tr ndefu isiyo na saini; neno gg=0; randomSeed(analogRead(0)); irrecv.enableIRIn(); // Anzisha IRDA mpokeaji display.begin(); display.setTextSize (1) ; kioo katika saizi MaxY=display.height()/rz+4 katika cubes SmeH=display.height()%rz ya juu kwa ajili ya kuonyesha random(7); (20, tr); ikiwa (tr==flffirst) EEPROM_soma(16, myrecord) mwingine (myrecord=0; EEPROM_write(16, myrecord); EEPROM_write(20, flffirst);) newgame(); ================================================= =========== utupu dvoiki() ( kwa (byte i=0;i
Na unaweza kupigana. Mchezo huu unaruhusu kumfunga kwa udhibiti wowote wa mbali. Ili kufanya hivyo, mwanzoni mwa mchezo, unapoulizwa "Bonyeza Sawa," bonyeza kitufe kwenye udhibiti wa kijijini ambao utakuwa na jukumu la kuzunguka takwimu. Ikiwa kidhibiti cha mbali cha mchezo tayari kinajulikana, mchezo utaanza mara moja. Ikiwa udhibiti wa kijijini ni mpya, basi msimbo wa kifungo cha OK hautafanana na kilichokaririwa na mchezo utakuhitaji ubonyeze vifungo vya "Kushoto", "Kulia" na "Chini" kwa mlolongo. Vifungo hivi vitarekodiwa kwenye kumbukumbu isiyo na tete ya Arduino na baadaye udhibiti huu wa mbali utatambuliwa mara moja baada ya kubonyeza kitufe cha "Sawa".


Unapo "kushindwa" kwenye mstari uliokusanywa, squeak itachezwa. Inatekelezwa kwa misingi ya pini kadhaa za Arduino (kwa upande wetu 9) ili kuzalisha PWM kwa mzunguko fulani.
Mchezo unaauni sifa zote za mchezo wa kawaida. Pia kuna kidokezo cha takwimu inayofuata na alama ya sasa. Mchezo huhifadhi rekodi. Thamani hii imehifadhiwa katika kumbukumbu isiyo tete ya Arduino. Ili kuweka upya rekodi, badilisha tu thamani flfrst=1234 katika mchoro hadi thamani nyingine yoyote. Mchezo pia huongeza kasi ya kushuka kiotomatiki kila mistari 30 iliyofutwa, kwa hivyo hutaweza kucheza kwa muda usiojulikana). Mchoro haukuimarishwa au kuendeshwa kwa uangalifu, lakini uliandikwa kwa burudani kwa burudani. Ikiwa mtu yeyote atapata kosa, andika. Kuhusu ©. Unaruhusiwa kuhariri mchoro unavyotaka. Wakati tu wa kuchapisha chaguo zako mahali fulani, tafadhali onyesha kiungo cha chanzo asili).
Kwa nini nilifanya - wikendi ndefu + "kwa upendo wa sanaa." Ikiwa binti yangu alikuwa mdogo, labda ningemtengenezea mashine ndogo ya chumba cha mwanasesere mnamo Machi 8, kwa wakati. Ningeongeza michezo michache kama Nyoka na Arkanoid, na pengine kukata mwili kutoka kwa PCB. Binti yangu pekee tayari anatetea udaktari wake mwaka huu, kwa hiyo ni kukosa, lakini labda wazo hili litakuwa na manufaa kwa mtu mwingine).

Wacha tujumuishe kwa onyesho la Nokia 5110:
faida
+Uwezekano wa kuonyesha michoro;
+Hakuna matatizo na alfabeti ya Cyrillic;
+ Uzito mdogo;
+Uwiano bora wa vipimo/idadi ya taarifa inayoonyeshwa;
+Faida za teknolojia ya LCD inayotumika ni matumizi ya chini ya nguvu na usomaji mzuri katika mwanga mkali;
+ Backlight inayoweza kubadilika;
+Bei.

Minuses
-The backlight ni kutofautiana;
-Picha ni nyeusi na nyeupe (hakuna vivuli);
-Haja ya kutunza 3.3V, sio kila Arduino ina voltage kama hiyo.

Uamuzi: Kwa pesa zake, kulingana na jumla ya sifa zake, inachukua niche yake kwa ujasiri, sio bila sababu kwamba ni ini ya muda mrefu kati ya vifaa vya kuonyesha kwa Arduino.

Ninapanga kununua +102 Ongeza kwa vipendwa Nilipenda uhakiki +148 +269

Kumbuka nyakati hizo wakati simu za mkononi zilikuwa "oaky", zilikuwa na kibodi tofauti ya kushinikiza-kifungo na kuonyesha ndogo ya kioo ya kioevu ya monochrome?

Sasa soko hili ni la kila aina ya iPhones, Galaxy, nk, lakini maonyesho yanapata matumizi mapya: Miradi ya DIY!

Onyesho la pikseli 84x48 nyeusi na nyeupe ambalo tutazingatia lilitumika katika simu za Nokia 3310 Faida yao kuu ni urahisi wa kufanya kazi. Onyesho kama hilo litafaa kikamilifu katika mradi wako kwa kubadilishana habari na mtumiaji.

Katika nakala hii tutaangalia kudhibiti onyesho hili la picha kwa kutumia Arduino. Vipengele vyote vya uunganisho, sifa za kiufundi za onyesho na programu ya Arduino huzingatiwa.

Nyenzo zinazohitajika

  • Arduino au msaidizi wake.
  • Viunganishi.
  • Bodi ya mzunguko.

Vipimo vya onyesho la Nokia 5110

Kabla ya kuunganisha onyesho na programu ya Arduino, wacha tuangalie habari ya jumla juu yake.

Pinout

Ili kuunganisha na kusambaza data kwenye maonyesho, safu mbili za sambamba za viunganisho 8 hutumiwa. Kila pini imewekwa alama nyuma ya onyesho.


Kama ilivyoelezwa tayari, pini zimeunganishwa kwa usawa kwa kila mmoja. Taarifa kuhusu madhumuni ya kila kiunganishi imetolewa hapa chini.


Lishe

Tayari umeona kuwa onyesho la 5110 LCD lina viunganishi viwili vya nguvu. Ya kwanza ni muhimu zaidi - kuwezesha mantiki ya kuonyesha. Database inasema kwamba inapaswa kuchaguliwa katika aina mbalimbali za 2.7 - 3.3 V. Katika operesheni ya kawaida, maonyesho yatatumia kutoka 6 hadi 7 mA.

Kiunganishi cha pili cha nguvu ni cha kuonyesha mwangaza nyuma. Ikiwa utaondoa maonyesho yenyewe kutoka kwa ubao (hii sio lazima, unaweza tu kuangalia takwimu hapa chini), utaona kwamba backlight inatekelezwa kwa urahisi sana: LED nne nyeupe, ambazo ziko kwenye pembe za bodi. Tafadhali kumbuka kuwa hakuna vipingamizi vya sasa vya kuzuia.


Kwa hiyo unahitaji kuwa makini zaidi na mlo wako. Unaweza kutumia kizuia kikwazo cha sasa wakati wa kuunganisha pini ya "LED" au kutumia voltage ya juu ya usambazaji wa 3.3 V. Usisahau kwamba LED zinaweza kunyonya mikondo ya juu! Bila kikomo, watatoa takriban 100 mA kwa voltage ya usambazaji ya 3.3 V.

Kiolesura cha kudhibiti

Onyesho lina kidhibiti kilichojengewa ndani: Philips PCD8544, ambacho hubadilisha kiolesura kikubwa sambamba kuwa cha mfululizo kinachofaa zaidi. PCD8544 inadhibitiwa kwa kutumia itifaki ya serial ya synchronous, ambayo ni sawa na SPI. Kumbuka kuwa kuna kihesabu wakati (SCLK) na pini za data za serial (DN), pamoja na chaguo la chipu amilifu-chini (SCE).

Juu ya viunganisho vya serial vinavyozingatiwa, kuna kiunganishi kingine kilichowekwa - D / C, kwa njia ambayo habari hupokelewa kuhusu ikiwa data inayopitishwa inaweza kuonyeshwa.

Kwa orodha ya amri, angalia sehemu ya "Maelekezo" ya hifadhidata ya PCD8544 (ukurasa wa 11). Kuna amri zinazofuta onyesho, kugeuza pikseli, kuzima nishati, n.k.

Kukusanya na kuunganisha onyesho la 5110

Kabla ya kupakia mchoro na kuhamisha data kwenye maonyesho, unahitaji kuelewa uunganisho. Ili kufanya hivyo, unahitaji kutatua suala la kukusanyika na kuunganisha kwa Arduino.

Bunge

Ili "kukusanya" onyesho, unaweza kuhitaji viunganishi. Vipande 8 vitatosha. Unaweza kutumia miguu ya moja kwa moja au ya digrii 90. Inategemea matumizi zaidi. Ikiwa unapanga kutumia bodi ya mzunguko, reli yenye viunganisho vya moja kwa moja itakuwa chaguo bora zaidi.

Onyesho la LCD kutoka Nokia 5110 lililowekwa kwenye ubao mdogo wa mzunguko:


Unaweza pia kuuza moja kwa moja adapta kwenye onyesho.

Kuunganisha Onyesho la 5110 kwa Arduino

Katika mfano huu tutaunganisha onyesho la LCD kwenye Arduino. Mbinu sawa inaweza kubadilishwa kwa urahisi kwa bodi nyingine na microcontrollers. Ili kuunganisha pini za uhamisho wa data - SCLK na DN(MOSI) - tunatumia pini za Arduino SPI, ambazo hutoa uhamisho wa data haraka. Chagua chip (SCE), weka upya (RST), na pini za data/control (D/C) zinaweza kuunganishwa kwa pini yoyote ya kidijitali. Pato kutoka kwa LED imeunganishwa na pini kwenye Arduino, ambayo inasaidia urekebishaji wa PWM. Shukrani kwa hili, marekebisho rahisi ya mwangaza wa backlight inawezekana.

Kwa bahati mbaya, voltage ya juu ya usambazaji wa onyesho la 5110 inaweza kufikia volts 3.6, kwa hivyo haiwezi kushikamana moja kwa moja na pato la kawaida la 5 V kwenye Arduino. Voltage inahitaji kurekebishwa. Ipasavyo, chaguzi kadhaa za uunganisho zinaonekana.

Uunganisho wa moja kwa moja kwa Arduino

Chaguo rahisi ni kuunganisha kwa Arduino moja kwa moja. Katika kesi hii, unahitaji kutumia Bodi za Arduino Pro 3.3V/8MHz au 3.3V Arduino Pro Mini. Chaguo lililopendekezwa hapa chini linafanya kazi na bodi za Arduino 5V. Hili ni chaguo la kufanya kazi, lakini muda wa kuonyesha unaweza kupunguzwa kidogo.


Pini zimeunganishwa kama ifuatavyo:


Chaguo zuri na la bei nafuu la kutoa ulinzi wa ziada ni kusakinisha vipinga kati ya pini za data kutoka Arduino hadi LCD 5110. Ikiwa unatumia Arduino Uno(au bodi sawa ya 5-volt), unaweza kutumia vipinga na thamani ya nominella ya 10 kOhm na 1 kOhm. Mchoro wa uunganisho wa kuonyesha kwa kutumia vipinga unaonyeshwa kwenye takwimu hapa chini:


Uunganisho ni sawa na katika mfano wa kwanza, lakini kupinga imewekwa katika kila mzunguko wa ishara. Vipimo vya kOhm 10 vimewekwa kati ya pini za SCLK, DN, D/C na RST. Kipinga cha 1 kOhm kiko kati ya pini za SCE na pini 7. Naam, 330 Ohms inabakia kati ya pini ya 9 na pini yenye LED. na pini 7.

Vigeuzi vya kiwango

Chaguo la tatu la uunganisho ni kutumia vigeuzi vya kiwango ili kubadili kati ya 5 na 3.3 V. Kwa madhumuni haya, unaweza kutumia Kigeuzi cha Kiwango cha Bi-Directional Logic au moduli za TXB0104.


Kwa bahati mbaya, kuna pembejeo tano kwa ishara ya 3.3 V kwenye onyesho, na nne kwenye vibadilishaji vya kiwango. Unaweza kuacha pato la RTS juu (kwa kuunganisha kwa kutumia 10k ohm resistor). Kwa hivyo, hutaweza tena kudhibiti jinsi onyesho linavyowashwa, lakini vitendaji vingine vyote vitapatikana.

Mfano wa kwanza wa mchoro wa Arduino: Onyesho la LCD

Baada ya kuunganishwa kwa mafanikio, unaweza kuendelea kupakua mchoro na kuonyesha data kwenye maonyesho!

Programu ya Arduino

Maoni katika msimbo ulio hapo juu yanapaswa kukusaidia kuelewa mpango. Vitendo vingi hufanyika ndani ya lcdFunTime() chaguo la kukokotoa.

Mchoro katika hatua

Baada ya kupakia kwenye Arduino, mchoro utaanza kufanya kazi na kuzindua onyesho - seti ya uhuishaji wa kawaida na upimaji wa kazi za picha. Kwanza, hebu tuonyeshe saizi chache. Baada ya hayo, tutaendelea kuonyesha mistari, rectangles na miduara, kupakia bitmap, nk.


Baada ya kukamilisha mchoro, mfuatiliaji atabadilika kwa hali ya kuhamisha data kupitia itifaki ya serial. Fungua ufuatiliaji wa serial (na kiwango cha baud cha 9600 bps). Unachochapisha kwenye kifuatiliaji cha serial kitaonekana kwenye kifuatiliaji cha LCD.

Ikiwa unavutiwa na uwezo wa kuonyesha wa picha mbaya, endelea. Tutaangalia jinsi unavyoweza kuleta picha yako ya 84x48 bitmap na kuionyesha kwenye skrini.

Mfano wa pili mchoro wa Arduino: kupakia na kuonyesha bitmaps

Katika mfano huu tutaunda bitmap mpya ya 84x48, kuunganisha kwenye msimbo wa Arduino na kuituma kwa kufuatilia LCD.


Tafuta/Unda/Badilisha bitmap

Kwanza, pata picha unayotaka kuonyesha kwenye skrini ya LCD 5110 Hutaweza kuipanua sana hadi saizi 84x48, lakini bado inawezekana. Hapa kuna baadhi ya mifano:

Baada ya kuchagua picha, unahitaji kurekebisha: kuifanya monochrome (rangi 2-bit); weka saizi 84x48. Unaweza kutumia vihariri wengi vya picha kwa hili. Ikiwa ni pamoja na Rangi, ikiwa una Windows. Hifadhi picha inayosababisha.

Kubadilisha bitmap kuwa safu

Hatua inayofuata ni kubadilisha faili hii kuwa safu ya herufi 504. Kwa kufanya hivyo, unaweza kutumia programu mbalimbali. Kwa mfano, Msaidizi wa LCD.

Ili kupakia picha kwenye Mratibu wa LCD, nenda kwenye Faili > Pakia Picha. Dirisha lenye picha ya onyesho la kukagua linapaswa kufunguka. Hakikisha kuwa picha ni saizi sahihi - upana wa pikseli 84, urefu wa pikseli 48, na uelekeo wa Byte umewekwa kuwa Wima, Ukubwa wa kuishia hadi Kidogo. Mipangilio iliyosalia ya chaguo-msingi inapaswa kuwekwa ipasavyo (pikseli 8/baiti)

Baada ya hayo, nenda kwenye kichupo cha Faili > Hifadhi towe ili kutoa faili ya maandishi ya muda. Fungua faili hii ya maandishi ili kutazama safu yako mpya nzuri. Badilisha aina ya mkusanyiko kuwa char (sio haijatiwa saini au const). Pia hakikisha kwamba safu imetajwa kwa usahihi (hakuna dashi, haianza na nambari, nk).

Ingiza kwenye mchoro na uchore!

Nakili safu iliyoundwa kwenye mchoro wa Arduino. Unaweza kutumia mchoro kutoka kwa mfano wa kwanza. Bandika safu yako popote. Sasa, ili kuonyesha mchoro wako, badilisha usanidi() na kitanzi() kwenye mchoro wako na mistari iliyo hapa chini (weka kazi zingine na viwezo sawa):

// ...vigeu, viunga na safu ya bitmap vimefafanuliwa hapo juu

lcdAnza (); // Kuweka pini na kuanzisha onyesho la LCD

setContrast(60); // Rekebisha utofautishaji (aina inayopendekezwa ni kutoka 40 hadi 60)

setBitmap(flameBitmap); // flameBitmap inapaswa kubadilishwa na jina la safu yako

sasishaDisplay(); //Sasisha onyesho ili kuonyesha safu

// Kazi za udhibiti na michoro kwenye onyesho la LCD zimefafanuliwa hapa chini...

Kweli, iligeuka kuwa nzuri? Miongoni mwa mambo mengine, unaweza kuagiza picha nyingi na kuunda uhuishaji mdogo! Ijaribu, nina hakika utaipenda!

Viungo vya kupakua programu za ziada, maktaba na hifadhidata

Laha za data za onyesho la LCD na viendeshi
  • Karatasi ya data ya LCD - Sio sawa na 5110, lakini inafanana sana katika vipimo
Maktaba ya Arduino na michoro
  • Maktaba ya PCD8544 Arduino - Maktaba ya kufanya kazi ya Arduino na kiendeshi cha PCD8544 LCD
Programu za kuunda picha mbaya
  • TheDotFactory - Chombo bora cha kuunda safu maalum za fonti

Acha maoni yako, maswali na ushiriki uzoefu wako wa kibinafsi hapa chini. Mawazo mapya na miradi mara nyingi huzaliwa katika majadiliano!

Makala mpya

● Mradi wa 16: Kiashiria cha picha. Uhusiano Onyesho la Nokia 5110

Katika jaribio hili, tutaangalia Onyesho la Picha la Nokia 5110, ambalo linaweza kutumika katika miradi ya Arduino ili kuonyesha maelezo ya picha.

Vipengele vinavyohitajika:

Onyesho la kioo kioevu la Nokia 5110 ni onyesho la monochrome na azimio la 84×48 kwenye kidhibiti cha PCD8544, kilichoundwa ili kuonyesha maelezo ya mchoro na maandishi. Ugavi wa umeme wa onyesho unapaswa kuwa kati ya 2.7-3.3 V (kiwango cha juu zaidi cha 3.3 V; ikiwa 5 V itatolewa kwa pini ya VCC, onyesho linaweza kuharibika). Lakini pini za mtawala zinastahimili +5V, kwa hivyo zinaweza kushikamana moja kwa moja na pembejeo za Arduino. Jambo muhimu ni matumizi ya chini, ambayo inakuwezesha kuimarisha maonyesho kutoka kwa bodi ya Arduino bila chanzo cha nguvu cha nje.
Mchoro wa unganisho wa Nokia 5110 kwa Arduino unaonyeshwa kwenye Mtini. 16.1.

Mchele. 16.1. Mchoro wa unganisho la Nokia 5110 kwa Arduino

Kufanya kazi na onyesho la Nokia 5110, tutatumia maktaba ya Adafruit_GFX, ambayo ina uwezo mzuri wa kuonyesha michoro na maandishi. Katika jaribio letu, tutapokea data ya mwanga kutoka kwa mpiga picha aliyeunganishwa kwa uingizaji wa analogi wa Arduino A0 na kutoa data ya mwangaza katika uwakilishi wa nambari na picha. Mchoro wa uunganisho unaonyeshwa kwenye Mtini. 16.2.

Mchele. 16.2. Mchoro wa uunganisho wa Nokia 5110 na photoresistor kwa Arduino

Msimbo wa mchoro wetu wa majaribio umeonyeshwa katika Orodha 16.1. Tunasoma data kutoka kwa photoresistor na kuonyesha thamani ya nambari, pamoja na graphically (bar ya maendeleo), thamani ya illuminance kama asilimia ya thamani ya juu. Tunachukua maadili ya kiwango cha chini na cha juu zaidi cha mwanga kutoka kwa jaribio la 13.

// Kuunganisha maktaba #ni pamoja na #ni pamoja na // PIN 7 - RST Pin 1 kwenye LCD // PIN 6 - CE Pin 2 kwenye LCD // PIN 5 - DC Pin 3 kwenye LCD // PIN 4 - DIN Pin 4 kwenye LCD // PIN 3 - CLK Pin 5 kwenye LCD Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7); const int LIGHT=A0; // Piga A0 kwa uingizaji wa photoresistor const int MIN_LIGHT=200 ; // Kiwango cha chini cha mwangaza const int MAX_LIGHT=900 ; // Kizingiti cha juu cha kuangaza // Inaweza kubadilika kwa kuhifadhi data ya photoresistor int val1,val2 = 0; usanidi utupu ()( display.anza (); // weka utofautishaji wa mandharinyuma ya skrini // parameter muhimu sana! display.setContrast(60); display.clearDisplay(); // futa skrini kuchelewa (2000); ) kitanzi utupu()( val1 = analogRead(LIGHT); // Soma usomaji wa photoresistor kuchoraNakala(val1,1); // onyesha maandishi // kuongeza thamani ya potentiometer hadi 0-75 val2= ramani (val1, MIN_LIGHT, MAX_LIGHT, 0 , 75 ); // pato la mstatili mweusi katika% display.fillRect(5, 25, val2, 10, 1); // toa sehemu nyeupe ya mstatili display.fillRect(5 +val2,25 , 75 -val2, 10 , 0); display.display(); kuchelewa (1000); // pause kabla ya kipimo kipya kuchoraNakala(val1,2); // futa maandishi) // utaratibu wa pato la maandishi utupu kuchoraText( nambari ndefu isiyo na saini, rangi ya int)( display.setTextSize(2); // saizi ya fonti display.setCursor(20,5); // nafasi ya mshale ikiwa (color==1 ) display.setTextColor(BLACK); // chapisha thamani else display.setTextColor(WHITE); // futa (nyeupe kwenye nyeupe) kuonyesha.chapisha(nambari); )
Agizo la muunganisho:

1. Unganisha kihisi cha kuonyesha cha Nokia 5110 na kidhibiti picha kulingana na mchoro kwenye Mtini. 16.2.
2. Pakia mchoro kutoka kwenye Orodha 16.1 kwenye ubao wa Arduino.
3. Kuzuia mtiririko wa mwanga kwa mkono wako, angalia mabadiliko katika usomaji wa mwanga kwenye skrini ya kuonyesha.

Orodha za programu

Mapema katika blogu hii, maonyesho/viashiria kadhaa vya LCD na matumizi yake kutoka Arduino yalishughulikiwa. Drawback yao muhimu ni saizi yao kubwa na uzito. Mara nyingi hii sio shida. Kwa mfano, ikiwa unakusanya kituo cha soldering cha DIY katika kesi ya kujifanya, kwa namna fulani haijalishi ni ukubwa gani wa maonyesho. Kwa upande mwingine, ikiwa unahitaji kuonyesha, sema, quadcopter, basi uzito na ukubwa huwa muhimu. Kwa hiyo, leo tutajifunza jinsi ya kufanya kazi na skrini ndogo sana na nyepesi kutoka kwa simu ya Nokia 5110.

Kumbuka: Machapisho mengine kwenye mada ya skrini - Kujifunza kuonyesha maandishi kwenye kiashirio cha LCD kutoka Arduino, Kuhusu kutumia skrini 1602 na adapta ya I2C, Kufanya kazi na LCD kulingana na HD44780 bila maktaba, na kipimajoto cha Dijiti kutoka kwa matrix ya LCD, TMP36 na Arduino.

Usijali, hutalazimika kununua Nokia 5110, ambayo kwa ufanisi haipo leo, chagua skrini kutoka kwake na kutupa sehemu nyingine zote. Skrini ya Nokia 5110 ni moduli ya kawaida ya kusimama pekee kwa wasiojiweza wa redio na hugharimu popote kutoka $2 hadi $5, kutegemeana na duka. Huko Urusi, moduli inaweza kununuliwa, kwa mfano, kwenye tpai.ru, arduino-kit.ru, amperkot.ru, compacttool.ru, chipster.ru au electromicro.ru. Na, bila shaka, skrini zinauzwa kwa bei ya chini kwenye AliExpress, lakini itabidi kusubiri mwezi mmoja au mbili hadi wafike kutoka China.

Kama inavyotokea mara nyingi katika ulimwengu wa Arduino, tayari kuna maktaba zilizotengenezwa tayari kwa moduli, na zaidi ya moja. Nilipenda maktaba ya LCD5110 iliyowekwa kwenye tovuti rinkydinkelectronics.com. Maktaba hii ina matoleo mawili. Ya kwanza inaitwa LCD5110_Basic. Ni rahisi zaidi na inaweza tu kuonyesha maandishi katika fonti za ukubwa tofauti. Inawezekana kuunda fonti zako mwenyewe. Toleo la pili linaitwa LCD5110_Graph. Ina uwezo wote wa maktaba ya kwanza na, pamoja nao, inaweza kuchora makundi, rectangles, duru, na kadhalika.

Kwa madhumuni ya chapisho hili, LCD5110_Basic itatumika. Maktaba zote mbili zimerekodiwa vizuri na zina mifano mingi ya matumizi, kwa hivyo ikiwa unahitaji LCD5110_Graph unaweza kuibaini kwa urahisi peke yako. Inafaa kumbuka, hata hivyo, kwamba ili LCD5110_Basic ikusanye bila maonyo, ilibidi nifanye mabadiliko madogo kwa nambari yake.

Kwa hivyo, mfano wa kutumia maktaba:

#pamoja na

extern uint8_t BigNumbers ;
extern uint8_t MediumNumbers ;
extern uint8_t SmallFont ;

/* SCK / CLK, MOSI / DIN, DC, RST, CS */
LCD5110 lcd(2, 3, 4, 6, 5);

usanidi utupu ()
{
lcd.InitLCD();
}

int ctr = 0;
kitanzi utupu()
{
lcd.clrScr();

Lcd.setFont(BigNumbers) ;
lcd.printNumI(ctr, RIGHT, 0);

Lcd.setFont(MediumNumbers) ;
lcd.printNumF(12.34, 2, HAKI, 24);

Lcd.setFont(SmallFont);
lcd.print ("Mstari wa 1", 0, 8 * 0);
lcd.print ("Mstari wa 2", 0, 8 * 1);
lcd.print ("Mstari wa 3", 0, 8 * 2);
lcd.print ("L 4" , 0 , 8 * 3);
lcd.print ("L 5" , 0 , 8 * 4);
lcd.print ("0123456789ABCD" , 0, 8 * 5);

Ctr + = 5;
ikiwa (ctr>= 1000)
ctr = 0;

Kuchelewa (500);
}

Inaonekanaje katika vitendo:

Natumai hakuna haja ya kutafuna msimbo. Tafadhali kumbuka kuwa moduli inaendeshwa na 3.3 V, lakini inaelewa amri kutoka kwa Arduino kawaida bila vigeuzi vya kiwango cha mantiki. Ipasavyo, tunaunganisha pini za VCC (nguvu) na BL (mwanga wa nyuma) hadi 3.3 V, kuunganisha GND chini, na kuunganisha pini tano zilizobaki kwenye pini za dijiti za Arduino. Tunapitisha nambari za siri kwa mjenzi wa darasa la LCD5110 kwa mujibu wa maoni katika msimbo uliotolewa.

Rahisi, sivyo? Unaweza kupata msimbo kamili wa chanzo cha chapisho hili kwenye hazina hii ya GitHub. Nyongeza na maswali, kama kawaida, yanakaribishwa kwa kila njia iwezekanayo.

Nyongeza: Mwandishi wa maktaba ya kufanya kazi na skrini ya Nokia 5110 pia ndiye mwandishi wa maktaba ya OLED_I2C, iliyoundwa kufanya kazi na skrini maarufu za OLED zilizo na kiolesura cha I2C. Unaweza kupata mfano wa kutumia OLED_I2C kwenye chapisho Kutumia shangwe ya Sega Genesis katika miradi ya Arduino. Kama unavyoweza kutarajia, maktaba hizo mbili zina kiolesura sawa.