Turinys:
- 1 žingsnis: grandinės apžvalga
- 2 žingsnis: PCB gamyba
- 3 žingsnis: programinės įrangos apžvalga
- 4 žingsnis: dizaino išbandymas
- 5 žingsnis: Išvada
- 6 žingsnis: naudojamos nuorodos
Video: „Uber I2C“LCD valdiklio modulis: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Preambulė
Šioje instrukcijoje išsamiai aprašoma, kaip sukurti HD44780 LCD valdiklio modulį (1 pav. Aukščiau). Modulis leidžia vartotojui programiškai valdyti visus LCD aspektus per I2C, įskaitant: LCD ir ekranas, kontrastas ir foninis apšvietimas. Nors „Arduino Uno R3“buvo naudojamas jo prototipams sukurti, jis veiks vienodai gerai su bet kokiu mikrovaldikliu, palaikančiu I2C.
Įvadas
Kaip minėta aukščiau, šiame straipsnyje dokumentuojamas I2C LCD valdiklio modulio sukūrimas, jis visų pirma buvo skirtas projektavimui, siekiant nustatyti, kiek laiko užtruks sukurti praktiškai veikiančią PCB.
Dizainas pakeičia standartinį bendrą valdiklio modulį (3 pav. Aukščiau) ir remiasi anksčiau parengtomis instrukcijomis ir bibliotekomis.
Nuo pradinio koncepcijos prototipo (2 pav. Aukščiau) iki užbaigto, visiškai išbandyto PCB (1 pav. Aukščiau) iš viso prireikė 5,5 dienos.
Kokių dalių man reikia? Žiūrėkite toliau pateiktą medžiagų sąrašą
Kokios programinės įrangos man reikia?
- „Arduino IDE 1.6.9“,
- „Kicad v4.0.7“, jei norite pakeisti PCB. Priešingu atveju tiesiog nusiųskite „LCD_Controller.zip“į JLCPCB.
Kokių įrankių man reikia?
- Mikroskopas bent x3 (skirtas SMT litavimui),
- SMD lituoklis (su skysčio srauto rašikliu ir lydmetaliu su srautu),
- Stiprūs pincetai (SMT litavimui),
- Smulkios replės (smailios ir smaigalinės),
- DMM su girdimu tęstinumo tikrinimu.
Kokių įgūdžių man reikia?
- Daug kantrybės,
- Puikus rankų miklumas ir puikus rankų/akių koordinavimas,
- Puikūs litavimo įgūdžiai.
Aptartos temos
- Įvadas
- Grandinės apžvalga
- PCB gamyba
- Programinės įrangos apžvalga
- Dizaino bandymas
- Išvada
- Naudotos nuorodos
1 žingsnis: grandinės apžvalga
Visa elektronikos grandinės schema pateikta 1 paveikslėlyje aukščiau, kartu su PDF rinkiniu žemiau.
Grandinė buvo sukurta taip, kad tiksliai pakeistų standartinį PCF8574A I2C LCD valdiklio modulį su šiais patobulinimais;
- „I2C“vartotojo pasirenkamas 3v3 arba 5v suderinamumas,
- Skaitmeninis kontrasto valdymas arba įprastas puodo nustatymas,
- Kintamo foninio apšvietimo intensyvumo pasirinkimas su „Quartic“palengvinimo funkcijos valdymu, užtikrinantis sklandų blukimą.
LCD ekrano valdymas
Tai yra standartinio I2C LCD valdiklio modulio, naudojančio PCF8574A (IC2) faksimilė, skirta I2C lygiagrečiai konvertuoti.
Numatytasis I2C adresas yra 0x3F.
3v3 arba 5v I2C suderinamumas
3v3 veikimui tinka Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 ir C2.
Jei reikalinga 5 V operacija, nemontuokite jokių 3v3 komponentų, pakeiskite juos 0 omų rezistoriais ROpt 3 ir 4.
Skaitmeninis kontrastas
Skaitmeninis kontrasto valdymas pasiekiamas naudojant skaitmeninį potenciometrą U2 MCP4561-103E/MS ir C4, R5.
Jei reikalingas įprastas mechaninis potenciometras, jį galima prijungti prie PCB, RV1 10K, o ne U2, C4 ir R5. Suderinamą potenciometrą žr.
Sujungus trumpiklį J6, I2C adresas yra 0x2E. Manoma, kad normaliam veikimui tai yra tiltas.
Kintamo foninio apšvietimo intensyvumo pasirinkimas
Kintamo foninio apšvietimo intensyvumą valdo PWM moduliacija LCD LED foninėje šviesoje per U1 kaištį 6 ir ATTiny85. Siekiant išlaikyti visišką suderinamumą su standartiniu I2C LCD valdiklio moduliu R1, T1 R7 ir T2 naudojami moduliuoti +ve maitinimo bėgelį.
Numatytasis I2C adresas yra 0x08. Tai galima pasirinkti vartotojui kompiliavimo metu prieš programuojant U1.
2 žingsnis: PCB gamyba
Kaip minėta anksčiau, šis „Instructable“buvo pratimas, visų pirma skirtas nustatyti, kiek laiko užtruks dizainas (kuris turėjo praktinį tikslą).
Šiuo atveju aš pagalvojau apie pradinę koncepciją šeštadienio popietę ir baigiau prototipą iki šeštadienio vakaro 1 paveikslo aukščiau. Kaip minėta, mano idėja buvo sukurti savo I2C LCD valdiklio modulio variantą, kurio pėdsakas būtų toks pat, kad būtų galima visiškai programiškai valdyti LCD per I2C.
Scheminė schema ir PCB išdėstymas buvo sukurti naudojant „Kicad v4.0.7“2 ir 3 paveikslėlius. Tai buvo baigta sekmadienio popietę, o dalys buvo užsakytos iš „Farnell“, o PCB įkelta į JLCPCB iki sekmadienio vakaro.
Trečiadienį komponentai atkeliavo iš „Farnell“, o ketvirtadienį - JLCPCB PCB (norėdamas paspartinti naudoju DHL pristatymo paslaugą) 4, 5, 6 ir 7 nuotraukos.
Iki ketvirtadienio vakaro buvo sukonstruotos dvi plokštės (3v3 ir 5v variantai) ir sėkmingai išbandytos 4 x 20 LCD ekrane. 8, 9 ir 10 nuotraukos.
Nuostabios 5,5 dienos nuo pradinės idėjos iki pabaigos.
Mane stebina, kaip greitai JLCPCB sugeba priimti užsakymą, pagaminti dvipusę PTH PCB ir išsiųsti ją į JK. Lizdinės plokštelės 2 dienos gamybai ir 2 dienos pristatymui. Tai greičiau nei JK įsikūrę PCB gamintojai ir už nedidelę kainą.
3 žingsnis: programinės įrangos apžvalga
Yra trys pagrindinės programinės įrangos sudedamosios dalys, būtinos I2C LCD valdiklio moduliui valdyti;
1. „LiquidCrystal_I2C_PCF8574 Arduino“biblioteka
Galima čia
Bus naudojamas jūsų „Arduino“eskize, norint valdyti LCD ekraną.
Pastaba: Tai vienodai gerai veikia su bendru I2C LCD modulio valdikliu. Tik tai suteikia funkcijų nei kitos bibliotekos.
2. MCP4561_DIGI_POT „Arduino“biblioteka
Naudojamas eskizui programiškai valdyti LCD kontrastą
Galima čia
3. Programinis LCD foninio apšvietimo lygių valdymas naudojant PWM ir Quartic palengvinimo funkciją sklandžiam išblukimui pasiekti
Kaip minėta anksčiau, plokštėje yra vienas ATTiny85, naudojamas laipsniškam ekrano foninio apšvietimo išblukimui kontroliuoti.
Išsami informacija apie šią programinę įrangą pateikta ankstesnėje instrukcijoje „Lygus PWM LED blukimas naudojant ATTiny85“
Šiuo atveju, norint, kad galutiniai PCB matmenys išliktų tokie patys kaip bendrojo LCD valdiklio modulio, buvo pasirinktas ATTiny85 SOIC variantas. 1 ir 2 nuotraukose parodyta, kaip ATTiny85 SOIC buvo užprogramuotas ir išbandytas nustatytu prototipu.
„ATTiny85“užprogramuotas kodas buvo „Tiny85_I2C_Slave_PWM_2.ino“, kurį galite rasti čia
Norėdami gauti daugiau informacijos apie tai, kaip sukurti savo ATTiny85 programuotoją, skaitykite šią instrukciją „ATTiny85, ATTiny84 ir ATMega328P programavimas:„ Arduino As ISP ““
4 žingsnis: dizaino išbandymas
Norėdami išbandyti dizainą, sukūriau eskizą pavadinimu „LCDControllerTest.ino“, kuris leidžia vartotojui tiesiogiai nustatyti bet kurį LCD parametrą tiesiogiai per serijinį terminalo ryšį.
Eskizą rasite mano „GitHub“saugykloje I2C-LCD-Controller-Module
Pirmame paveikslėlyje pavaizduotas su 5v I2C suderinamas plokštės presas, pritvirtintas prie 4 x 20 LCD, o 2 paveiksle - numatytasis ekranas, kai pirmą kartą paleidžiamas bandymo kodas.
Jame naudojamos šios numatytosios foninio apšvietimo ir kontrasto vertės;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((ilgai nepasirašytas) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Radau, kad jie gerai veikė su 4 x 20 LCD ekranu, kurį turėjau atsargai.
5 žingsnis: Išvada
Kai prieš kurį laiką pradėjau dirbti elektronikos ir programinės įrangos pramonėje, daug dėmesio buvo skiriama vielos apvyniojimo ar lankstinių plokščių konstrukcijos naudojimui prototipų kūrimui, o galutinėje grandinėje buvo daug inžinerijos, jei padarėte klaidą, atsižvelgiant į lentos pakartotinio sukimo kainą ir trukmę.
Klaida paprastai kainavo kelias savaites pagal tvarkaraštį ir sumažino pelno maržą (ir galbūt jūsų darbą).
PCB buvo vadinami „meno kūriniais“, nes jie tikrai buvo meno kūriniai. Sukurta du kartus pilno dydžio, naudojant lipnią juodą krepinę juostą, kurią sukūrė „atsekėjas“ar piešėjas, o fotografijoje sumažino „fab house“, kad nuotrauka būtų atspari trafaretams.
Grandinių schemas taip pat sukūrė žymekliai ir ranka piešė iš jūsų dizaino užrašų. Kopijos buvo padarytos fotostatiškai ir vadinamos „mėlynaisiais atspaudais“. Nes jie visada buvo mėlynos spalvos.
Mikrovaldikliai buvo tik pradiniame etape ir paprastai buvo imituojami grandinėje, jei jūsų įmonė galėtų sau leisti tokį su sudėtinga ir brangia plėtros aplinka.
Kaip kūrėjas tuo metu, vien tik programinės įrangos kūrimo įrankių grandinės kaina buvo per didelė, jūs neišvengiamai buvote priversti įvesti šešiakampes vertes tiesiai į EPROM (RAM/„Flash“, jei jums labai pasisekė), tada praleiskite valandas aiškindami gautą elgesį, kad nustatytumėte, kas jūsų kodas veikė, jei jis veikė ne taip, kaip tikėtasi (populiariausias derinimo būdas yra bitų judėjimas arba serijinis spausdinimas. Kai kurie dalykai niekada nesikeičia). Paprastai turėjote parašyti visas savo bibliotekas, nes jų nebuvo (tikrai nebuvo tokio turtingo šaltinio kaip internetas).
Tai reiškė, kad praleidote daug laiko bandydami suprasti, kaip kažkas veikia, ir mažiau laiko praleidote kūrybingai.
Visos jūsų diagramos buvo nupieštos rankomis, paprastai A4 arba A3 formatu, ir jas reikėjo kruopščiai apgalvoti, suteikiant loginį signalo kelio srautą iš kairės į dešinę. Pataisymai paprastai reiškia, kad jums reikia pradėti nuo naujo lapo.
Didžioji jūsų galutinė grandinė buvo sukurta naudojant „Veroboard“pastovumui ir sumontuota paprastame ABS korpuse, kad suteiktų „profesionalų prisilietimą“.
Priešingai, visą šį projektą sukūriau per 5,5 dienos, naudodamas aukštos kokybės nemokamą programinę įrangą, todėl gavau profesionalų standartinį PCB. Jei troškimas mane būtų užvaldęs, būčiau galėjęs jį sumontuoti savo sukurtoje 3D spausdintoje dėžutėje.
Apie tai, apie ką galėjai svajoti tik prieš mažiau nei dešimtmetį.
Kaip viskas pasikeitė į gerąją pusę.
6 žingsnis: naudojamos nuorodos
„KiCAD“scheminis surinkimas ir PCB dizainas
„KiCAD EDA“
„Arduino ORG“programinės įrangos kūrimo įrankis
Arduino
„LiquidCrystal_I2C_PCF8574“„Arduino“biblioteka
Čia
MCP4561_DIGI_POT „Arduino“biblioteka
Čia
Sklandus PWM LED blukimas naudojant ATTiny85
Čia
ATTiny85, ATTiny84 ir ATMega328P programavimas: „Arduino“kaip IPT
Rekomenduojamas:
Servo valdiklio pašalinimas: 5 žingsniai (su nuotraukomis)
Pašalinkite servo valdiklį: Servo varikliai yra labai įdomūs, kai norite lengvai sujungti reduktorių su mikrovaldikliu. Tačiau kartais norisi gražaus variklio su pavara ir nenorite, kad jį varytų valdymo grandinės. Tokiais momentais būna
„Arduino“klaviatūros vairasvirtės išplėtimo dėžutė ir garso valdiklio dalykas naudojant „Deej“: 8 žingsniai
„Arduino“klaviatūros kreiptuko prailginimo dėžutė ir garso valdiklis, naudojant „Deej“: Kodėl Kurį laiką aš norėjau prie klaviatūros pridėti mažą vairasvirtę, kad galėčiau valdyti sąsajos elementus, arba atlikti kitas mažesnes žaidimų ir simuliatorių užduotis („MS Flight Sim“, „Elite: Dangerous“, Žvaigždžių karai: eskadrilės ir kt.). Taip pat „Elite: Dangerous“aš buvau
I2C / IIC LCD ekranas - Naudokite SPI LCD prie I2C LCD ekrano Naudodami SPI to IIC modulį su „Arduino“: 5 žingsniai
I2C / IIC LCD ekranas | Naudokite SPI LCD prie I2C LCD ekrano SPI to IIC modulio naudojimas su „Arduino“: Sveiki, vaikinai, nes įprastas SPI LCD 1602 turi per daug laidų prijungti, todėl labai sunku jį sujungti su „arduino“, tačiau rinkoje yra vienas modulis, kuris gali konvertuoti SPI ekraną į IIC ekraną, todėl jums reikia prijungti tik 4 laidus
1602 LCD klaviatūros skydo modulis su I2C kuprine: 6 žingsniai
1602 LCD klaviatūros skydo modulis su „I2C“kuprine: kaip didesnio projekto dalis, norėjau turėti LCD ekraną ir klaviatūrą, skirtą naršyti kai kuriuose paprastuose meniu. Kitiems darbams naudosiu daug „Arduino“įvesties/išvesties prievadų, todėl norėjau LCD I2C sąsajos. Taigi aš nusipirkau techninės įrangos
I2C / IIC LCD ekranas - Konvertuokite SPI LCD į I2C LCD ekraną: 5 žingsniai
I2C / IIC LCD ekranas | Konvertuokite SPI LCD į I2C LCD ekraną: naudojant „spi lcd“ekraną reikia per daug jungčių, o tai padaryti tikrai sunku, todėl radau modulį, kuris gali konvertuoti „i2c LCD“į „spi lcd“, todėl pradėkime