Satura rādītājs:
- 1. darbība: shēmas pārskats
- 2. solis: PCB ražošana
- 3. darbība: programmatūras pārskats
- 4. darbība: dizaina pārbaude
- 5. darbība. Secinājums
- 6. darbība. Izmantotās atsauces
Video: Uber I2C LCD kontroliera modulis: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
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
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
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
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
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:
Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: 8 soļi
Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: Kāpēc Jau kādu laiku es vēlos tastatūrai pievienot nelielu kursorsviru, lai kontrolētu saskarnes elementus, vai citus mazākus uzdevumus spēlēs un simulatoros (MS Flight Sim, Elite: Dangerous, Zvaigžņu kari: eskadras utt.). Arī Elite: Dangerous, es esmu bijis
I2C / IIC LCD displejs - Izmantojiet SPI LCD I2C LCD displejā Izmantojot SPI līdz IIC moduli ar Arduino: 5 soļi
I2C / IIC LCD displejs | Izmantojiet SPI LCD I2C LCD displejā Izmantojot SPI to IIC moduli ar Arduino: Sveiki, puiši, jo parastajam SPI LCD 1602 ir pārāk daudz vadu, lai to savienotu, tāpēc ir ļoti grūti savienot to ar arduino, taču tirgū ir pieejams viens modulis pārvērst SPI displeju IIC displejā, tāpēc jums ir jāpievieno tikai 4 vadi
1602 LCD tastatūras vairoga modulis ar I2C mugursomu: 6 soļi
1602 LCD tastatūras vairoga modulis ar I2C mugursomu: Lielāka projekta ietvaros es vēlējos, lai būtu LCD displejs un tastatūra dažu vienkāršu izvēlņu navigācijai. Es izmantošu daudzus Arduino I/O portus citiem darbiem, tāpēc es gribēju LCD I2C saskarni. Tāpēc es nopirku aparatūru
I2C / IIC LCD displejs - Pārveidojiet SPI LCD uz I2C LCD displeju: 5 soļi
I2C / IIC LCD displejs | Pārveidojiet SPI LCD uz I2C LCD displeju: lai izmantotu spi lcd displeju, ir nepieciešams pārāk daudz savienojumu, un to ir ļoti grūti izdarīt, tāpēc es atradu moduli, kas var pārvērst i2c LCD uz spi lcd, tāpēc sāksim darbu
TCA9548A I2C multipleksora modulis - ar Arduino un NodeMCU: 11 soļi
TCA9548A I2C multipleksora modulis - ar Arduino un NodeMCU: Vai esat kādreiz nonācis situācijā, kad jums bija jāpievieno divi, trīs vai vairāk I2C sensori savam Arduino, lai tikai saprastu, ka sensoriem ir fiksēta vai vienāda I2C adrese. Turklāt vienā SDA nevar būt divas ierīces ar vienu un to pašu adresi