Satura rādītājs:

Uber I2C LCD kontroliera modulis: 6 soļi
Uber I2C LCD kontroliera modulis: 6 soļi

Video: Uber I2C LCD kontroliera modulis: 6 soļi

Video: Uber I2C LCD kontroliera modulis: 6 soļi
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Novembris
Anonim
Uber I2C LCD kontroliera modulis
Uber I2C LCD kontroliera modulis
Uber I2C LCD kontroliera modulis
Uber I2C LCD kontroliera modulis
Uber I2C LCD kontroliera modulis
Uber I2C LCD kontroliera modulis

Preambula

Šajā pamācībā ir sīki aprakstīts, kā izveidot HD44780 LCD kontroliera moduli (1. attēls iepriekš). Modulis ļauj lietotājam programmatiski kontrolēt visus LCD aspektus, izmantojot I2C, kas ietver: LCD un displejs, kontrasts un pretgaismas intensitāte. Lai gan Arduino Uno R3 tika izmantots tā prototipēšanai, tas vienlīdz labi darbosies ar jebkuru mikrokontrolleri, kas atbalsta I2C.

Ievads

Kā minēts iepriekš, šajā rakstā ir dokumentēta I2C LCD kontrollera moduļa izveide, tas galvenokārt bija paredzēts kā projektēšanas uzdevums, lai noteiktu, cik ilgs laiks būtu nepieciešams, lai izveidotu praktiski funkcionējošu PCB.

Dizains aizstāj standarta vispārējo kontrollera moduli (3. attēls iepriekš) un izmanto iepriekš sagatavotos norādījumus un bibliotēkas.

No sākotnējā koncepcijas prototipa (2. attēls iepriekš) līdz pabeigtai, pilnībā pārbaudītai PCB (1. attēls iepriekš) kopumā bija nepieciešamas 5,5 dienas.

Kādas detaļas man ir vajadzīgas? Skatiet tālāk pievienoto materiālu sarakstu

Kāda programmatūra man ir nepieciešama?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7, ja vēlaties modificēt PCB. Pretējā gadījumā vienkārši nosūtiet “LCD_Controller.zip” uz JLCPCB.

Kādi rīki man ir nepieciešami?

  • Mikroskops vismaz x3 (SMT lodēšanai),
  • SMD lodāmurs (ar šķidruma plūsmas pildspalvu un lodēšanas serdi),
  • Spēcīgas pincetes (SMT lodēšanai),
  • Smalkas knaibles (ar smailu un smailu degunu),
  • DMM ar skaņas nepārtrauktības pārbaudi.

Kādas prasmes man vajadzīgas?

  • Daudz pacietības,
  • Liela roku veiklība un lieliska roku/acu koordinācija,
  • Lieliskas lodēšanas prasmes.

Tēmas, uz kurām attiecas

  • Ievads
  • Ķēdes pārskats
  • PCB ražošana
  • Programmatūras pārskats
  • Dizaina pārbaude
  • Secinājums
  • Izmantotās atsauces

1. darbība: shēmas pārskats

Ķēdes pārskats
Ķēdes pārskats

Visa elektronikas shēma ir parādīta 1. attēlā kopā ar PDF failu zemāk.

Ķēde tika izstrādāta tā, lai precīzi aizstātu standarta PCF8574A I2C LCD kontrollera moduli ar šādiem uzlabojumiem;

  • I2C saderība ar lietotāja izvēlētu 3v3 vai 5v,
  • Digitālā kontrasta kontrole vai parastais katla iestatījums,
  • Mainīga pretgaismas intensitātes izvēle ar Quartic atvieglošanas funkcijas vadību, lai panāktu vienmērīgu izbalēšanu.

LCD displeja vadība

Šis ir standarta I2C LCD kontrollera moduļa faksimils, kas izmanto PCF8574A (IC2) I2C paralēlai pārveidošanai.

Noklusējuma I2C adrese tam ir 0x3F.

3v3 vai 5v I2C saderība

3v3 darbībai piemērots Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 un C2.

Ja nepieciešama 5 V darbība, tad neuzstādiet nevienu 3v3 komponentu, nomainot tos ar 0 omu rezistoriem ROpt 3 un 4.

Digitālais kontrasts

Digitālā kontrasta kontrole tiek panākta, izmantojot digitālo potenciometru U2 MCP4561-103E/MS un C4, R5.

Ja ir nepieciešams parasts mehāniskais potenciometrs, tad to var piestiprināt pie PCB, RV1 10K, nevis U2, C4 un R5. Saderīgu potenciometru skatiet sadaļā BoM.

Pārvietojot džemperi J6, I2C adrese ir 0x2E. Normālai darbībai tas tika pieņemts.

Mainīga pretgaismas intensitātes izvēle

Mainīgu pretgaismas intensitāti kontrolē ar PWM modulāciju LCD LED aizmugurgaismā, izmantojot U1 tapu 6 un ATTiny85. Lai saglabātu pilnīgu saderību ar standarta I2C LCD kontrollera moduli R1, T1 R7 un T2 tiek izmantoti, lai modulētu +ve barošanas sliedi.

Noklusējuma I2C adrese tam ir 0x08. To var izvēlēties lietotājs kompilēšanas laikā pirms U1 programmēšanas.

2. solis: PCB ražošana

PCB ražošana
PCB ražošana
PCB ražošana
PCB ražošana
PCB ražošana
PCB ražošana
PCB ražošana
PCB ražošana

Kā minēts iepriekš, šī instrukcija bija uzdevums, kas galvenokārt bija paredzēts, lai noteiktu, cik ilgs laiks būtu nepieciešams, lai pabeigtu dizainu (kam bija praktisks mērķis).

Šajā gadījumā es domāju par sākotnējo koncepciju sestdienas pēcpusdienā un biju pabeidzis prototipu līdz sestdienas vakara 1. attēlam. Mana ideja, kā minēts, bija izveidot savu I2C LCD kontrollera moduļa variantu ar identisku nospiedumu, piedāvājot pilnīgu programmatisku LCD kontroli pār I2C.

Shematiskā diagramma un PCB izkārtojums tika izstrādāti, izmantojot Kicad v4.0.7 2. un 3. attēlu. Tas tika pabeigts svētdienas pēcpusdienā, un detaļas tika pasūtītas no Farnell, un PCB tika augšupielādēts JLCPCB līdz svētdienas vakaram.

Sastāvdaļas trešdien ieradās no Farnell, ceturtdien sekoja PCB no JLCPCB (es izmantoju DHL piegādes pakalpojumu, lai paātrinātu lietas), 4., 5., 6. un 7. attēls.

Līdz ceturtdienas vakaram divi paneļi (3v3 un 5v varianti) tika uzbūvēti un veiksmīgi pārbaudīti uz 4 līdz 20 LCD displeja. 8., 9. un 10. attēls.

Pārsteidzošas 5,5 dienas no sākotnējās idejas līdz tās pabeigšanai.

Mani pārsteidz, cik ātri JLCPCB spēj pieņemt pasūtījumu, izgatavot divpusēju PTH PCB un nosūtīt to uz Apvienoto Karalisti. Pūslīši 2 dienas ražošanai un 2 dienas piegādei. Tas ir ātrāk nekā Apvienotajā Karalistē bāzēti PCB ražotāji un par nelielu cenu.

3. darbība: programmatūras pārskats

Programmatūras pārskats
Programmatūras pārskats
Programmatūras pārskats
Programmatūras pārskats

I2C LCD kontrollera moduļa vadīšanai nepieciešamajai programmatūrai ir trīs galvenās sastāvdaļas;

1. LiquidCrystal_I2C_PCF8574 Arduino bibliotēka

Pieejams šeit

Izmantojams jūsu Arduino skicē, lai kontrolētu LCD displeju.

Piezīme. Tas vienlīdz labi darbojas ar vispārējo I2C LCD moduļa kontrolieri. Tikai tas dod funkcionalitāti nekā citas bibliotēkas.

2. MCP4561_DIGI_POT Arduino bibliotēka

Izmantojams jūsu skicē, lai programmiski kontrolētu LCD kontrastu

Pieejams šeit

3. Programmatiska LCD fona apgaismojuma līmeņa kontrole, izmantojot PWM un Quartic mīkstināšanas funkciju, lai panāktu vienmērīgu izbalēšanu

Kā minēts iepriekš, tāfele satur vienu ATTiny85, ko izmanto, lai kontrolētu displeja fona apgaismojuma pakāpenisku izbalēšanu.

Sīkāka informācija par šo programmatūru ir sniegta agrākā instrukcijā “Gluda PWM LED izbalēšana ar ATTiny85”

Šajā gadījumā, lai galīgie PCB izmēri paliktu tādi paši kā vispārējam LCD kontrollera modulim, tika izvēlēts ATTiny85 SOIC variants. 1. un 2. attēlā parādīts, kā ATTiny85 SOIC tika ieprogrammēts un pārbaudīts izveidotajā prototipā.

ATTiny85 ieprogrammētais kods bija “Tiny85_I2C_Slave_PWM_2.ino” pieejams šeit

Lai iegūtu sīkāku informāciju par to, kā izveidot savu ATTiny85 programmētāju, skatiet šo pamācību "ATTiny85, ATTiny84 un ATMega328P programmēšana: Arduino kā ISP"

4. darbība: dizaina pārbaude

Dizaina pārbaude
Dizaina pārbaude
Dizaina pārbaude
Dizaina pārbaude

Lai pārbaudītu dizainu, es izveidoju skici ar nosaukumu “LCDControllerTest.ino”, kas ļauj lietotājam iestatīt jebkuru LCD specifisko parametru tieši, izmantojot sērijas termināļa savienojumu.

Skice ir atrodama manā GitHub repozitorijā I2C-LCD-Controller-Module

Iepriekš redzamajā 1. attēlā parādīta ar 5v I2C saderīga paneļa prese, kas uzstādīta 4 x 20 LCD, un 2. attēlā noklusējuma displejs, pirmo reizi palaižot testa kodu.

Fona apgaismojumam un kontrastam tiek izmantotas šādas noklusējuma vērtības;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((neparakstīts garš) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Es atklāju, ka tie labi darbojas ar 4 līdz 20 LCD displeju, kas man bija rezerves stāvoklī.

5. darbība. Secinājums

Kad es pirms kāda laika sāku darboties elektronikas/programmatūras nozarē, liels uzsvars tika likts uz to, ka prototipēšanai tiek izmantota stiepļu iesaiņojuma vai daudzslāņu konstrukcija, un galīgajā ķēdē, ja esat pieļāvis kļūdu, ir daudz inženierijas., ņemot vērā dēļa atkārtotas griešanās izmaksas un ilgumu.

Kļūda parasti jums izmaksāja dažas nedēļas pēc grafika un izpūta peļņas normu (un, iespējams, jūsu darbu).

PCB sauca par “mākslas darbiem”, jo tie patiesi bija mākslas darbi. Izveidots divreiz pilnā izmērā, izmantojot lipīgu melnu kreplenti, ko izveidojis “trasētājs” vai zīmētājs, un mākslīgā māja to samazinājusi, lai padarītu fotoattēlu izturīgu pret trafaretiem.

Ķēdes diagrammas izveidoja arī marķieri un tās zīmēja ar rokām no jūsu dizaina piezīmēm. Kopijas tika veiktas fotostatiski un tika sauktas par “zilajām izdrukām”. Tā kā tie vienmēr bija zilā krāsā.

Mikrokontrolleri bija tikai sākumstadijā un parasti tika atdarināti ķēdē, ja jūsu uzņēmums varētu atļauties tādu ar sarežģītu un dārgu izstrādes vidi.

Kā ražotājs tajā laikā programmatūras izstrādes rīku ķēdes izmaksas bija pārmērīgas, un jūs neizbēgami bijāt spiests ievadīt heksadecimālās vērtības tieši EPROM (RAM/Flash, ja jums ļoti paveicās), pēc tam pavadiet stundas, interpretējot izrietošo uzvedību, lai noteiktu, kas jūsu kods darbojās, ja tas nedarbojās, kā gaidīts (bitu “svārstīšanās” vai sērijveida drukāšana ir vispopulārākās atkļūdošanas metodes. Dažas lietas nekad nemainās). Parasti jums bija jāraksta visas savas bibliotēkas, jo neviena no tām nebija pieejama (noteikti nebija tāda bagātīga avota kā internets).

Tas nozīmēja, ka jūs pavadījāt daudz laika, cenšoties saprast, kā kaut kas darbojas, un mazāk laika pavadījāt radoši.

Visas jūsu diagrammas tika zīmētas ar rokām, parasti uz A4 vai A3, un tās bija rūpīgi jāpārdomā, nodrošinot tām loģisku signāla ceļa plūsmu no kreisās uz labo. Labojumi parasti nozīmēja, ka jums jāsāk ar jaunu lapu.

Jūsu galīgā ķēde lielākoties tika izstrādāta, izmantojot Veroboard, lai nodrošinātu pastāvību, un uzstādīta vienkāršā ABS korpusā, lai piešķirtu tai “profesionālu pieskārienu”.

Krasā kontrastā es izstrādāju visu šo projektu 5,5 dienās, izmantojot augstas kvalitātes bezmaksas programmatūru, kā rezultātā tika iegūta profesionāla standarta PCB. Ja vēlme būtu mani aizvedusi, es būtu varējis to iemontēt savas izdrukātas 3D drukātas kastē.

Par kaut ko tādu, par ko varējāt tikai sapņot pirms mazāk nekā desmit gadiem.

Kā lietas ir mainījušās uz labo pusi.

6. darbība. Izmantotās atsauces

KiCAD Shematiska uztveršana un PCB dizains

KiCAD EDA

Arduino ORG programmatūras izstrādes rīks

Arduino

LiquidCrystal_I2C_PCF8574 Arduino bibliotēka

Šeit

MCP4561_DIGI_POT Arduino bibliotēka

Šeit

Gluda PWM LED izbalēšana ar ATTiny85

Šeit

ATTiny85, ATTiny84 un ATMega328P programmēšana: Arduino kā ISP

Ieteicams: