Sisällysluettelo:

Uber I2C LCD -ohjainmoduuli: 6 vaihetta
Uber I2C LCD -ohjainmoduuli: 6 vaihetta

Video: Uber I2C LCD -ohjainmoduuli: 6 vaihetta

Video: Uber I2C LCD -ohjainmoduuli: 6 vaihetta
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Heinäkuu
Anonim
Uber I2C LCD -ohjainmoduuli
Uber I2C LCD -ohjainmoduuli
Uber I2C LCD -ohjainmoduuli
Uber I2C LCD -ohjainmoduuli
Uber I2C LCD -ohjainmoduuli
Uber I2C LCD -ohjainmoduuli

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

Piirin yleiskatsaus
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

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

Ohjelmiston yleiskatsaus
Ohjelmiston yleiskatsaus
Ohjelmiston yleiskatsaus
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 testaaminen
Suunnittelun testaaminen
Suunnittelun testaaminen
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: