INHOUDSOPGAWE:

Uber I2C LCD -beheermodule: 6 stappe
Uber I2C LCD -beheermodule: 6 stappe

Video: Uber I2C LCD -beheermodule: 6 stappe

Video: Uber I2C LCD -beheermodule: 6 stappe
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, November
Anonim
Uber I2C LCD -beheermodule
Uber I2C LCD -beheermodule
Uber I2C LCD -beheermodule
Uber I2C LCD -beheermodule
Uber I2C LCD -beheermodule
Uber I2C LCD -beheermodule

Aanhef

In hierdie instruksies word uiteengesit hoe u 'n HD44780 LCD -gebaseerde beheermodule kan skep (foto 1 hierbo). Met die module kan die gebruiker alle aspekte van die LCD programmaties oor I2C beheer, insluitend; LCD en skerm, kontras en agterligintensiteit. Alhoewel die Arduino Uno R3 gebruik is om dit te prototipe, sal dit ewe goed werk met enige mikrobeheerder wat I2C ondersteun.

Inleiding

Soos hierbo genoem, dokumenteer hierdie artikel die skepping van 'n I2C LCD -beheermodule, dit was hoofsaaklik bedoel as 'n ontwerpoefening om te bepaal hoe lank dit sou neem om 'n praktiese werkende PCB te skep.

Die ontwerp vervang die standaard generiese beheermodule (foto 3 hierbo) en maak gebruik van instruksies en biblioteke wat ek vroeër vervaardig het.

Van die aanvanklike konsepprototipe (foto 2 hierbo) tot die voltooide, volledig getoetsde PCB (foto 1 hierbo) het dit in totaal 5,5 dae geneem.

Watter onderdele het ek nodig? Sien die aantekening hieronder

Watter sagteware het ek nodig?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 as u die PCB wil verander. Anders stuur 'LCD_Controller.zip' na JLCPCB.

Watter gereedskap het ek nodig?

  • Mikroskoop ten minste x3 (vir SMT soldeer),
  • SMD soldeerbout (met vloeibare vloeipen en soldeermiddel)
  • Sterk pincet (vir SMT soldeer),
  • Fyn tang (punt en snuit neus),
  • DMM met hoorbare kontinuïteitstoets.

Watter vaardighede het ek nodig?

  • Baie geduld,
  • Baie handvaardigheid en uitstekende hand/oog -koördinasie,
  • Uitstekende soldeervaardighede.

Onderwerpe gedek

  • Inleiding
  • Kringoorsig
  • PCB Vervaardiging
  • Sagteware Oorsig
  • Die ontwerp toets
  • Afsluiting
  • Verwysings gebruik

Stap 1: Kringoorsig

Kringoorsig
Kringoorsig

'N Volledige stroombaandiagram van al die elektronika word op foto 1 hierbo gegee, saam met 'n PDF hieronder.

Die kring is ontwerp om 'n presiese plaasvervanger vir die standaard PCF8574A I2C LCD -kontroleermodule te wees met die volgende verbeterings;

  • I2C -kiesbare 3v3- of 5v -versoenbaarheid,
  • Digitale kontrasbeheer of konvensionele potinstelling,
  • Veranderlike agterligte -intensiteitkeuse met Quartic -verslappingsfunksiebeheer om gladde vervaag te bewerkstellig.

LCD -skermbeheer

Dit is 'n faksimilee van die standaard I2C LCD -kontroleermodule met 'n PCF8574A (IC2) vir I2C na parallelle omskakeling.

Die standaard I2C -adres hiervoor is 0x3F.

3v3 of 5v I2C verenigbaarheid

Vir 3v3 -werking pas Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 en C2.

As 5v -werking nodig is, moet u nie by enige 3v3 -komponente pas nie, en dit vervang met 0 Ohm -weerstande ROpt 3 en 4.

Digitale kontras

Digitale kontrasbeheer word verkry deur die gebruik van 'n digitale potensiometer U2 MCP4561-103E/MS en C4, R5.

As 'n konvensionele meganiese potensiometer benodig word, kan dit op die printplaat, RV1 10K, in plaas van U2, C4 en R5 aangebring word. Sien BoM vir versoenbare potensiometer.

Deur die trui J6 te oorbrug, is die I2C -adres 0x2E. Dit word aanvaar dat dit vir normale werking oorbrug word.

Veranderlike intensiteit van die agterlig

Die veranderlike intensiteit van die agterlig word beheer deur PWM -modulasie van die LCD LED -agterlig via U1 -pen 6 en ATTiny85. Om die volledige verenigbaarheid met die standaard I2C LCD -beheermodule R1 te behou, word T1 R7 en T2 gebruik om die +ve -toevoerrail te moduleer.

Die standaard I2C -adres hiervoor is 0x08. Dit kan deur die gebruiker gekies word, op die tydstip voordat U1 geprogrammeer word.

Stap 2: Vervaardiging van PCB

PCB vervaardiging
PCB vervaardiging
PCB vervaardiging
PCB vervaardiging
PCB Vervaardiging
PCB Vervaardiging
PCB Vervaardiging
PCB Vervaardiging

Soos vroeër genoem, was hierdie Instructable 'n oefening, hoofsaaklik bedoel om te bepaal hoe lank dit sou neem om 'n ontwerp te voltooi (wat 'n praktiese doel gehad het).

In hierdie geval het ek Saterdagmiddag aan die aanvanklike konsep gedink en teen Saterdagaand, foto 1 hierbo, die prototipe voltooi. My idee, soos genoem, was om my eie variant van die I2C LCD -kontroleermodule te skep, met 'n identiese voetafdruk, met volledige programmatiese beheer van die LCD oor I2C.

Die skematiese diagram en PCB -uitleg is ontwikkel met Kicad v4.0.7 foto's 2 en 3. Dit is Sondagmiddag voltooi en die onderdele is bestel by Farnell en die PCB is teen Sondagaand na JLCPCB gelaai.

Die komponente het Woensdag uit Farnell gekom, gevolg deur die PCB's van JLCPCB op Donderdag (ek het die DHL -afleweringsdiens gebruik om dinge te bespoedig) foto's 4, 5, 6 en 7.

Teen Donderdagaand is twee borde (3v3 en 5v variante) gebou en suksesvol getoets op 'n 4 by 20 LCD -skerm. Foto's 8, 9 en 10.

'N Fantastiese 5,5 dae vanaf die eerste konsep tot voltooiing.

Dit verstom my hoe vinnig JLCPCB 'n bestelling kan neem, 'n dubbelzijdige PTH PCB kan vervaardig en na die Verenigde Koninkryk kan stuur. 'N Blister van 2 dae vir vervaardiging en 2 dae vir aflewering. Dit is vinniger as PCB -vervaardigers in die Verenigde Koninkryk en teen 'n fraksie van die prys.

Stap 3: Sagteware -oorsig

Sagteware Oorsig
Sagteware Oorsig
Sagteware Oorsig
Sagteware Oorsig

Daar is drie hoofkomponente van die sagteware wat nodig is om die I2C LCD -kontroleermodule te beheer;

1. LiquidCrystal_I2C_PCF8574 Arduino -biblioteek

Hier beskikbaar

Om gebruik te word in u Arduino -skets om die LCD -skerm te beheer.

Opmerking: dit werk ewe goed met die Generic I2C LCD -modulebeheerder. Slegs dit gee gee funksionaliteit as ander biblioteke.

2. MCP4561_DIGI_POT Arduino -biblioteek

Om in u skets gebruik te word om die LCD -kontras programmaties te beheer

Hier beskikbaar

3. Programmatiese beheer van LCD -agterligvlakke met behulp van PWM en Quartic -verligingsfunksie om gladde vervaag te behaal

Soos vroeër genoem, bevat die bord 'n enkele ATTiny85 wat gebruik word om die geleidelike vervaag van die agtergrond van die skerm te beheer.

Besonderhede van hierdie sagteware word gegee in 'n vroeër Instrueerbare 'Smooth PWM LED Fading With the ATTiny85'

In hierdie geval is die SOIC -variant van die ATTiny85 gekies om die finale PCB -afmetings dieselfde as 'n generiese LCD -kontroleermodule te hou. Foto's 1 en 2 wys hoe die ATTiny85 SOIC geprogrammeer en getoets is in die prototipe wat opgestel is.

Die kode wat in die ATTiny85 geprogrammeer is, was 'Tiny85_I2C_Slave_PWM_2.ino' hier beskikbaar

Vir meer inligting oor hoe u u eie ATTiny85 -programmeerder kan skep, sien hierdie instruksie 'Programmeer ATTiny85, ATTiny84 en ATMega328P: Arduino As ISP'

Stap 4: Toets die ontwerp

Die ontwerp toets
Die ontwerp toets
Die ontwerp toets
Die ontwerp toets

Om die ontwerp te toets, het ek 'n skets met die naam 'LCDControllerTest.ino' geskep waarmee die gebruiker enige LCD -spesifieke parameter direk oor 'n seriële terminale verbinding kan stel.

Die skets kan gevind word in my GitHub-bewaarplek I2C-LCD-Controller-module

Foto 1 hierbo toon die 5v I2C -gepaste bordpers wat op 'n 4 by 20 LCD -skerm en prent 2 die standaardskerm is wanneer die toetskode vir die eerste keer uitgevoer word.

Dit gebruik die volgende standaardwaardes vir agterlig en kontras;

  • #defineer DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((ongeteken lank) (10))
  • #definieer DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Ek het gevind dat hierdie goed werk met die 4 by 20 LCD -skerm wat ek in die ruimte gehad het.

Stap 5: Gevolgtrekking

Toe ek eers 'n geruime tyd gelede in die elektronika-/sagteware-industrie begin het, is daar groot klem gelê op die gebruik van draadomhulsel- of verboordkonstruksie vir prototipering met baie oor-ingenieurswese op die finale stroombaan as u 'n fout gemaak het, gegewe die koste en duur van 'n bordspin.

'N Fout kos jou gewoonlik 'n paar weke op die skedule en het die winsmarge (en moontlik jou werk) uitgeblaas.

PCB's word 'kunswerke' genoem, omdat dit werklik kunswerke was. Dit is twee keer in volle grootte gemaak deur kleeflint deur 'n 'tracer' of tekenpersoon, en fotografies verminder deur die fantastiese huis om die foto weerstand te bied teen sjablone.

Kringdiagramme is ook deur spoorsnyers gemaak en met die hand uit u ontwerpnotas geteken. Afskrifte is foto-staties gedoen en 'blou afdrukke' genoem. Omdat hulle altyd blou van kleur was.

Mikrobeheerders was eers in hul kinderskoene en was gewoonlik in kringloop-nabootsing as u onderneming een met die gepaardgaande komplekse en duur ontwikkelingsomgewing kon bekostig.

As destydse vervaardiger was die blote koste van die sagteware -ontwikkelingsgereedskapsketting onbetaalbaar; u was noodwendig genoodsaak om hekswaardes direk in EPROM in te steek (RAM/Flash as u baie geluk het), en bestee ure lank aan die interpretasie van die gevolglike gedrag om vas te stel wat u kode werk as dit nie werk soos verwag nie (bietjie 'wiggling' of seriële druk is die gewildste ontfoutingstegnieke. Sommige dinge verander nooit). U moes gewoonlik al u eie biblioteke skryf, aangesien daar geen beskikbare was nie (daar was beslis geen ryk bron soos die internet nie).

Dit het beteken dat u baie tyd spandeer het om te probeer verstaan hoe iets werk en minder tyd aan kreatiewe maak bestee het.

Al u diagramme is met die hand geteken, tipies op A4 of A3, en moes deeglik deurdink word, wat 'n logiese vloei van seinpad van links na regs gee. Regstellings het gewoonlik beteken dat u met 'n vars laken moes begin.

Die finale kring is meestal ontwikkel met veroboard vir permanensie en gemonteer in 'n eenvoudige ABS -omhulsel om dit 'professionele aanslag' te gee.

In teenstelling hiermee het ek hierdie hele projek in 5,5 dae ontwikkel met behulp van hoë kwaliteit freeware wat tot 'n professionele standaard PCB gelei het. As die begeerte my sou gevang het, kon ek dit in 'n 3D -gedrukte boks van my eie gemaak het.

Iets waarvan jy net minder as 'n dekade gelede kon droom.

Hoe dinge ten goede verander het.

Stap 6: Gebruikte verwysings

KiCAD Skematiese opname en PCB -ontwerp

KiCAD EDA

Arduino ORG sagteware -ontwikkelingshulpmiddel

Arduino

LiquidCrystal_I2C_PCF8574 Arduino -biblioteek

Hier

MCP4561_DIGI_POT Arduino -biblioteek

Hier

Gladde PWM LED -vervaag met die ATTiny85

Hier

Die programmering van die ATTiny85, ATTiny84 en ATMega328P: Arduino As ISP

Aanbeveel: