Sisällysluettelo:
- Vaihe 1: Piirin yleiskatsaus
- Vaihe 2: PCB -valmistus
- Vaihe 3: Ohjelmiston yleiskatsaus
- Vaihe 4: Suunnittelun testaaminen
- Vaihe 5: Johtopäätös
- Vaihe 6: Käytetyt viitteet
Video: Uber I2C LCD -ohjainmoduuli: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Johdanto
Tässä ohjeessa kuvataan yksityiskohtaisesti HD44780 LCD -pohjaisen ohjainmoduulin luominen (kuva 1 yllä). Moduulin avulla käyttäjä voi hallita kaikkia LCD -näytön ominaisuuksia ohjelmallisesti I2C: n kautta, joka käsittää; LCD ja näyttö, kontrasti ja taustavalon voimakkuus. Vaikka Arduino Uno R3: ta käytettiin sen prototyypin muodostamiseen, se toimii yhtä hyvin minkä tahansa I2C: tä tukevan mikro -ohjaimen kanssa.
Johdanto
Kuten edellä mainittiin, tämä artikkeli dokumentoi I2C LCD -ohjainmoduulin luomisen, ja se oli ensisijaisesti tarkoitettu suunnittelutyöksi sen määrittämiseksi, kuinka kauan käytännön toimivan PCB: n luominen kestää.
Suunnittelu korvaa tavallisen yleisen ohjainmoduulin (kuva 3 yllä) ja hyödyntää aiemmin tuottamiani Instructables- ja kirjastoja.
Alkuperäisestä konseptin prototyypistä (kuva 2 yllä) valmis, täysin testattu PCB (kuva 1 yllä) kesti yhteensä 5,5 päivää.
Mitä osia tarvitsen? Katso alla oleva materiaaliluettelo
Mitä ohjelmistoja tarvitsen?
- Arduino IDE 1.6.9,
- Kicad v4.0.7, jos haluat muuttaa piirilevyä. Muussa tapauksessa lähetä vain "LCD_Controller.zip" JLCPCB: lle.
Mitä työkaluja tarvitsen?
- Mikroskooppi vähintään x3 (SMT -juotos),
- SMD -juotosrauta (nestevuotokynällä ja juoksevalla juotoksella),
- Vahvat pinsetit (SMT -juottamiseen),
- Hienot pihdit (kärki ja nokka)
- DMM ja jatkuvan jatkuvuuden tarkistus.
Mitä taitoja tarvitsen?
- Paljon kärsivällisyyttä,
- Paljon kädentaitoja ja erinomainen käden/silmän koordinaatio,
- Erinomaiset juotostaidot.
Käsitellyt aiheet
- Johdanto
- Piirin yleiskatsaus
- PCB -valmistus
- Ohjelmiston yleiskatsaus
- Suunnittelun testaaminen
- Johtopäätös
- Käytetyt viitteet
Vaihe 1: Piirin yleiskatsaus
Täysi piirikaavio kaikesta elektroniikasta on esitetty yllä olevassa kuvassa 1 ja alla oleva PDF -tiedosto.
Piiri on suunniteltu korvaamaan tarkka PCF8574A I2C LCD -ohjainmoduuli seuraavilla parannuksilla;
- I2C -käyttäjän valittavissa oleva 3v3- tai 5v -yhteensopivuus,
- Digitaalinen kontrastisäätö tai perinteinen potin asetus,
- Vaihteleva taustavalon voimakkuuden valinta Quartic -lievennystoiminnon avulla tasaisen häipymisen aikaansaamiseksi.
LCD -näytön ohjaus
Tämä on faksi tavallisesta I2C LCD -ohjainmoduulista, joka käyttää PCF8574A (IC2) I2C -rinnakkaismuunnosta.
Tämän I2C -oletusosoite on 0x3F.
3v3- tai 5v -I2C -yhteensopivuus
Sovita 3v3 -toimintaan Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 ja C2.
Jos 5 V: n käyttö on tarpeen, älä asenna 3v3 -komponentteja, vaan korvaa ne 0 ohmin vastuksilla ROpt 3 ja 4.
Digitaalinen kontrasti
Digitaalinen kontrastisäätö saavutetaan käyttämällä digitaalista potentiometriä U2 MCP4561-103E/MS ja C4, R5.
Jos tarvitaan tavanomainen mekaaninen potentiometri, se voidaan asentaa piirilevyyn, RV1 10K, U2: n, C4: n ja R5: n sijasta. Katso yhteensopiva potentiometri kohdasta BoM.
Siltaamalla hyppyjohdin J6 I2C -osoite on 0x2E. Se oletti normaalikäytössä olevan sillan.
Säädettävä taustavalon voimakkuus
Taustavalon voimakkuutta säädetään LCD -LED -taustavalon PWM -modulaatiolla U1 -nastan 6 ja ATTiny85: n kautta. Täyden yhteensopivuuden säilyttämiseksi vakiomuotoisen I2C -nestekontrollerimoduulin kanssa R1, T1 R7 ja T2 käytetään +ve -syöttökiskon modulointiin.
Tämän I2C -oletusosoite on 0x08. Tämä on käyttäjän valittavissa käännöshetkellä ennen ohjelmointia U1.
Vaihe 2: PCB -valmistus
Kuten aiemmin mainittiin, tämä ohje oli harjoitus, jonka pääasiallisena tarkoituksena oli määrittää, kuinka kauan suunnittelun suorittaminen kestää (sillä oli käytännön tarkoitus).
Tässä tapauksessa ajattelin alkuperäistä konseptia lauantaina iltapäivällä ja olin valmistanut prototyypin lauantai -iltana kuva 1 yllä. Ajatukseni oli, kuten sanottu, luoda oma variantti I2C LCD -ohjainmoduulista, jolla on sama jalanjälki ja joka tarjoaa LCD: n täydellisen ohjelmallisen ohjauksen I2C: n yli.
Kaavamainen kaavio ja piirilevyasettelu kehitettiin Kicad v4.0.7 -kuvilla 2 ja 3. Tämä valmistui sunnuntai -iltapäivällä ja osat tilattiin Farnellilta ja piirilevy ladattiin JLCPCB: hen sunnuntai -iltaan mennessä.
Komponentit saapuivat Farnellista keskiviikkona, ja sen jälkeen JLCPCB: n piirilevyt torstaina (käytin nopeuttamaan DHL -toimituspalvelua) kuvat 4, 5, 6 ja 7.
Torstai -iltaan mennessä kaksi levyä (3v3 ja 5v) oli rakennettu ja testattu onnistuneesti 4 x 20 LCD -näytöllä. Kuvat 8, 9 ja 10.
Hämmästyttävä 5,5 päivää alkuperäisestä ideasta valmistumiseen.
Minua hämmästyttää kuinka nopeasti JLCPCB pystyy vastaanottamaan tilauksen, valmistamaan kaksipuolisen PTH -piirilevyn ja toimittamaan sen Iso -Britanniaan. Läpipainopakkaus 2 päivää valmistukseen ja 2 päivää toimitukseen. Tämä on nopeampaa kuin Yhdistyneessä kuningaskunnassa toimivat PCB -valmistajat ja murto -osalla hinnasta.
Vaihe 3: Ohjelmiston yleiskatsaus
Ohjelmistossa on kolme pääosaa, joita tarvitaan I2C LCD -ohjainmoduulin ohjaamiseen;
1. LiquidCrystal_I2C_PCF8574 Arduino -kirjasto
Saatavana täältä
Käytetään Arduino -luonnoksessa nestekidenäytön ohjaamiseen.
Huomautus: Tämä toimii yhtä hyvin yleisen I2C LCD -moduuliohjaimen kanssa. Vain se antaa toiminnallisuutta kuin muut kirjastot.
2. MCP4561_DIGI_POT Arduino -kirjasto
Käytetään luonnoksessa LCD -kontrastin ohjelmalliseen hallintaan
Saatavana täältä
3. Nestekidenäytön taustavalon ohjelmoitu ohjaus PWM- ja Quartic -lievennystoiminnon avulla tasaisen häipymisen aikaansaamiseksi
Kuten aiemmin mainittiin, levyllä on yksi ATTiny85, jota käytetään ohjaamaan näytön taustavalon asteittaista häipymistä.
Tämän ohjelmiston tiedot on annettu aiemmassa opastettavassa 'Smooth PWM LED Fading With the ATTiny85'
Tässä tapauksessa, jotta PCB: n lopulliset mitat pysyisivät samoina kuin yleinen LCD -ohjausmoduuli, valittiin ATTiny85: n SOIC -versio. Kuvat 1 ja 2 osoittavat, kuinka ATTiny85 SOIC ohjelmoitiin ja testattiin asetetussa prototyypissä.
ATTiny85: een ohjelmoitu koodi oli 'Tiny85_I2C_Slave_PWM_2.ino' saatavilla täältä
Lisätietoja oman ATTiny85 -ohjelmoijan luomisesta on tässä oppaassa 'ATTiny85: n, ATTiny84: n ja ATMega328P: n ohjelmointi: Arduino ISP: nä'
Vaihe 4: Suunnittelun testaaminen
Suunnittelun testaamiseksi olen luonut luonnoksen nimeltä "LCDControllerTest.ino", jonka avulla käyttäjä voi asettaa minkä tahansa nestekidenäytön parametrin suoraan sarjaliitännän kautta.
Luonnos löytyy GitHub-arkistostani I2C-LCD-Controller-Module
Yllä olevassa kuvassa 1 näkyy 5 x I2C -yhteensopiva piirilevypuristin, joka on asennettu 4 x 20 nestekidenäyttöön, ja kuva 2 oletusnäyttö, kun testikoodi suoritetaan ensimmäisen kerran.
Se käyttää seuraavia taustavalon ja kontrastin oletusarvoja;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((allekirjoittamaton pitkä) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Huomasin, että nämä toimivat hyvin 4 x 20 LCD -näytön kanssa, joka minulla oli varaosana.
Vaihe 5: Johtopäätös
Kun aloitin elektroniikka-/ohjelmistoalalla jo jonkin aikaa sitten, korostettiin suuresti lankakäärön tai veroboard-rakenteen käyttöä prototyyppien valmistuksessa, ja lopullisessa piirissä oli paljon ylimitoitusta, jos olisit tehnyt virheen, kun otetaan huomioon levyn uudelleenpyöräytyksen hinta ja kesto.
Virhe maksoi sinulle yleensä muutaman viikon aikataulussa ja räjäytti voittomarginaalin (ja mahdollisesti työsi).
Piirilevyjä kutsuttiin taideteoksiksi, koska ne olivat todella taideteoksia. Luotu kaksi kertaa täysikokoisena käyttämällä tahmeaa mustaa kreppiteippiä 'jäljittäjän' tai piirtäjän toimesta, ja upeassa talossa pienennetty valokuvaus, jotta valokuva kestäisi stensiilit.
Piirikaaviot on myös luotu merkkiaineilla ja piirretty käsin suunnittelumerkinnöistäsi. Kopiot tehtiin valokuvasta staattisesti ja niitä kutsuttiin sinisiksi tulosteiksi. Koska ne olivat aina väriltään sinisiä.
Mikro-ohjaimet olivat vasta alkuvaiheessaan ja tyypillisesti piirissä emuloituja, jos yritykselläsi oli varaa sellaiseen monimutkaisen ja kalliin kehitysympäristön kanssa.
Tuolloin valmistajana ohjelmistokehitystyökaluketjun pelkkä hinta oli kohtuuton, jouduit väistämättä pakottamaan heksadesimaaliarvot suoraan EPROMiin (RAM/Flash, jos olet erittäin onnekas) ja sitten tuntikausia tulkitsemaan tuloksena olevaa käyttäytymistä sen määrittämiseksi, mitä koodisi toimi, jos se ei toiminut odotetulla tavalla (bittinen heiluminen tai sarjatulostus on suosituin virheenkorjaustekniikka. Jotkut asiat eivät koskaan muutu). Sinun oli tyypillisesti kirjoitettava kaikki omat kirjastosi, koska niitä ei ollut saatavilla (ei varmasti ollut rikasta lähdettä, kuten Internet).
Tämä tarkoitti sitä, että käytit paljon aikaa yrittäessäsi ymmärtää, miten jokin toimi, ja vietit vähemmän aikaa luovaan tekemiseen.
Kaikki kaaviosi piirrettiin käsin, tyypillisesti A4- tai A3 -kokoisina, ja ne oli harkittava perusteellisesti, mikä antoi heille loogisen signaalireitin vasemmalta oikealle. Korjaukset merkitsivät yleensä sitä, että sinun oli aloitettava tuoreella arkilla.
Suurin osa lopullisesta piiristäsi kehitettiin veroboardilla pysyvyyttä varten ja asennettiin yksinkertaiseen ABS -koteloon, jotta se olisi "ammattimainen".
Jyrkässä kontrastissa kehitin koko tämän projektin 5,5 päivässä käyttämällä korkealaatuisia ilmaisia ohjelmistoja, mikä johti ammattimaiseen standardipiirilevyyn. Jos halu olisi vienyt minut, olisin voinut asentaa sen itse tekemääni 3D -tulostettuun laatikkoon.
Asiasta, josta olisit voinut uneksia alle kymmenen vuotta sitten.
Kuinka asiat ovat muuttuneet parempaan suuntaan.
Vaihe 6: Käytetyt viitteet
KiCAD Kaavamainen sieppaus ja piirilevyjen suunnittelu
KiCAD EDA
Arduino ORG -ohjelmistokehitystyökalu
Arduino
LiquidCrystal_I2C_PCF8574 Arduino -kirjasto
Tässä
MCP4561_DIGI_POT Arduino -kirjasto
Tässä
Tasainen PWM -LED -himmennys ATTiny85: n kanssa
Tässä
ATTiny85-, ATTiny84- ja ATMega328P -ohjelmointi: Arduino ISP: nä
Suositeltava:
Uber -painike: 7 vaihetta
Uber -painike: Hanki Uber -kyyti vain painiketta painamalla! sijainti tietylle
I2C / IIC LCD -näyttö - Käytä SPI -nestekidenäyttöä I2C -nestekidenäyttöön SPI -IIC -moduulin käyttäminen Arduinon kanssa: 5 vaihetta
I2C / IIC LCD -näyttö | Käytä SPI LCD -näyttöä I2C LCD -näyttöön SPI to IIC -moduulin käyttäminen Arduinon kanssa: Hei kaverit, koska normaalissa SPI LCD 1602 -laitteessa on liikaa johtoja liitettäväksi, joten sen yhdistäminen arduinoon on erittäin vaikeaa, mutta markkinoilla on yksi moduuli, joka voi muuntaa SPI -näytön IIC -näyttöksi, joten sinun on liitettävä vain 4 johtoa
I2C / IIC LCD -näyttö - Muunna SPI -nestekidenäyttö I2C -nestekidenäytöksi: 5 vaihetta
I2C / IIC LCD -näyttö | Muunna SPI -nestekidenäyttö I2C -nestekidenäytöksi: spi lcd -näytön käyttäminen vaatii liikaa yhteyksiä, mikä on todella vaikeaa, joten löysin moduulin, joka voi muuntaa i2c LCD: n spi lcd: ksi, joten aloitetaan
Merkkinäytön I2c -sovitin (esimerkki I2c -liitäntä): 12 vaihetta (kuvien kanssa)
Merkkien nestekidenäyttöinen I2c -sovitin (esimerkki I2c -yhteydestä): Teen yhteysmallia merkkinäytön i2c -sovittimelle. Tarkista sivustoni päivitykset. merkkien LCD -näytöille, haarukkaprojekteille
Hexapod Arduino Über Eine SSC32: 5 vaihetta
Hexapod Arduino Über Eine SSC32: Link zum http://youtu.be/E5Z6W_PGNAgMein erster versuch eines eigenbau Hexapod