Obsah:
- Krok 1: Prehľad obvodu
- Krok 2: Výroba DPS
- Krok 3: Prehľad softvéru
- Krok 4: Testovanie dizajnu
- Krok 5: Záver
- Krok 6: Použité referencie
Video: Modul ovládača LCD Uber I2C: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Preambula
Tento návod podrobne popisuje, ako vytvoriť modul ovládača LCD HD44780 (obrázok 1 vyššie). Modul umožňuje užívateľovi programovo ovládať všetky aspekty LCD cez I2C, vrátane: LCD a displej, intenzita kontrastu a podsvietenia. Napriek tomu, že Arduino Uno R3 bol použitý na prototyp, bude fungovať rovnako dobre s akýmkoľvek mikrokontrolérom, ktorý podporuje I2C.
Úvod
Ako už bolo spomenuté vyššie, tento článok dokumentuje vytvorenie modulu I2C LCD radiča, pôvodne bol určený ako návrhové cvičenie s cieľom určiť, ako dlho bude trvať vytvorenie funkčného plošného spoja.
Dizajn nahrádza štandardný generický modul ovládača (obr. 3 vyššie) a čerpá z inštrukcií a knižníc, ktoré som vytvoril predtým.
Od počiatočného prototypu konceptu (obrázok 2 hore) po dokončený, plne testovaný PCB (obrázok 1 vyššie) trvalo celkom 5,5 dňa.
Aké diely potrebujem? Pozrite sa na nižšie priložený zoznam materiálov
Aký softvér potrebujem?
- Arduino IDE 1.6.9,
- Kicad v4.0.7, ak chcete upraviť DPS. V opačnom prípade stačí poslať 'LCD_Controller.zip' na JLCPCB.
Aké nástroje potrebujem?
- Mikroskop najmenej x3 (na spájkovanie SMT),
- Spájkovačka SMD (s perom na tekuté tavivo a spájkovačkou s tavnou náplňou),
- Silná pinzeta (na spájkovanie SMT),
- Jemné kliešte (špicaté a s nosom),
- DMM so zvukovou kontrolou kontinuity.
Aké zručnosti potrebujem?
- Veľa trpezlivosti,
- Veľa manuálnej zručnosti a vynikajúca koordinácia ruka/oko,
- Vynikajúce spájkovacie schopnosti.
Témy pokryté
- Úvod
- Prehľad obvodu
- Výroba DPS
- Prehľad softvéru
- Testovanie dizajnu
- Záver
- Použité referencie
Krok 1: Prehľad obvodu
Kompletná schéma zapojenia všetkej elektroniky je uvedená na obrázku 1 vyššie a nižšie uvedené PDF.
Obvod bol navrhnutý tak, aby bol presnou náhradou štandardného modulu radiča LCD PCF8574A I2C s nasledujúcimi vylepšeniami;
- I2C užívateľsky voliteľná kompatibilita 3v3 alebo 5v,
- Digitálne ovládanie kontrastu alebo konvenčné nastavenie hrnca,
- Variabilný výber intenzity podsvietenia s funkciou uľahčovania Quartic na dosiahnutie plynulého vyblednutia.
Ovládanie LCD displeja
Toto je faksimile štandardného modulu I2C LCD radiča využívajúceho PCF8574A (IC2) na konverziu I2C na paralelnú.
Predvolená adresa I2C je 0x3F.
Kompatibilita 3v3 alebo 5v I2C
Pre prevádzku 3v3 sa hodia Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 a C2.
Ak je potrebná prevádzka 5 V, nemontujte žiadne komponenty 3v3, nahraďte ich odpormi 0 Ohm ROpt 3 a 4.
Digitálny kontrast
Digitálne ovládanie kontrastu sa dosahuje použitím digitálneho potenciometra U2 MCP4561-103E/MS a C4, R5.
Ak je požadovaný konvenčný mechanický potenciometer, je možné ho namiesto U2, C4 a R5 namontovať na dosku plošných spojov RV1 10K. Kompatibilný potenciometer nájdete v časti BoM.
Premostením prepojky J6 je adresa I2C 0x2E. Predpokladalo sa, že pre normálnu prevádzku je to premostené.
Variabilný výber intenzity podsvietenia
Variabilná intenzita podsvietenia je riadená moduláciou PWM podsvietenia LCD LED pomocou kolíka U1 6 a ATTiny85. Aby bola zachovaná úplná kompatibilita so štandardným modulom I2C LCD Controller, R1, T1 R7 a T2 sa používajú na moduláciu kladnej napájacej lišty.
Predvolená adresa I2C je 0x08. Toto je voliteľné užívateľom v čase kompilácie pred programovaním U1.
Krok 2: Výroba DPS
Ako už bolo spomenuté, tento návod bol cvičením, ktorého hlavným cieľom bolo zistiť, ako dlho trvá dokončenie návrhu (ktorý mal praktický účel).
V tomto prípade som myslel na pôvodný koncept v sobotu popoludní a prototyp som dokončil do sobotného večera, obrázok 1 vyššie. Moja predstava, ako bolo uvedené, bolo vytvoriť vlastný variant modulu I2C LCD radiča s rovnakou stopou, ktorý ponúka úplné programové ovládanie LCD cez I2C.
Schematický diagram a rozloženie DPS boli vyvinuté pomocou programu Kicad v4.0.7, obrázky 2 a 3. Toto bolo dokončené v nedeľu popoludní a diely boli objednané od spoločnosti Farnell a doska plošných spojov bola do nedele večera nahraná do JLCPCB.
Komponenty dorazili z Farnell v stredu, potom vo štvrtok nasledovali PCB od JLCPCB (na urýchlenie som použil doručovaciu službu DHL) obrázky 4, 5, 6 a 7.
Vo štvrtok večer boli skonštruované a úspešne testované dve dosky (varianty 3v3 a 5v) na LCD displeji 4 x 20. Obrázky 8, 9 a 10.
Úžasných 5,5 dňa od počiatočného konceptu až po dokončenie.
Zaráža ma, ako rýchlo sú JLCPCB schopné prijať objednávku, vyrobiť obojstranný PTH PCB a odoslať ho do Veľkej Británie. Blistrové 2 dni na výrobu a 2 dni na dodanie. To je rýchlejšie ako v Británii vyrábané PCB a za zlomok ceny.
Krok 3: Prehľad softvéru
Existujú tri hlavné súčasti softvéru nevyhnutné na ovládanie modulu radiča I2C LCD;
1. Knižnica LiquidCrystal_I2C_PCF8574 Arduino
K dispozícii tu
Používa sa vo vašej skici Arduino na ovládanie LCD displeja.
Poznámka: Funguje to rovnako dobre s generickým ovládačom modulu LCD I2C. Iba to poskytuje funkcie ako ostatné knižnice.
2. Knižnica Arduino MCP4561_DIGI_POT
Používa sa vo vašej skici na programové ovládanie kontrastu LCD
K dispozícii tu
3. Programové ovládanie úrovní podsvietenia LCD pomocou funkcie PWM a Quartic easing, aby sa dosiahlo plynulé blednutie
Ako už bolo spomenuté, doska obsahuje jeden ATTiny85, ktorý sa používa na ovládanie postupného slabnutia podsvietenia displeja.
Podrobnosti o tomto softvéri sú uvedené v predchádzajúcom pokyne „Hladké PWM LED blednutie s ATTiny85“
V tomto prípade, aby boli konečné rozmery DPS rovnaké ako generický modul radiča LCD, bol zvolený variant SOIC ATTiny85. Obrázky 1 a 2 ukazujú, ako bol ATTiny85 SOIC naprogramovaný a testovaný v prototype.
Kód naprogramovaný do ATTiny85 bol „Tiny85_I2C_Slave_PWM_2.ino“dostupný tu
Podrobnosti o vytvorení vlastného programátora ATTiny85 nájdete v tomto návode „Programovanie ATTiny85, ATTiny84 a ATMega328P: Arduino ako ISP“
Krok 4: Testovanie dizajnu
Na otestovanie dizajnu som vytvoril náčrt s názvom „LCDControllerTest.ino“, ktorý umožňuje používateľovi nastaviť akýkoľvek konkrétny parameter LCD priamo prostredníctvom pripojenia sériového terminálu.
Náčrt nájdete v mojom úložisku GitHub I2C-LCD-Controller-Module
Obrázok 1 vyššie zobrazuje doskový lis kompatibilný s 5v I2C namontovaný na LCD 4 x 20 a obrázok 2 na predvolené zobrazenie pri prvom spustení testovacieho kódu.
Na podsvietenie a kontrast používa nasledujúce predvolené hodnoty;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((bez znamienka) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Zistil som, že fungujú dobre s LCD displejom 4 x 20, ktorý som mal voľne položený.
Krok 5: Záver
Keď som pred nejakým časom začínal v elektronickom/softvérovom priemysle, kládol som veľký dôraz na použitie konštrukcie z drôtu alebo veroboardu na prototypovanie s veľkým množstvom nadbytočného inžinierstva na koncovom okruhu v prípade, že ste urobili chybu. vzhľadom na cenu a trvanie opätovného roztočenia dosky.
Chyba vás zvyčajne stála niekoľko týždňov podľa plánu a znížila ziskové rozpätie (a možno aj vašu prácu).
DPS sa nazývalo „umelecké dielo“, pretože išlo skutočne o umelecké dielo. Vytvorené dvakrát v plnej veľkosti pomocou lepiacej čiernej krepovej pásky „stopovačom“alebo kresličom a fotograficky zmenšené fabrikou, aby fotografia odolávala šablónam.
Schémy zapojenia boli tiež vytvorené značkovačmi a nakreslené ručne z vašich poznámok k návrhu. Kópie boli vyhotovené foto staticky a nazývali sa „modré výtlačky“. Pretože mali vždy modrú farbu.
Mikroprocesory boli len v plienkach a boli typicky v obvode emulovanom, ak si to vaša spoločnosť mohla dovoliť so sprievodným komplexným a nákladným vývojovým prostredím.
V tom čase ako výrobcovi boli iba náklady na reťazec nástrojov na vývoj softvéru príliš vysoké, boli ste nevyhnutne nútení strčiť hexadecimálne hodnoty priamo do pamäte EPROM (RAM/Flash, ak ste mali veľké šťastie) a potom hodiny interpretovať výsledné správanie, aby ste zistili, čo váš kód robil, ak nefungoval podľa očakávania (bitové „krútenie“alebo sériový printf sú najobľúbenejšími technikami ladenia. Niektoré veci sa nikdy nezmenia). Spravidla ste museli písať všetky svoje vlastné knižnice, pretože žiadna nebola k dispozícii (určite neexistoval bohatý zdroj, akým je internet).
To znamenalo, že ste strávili veľa času snahou porozumieť tomu, ako niečo funguje, a menej času tvorivou tvorbou.
Všetky vaše diagramy boli ručne nakreslené, spravidla na formát A4 alebo A3, a museli byť dôkladne premyslené, aby mali logický tok signálnej cesty zľava doprava. Opravy zvyčajne znamenali, že musíte začať s novým listom.
Váš konečný obvod bol väčšinou vyvinutý s použitím veroboardu, aby bol trvanlivý a namontovaný v jednoduchom ABS kryte, aby mu dodal „profesionálny nádych“.
Naopak, celý tento projekt som vyvinul za 5,5 dňa pomocou vysoko kvalitného bezplatného softvéru, ktorého výsledkom je profesionálna štandardná doska plošných spojov. Ak by ma túžba vzala, mohol by som ju namontovať do 3D tlačenej škatule vlastnej výroby.
Niečo, o čom ste mohli len snívať pred menej ako desaťročím.
Ako sa veci zmenili k lepšiemu.
Krok 6: Použité referencie
Schéma snímania KiCAD a návrh DPS
KiCAD EDA
Nástroj na vývoj softvéru Arduino ORG
Arduino
Knižnica LiquidCrystal_I2C_PCF8574 Arduino
Tu
MCP4561_DIGI_POT Knižnica Arduino
Tu
Hladké blednutie LED PWM s ATTiny85
Tu
Programovanie ATTiny85, ATTiny84 a ATMega328P: Arduino ako ISP
Odporúča:
LCD displej I2C / IIC - Použite SPI LCD na I2C LCD displej pomocou modulu SPI až IIC s Arduino: 5 krokov
LCD displej I2C / IIC | Použite SPI LCD na I2C LCD displej pomocou modulu SPI až IIC s Arduino: Ahoj, pretože normálny SPI LCD 1602 má príliš veľa káblov na pripojenie, takže je veľmi ťažké prepojiť ho s arduino, ale na trhu je k dispozícii jeden modul, ktorý môže preveďte displej SPI na displej IIC, takže potom potrebujete pripojiť iba 4 vodiče
Modul štítu klávesnice LCD 1602 s batohom I2C: 6 krokov
Modul štítu klávesnice LCD 1602 s batohom I2C: Ako súčasť väčšieho projektu som chcel mať LCD displej a klávesnicu na navigáciu v niektorých jednoduchých ponukách. Budem používať veľa I/O portov na Arduine na iné úlohy, takže som chcel rozhranie I2C pre LCD. Kúpil som si teda nejaký hardvér,
LCD displej I2C / IIC - Premeňte SPI LCD na I2C LCD displej: 5 krokov
LCD displej I2C / IIC | Premeňte SPI LCD na I2C LCD displej: používanie spi LCD displeja vyžaduje príliš veľa pripojení, čo je skutočne ťažké. Našiel som modul, ktorý dokáže previesť i2c LCD na spi LCD, takže môžeme začať
Modul finálneho projektu krokového ovládača: 5 krokov
Modul záverečného projektu krokového ovládača: Markíza Smith a Peter Moe-Lange
Výučba pre modul ovládača motora MD-L298: 5 krokov
Výukový program pre modul ovládača motora MD-L298: Popis Tento dvojsmerný ovládač motora vychádza z veľmi obľúbeného integrovaného radiča motora L298 Dual H-Bridge Motor Driver. Tento modul vám umožní ľahko a nezávisle ovládať dva motory až do 2A v oboch smeroch. Je ideálny pre robotické ap