INHOUDSOPGAWE:
- Stap 1: Kringoorsig
- Stap 2: Vervaardiging van PCB
- Stap 3: Sagteware -oorsig
- Stap 4: Toets die ontwerp
- Stap 5: Gevolgtrekking
- Stap 6: Gebruikte verwysings
Video: Uber I2C LCD -beheermodule: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
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
'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
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
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
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:
Die Uber -knoppie: 7 stappe
Die Uber -knoppie: kry 'n Uber -rit deur net op 'n knoppie te druk! Inleiding In hierdie tutoriaal gebruik ons die Sigfox -netwerklokaliseringsdiens (wat tans hoogstens 'n radiusposisie van 1 km kan gee) om die naaste te bereik posisie na 'n spesifieke
I2C / IIC LCD -skerm - Gebruik 'n SPI LCD na die I2C LCD Display met behulp van SPI tot IIC module met Arduino: 5 stappe
I2C / IIC LCD -skerm | Gebruik 'n SPI LCD na die I2C LCD -skerm Met behulp van SPI na IIC -module met Arduino: Hallo ouens, aangesien 'n normale SPI LCD 1602 te veel drade het om aan te sluit, is dit baie moeilik om dit met arduino te koppel, maar daar is een module op die mark wat kan omskep SPI -skerm in IIC -skerm, sodat u slegs 4 drade moet aansluit
I2C / IIC LCD -skerm - Skakel 'n SPI LCD om na die I2C LCD Display: 5 stappe
I2C / IIC LCD -skerm | Skakel 'n SPI -LCD om na die I2C LCD -skerm: met behulp van spi -lcd -skerm is te veel verbindings nodig, wat baie moeilik is om te doen
Karakter LCD I2c -adapter (voorbeeld I2c -verbinding): 12 stappe (met foto's)
Karakter LCD I2c Adapter (I2c Connection Voorbeeld): Ek is besig met 'n verbindingskema vir 'n karakter display i2c adapter. Gaan die opdaterings op my webwerf na. Nou voeg ek olso 'n bedrading verbinding skema om oorspronklike biblioteek te gebruik nie my forked.LiquidCrystal Arduino biblioteek vir die karakter LCD -skerms, vurkprojekte
Hexapod Arduino Über Eine SSC32: 5 stappe
Hexapod Arduino Über Eine SSC32: Link zum http://youtu.be/E5Z6W_PGNAgMein erster versuch eines eigenbau Hexapod