Turinys:

„Uber I2C“LCD valdiklio modulis: 6 žingsniai
„Uber I2C“LCD valdiklio modulis: 6 žingsniai

Video: „Uber I2C“LCD valdiklio modulis: 6 žingsniai

Video: „Uber I2C“LCD valdiklio modulis: 6 žingsniai
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Liepa
Anonim
„Uber I2C“LCD valdiklio modulis
„Uber I2C“LCD valdiklio modulis
„Uber I2C“LCD valdiklio modulis
„Uber I2C“LCD valdiklio modulis
„Uber I2C“LCD valdiklio modulis
„Uber I2C“LCD valdiklio modulis

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

Grandinės apžvalga
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

PCB gamyba
PCB gamyba
PCB gamyba
PCB gamyba
PCB gamyba
PCB gamyba
PCB gamyba
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

Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga
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

Dizaino bandymas
Dizaino bandymas
Dizaino bandymas
Dizaino 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: