Sisukord:

Uber I2C LCD kontrollerimoodul: 6 sammu
Uber I2C LCD kontrollerimoodul: 6 sammu

Video: Uber I2C LCD kontrollerimoodul: 6 sammu

Video: Uber I2C LCD kontrollerimoodul: 6 sammu
Video: Изучаем Arduino. Часть 6. OLED - дисплей. 2024, Juuli
Anonim
Uber I2C LCD kontrollerimoodul
Uber I2C LCD kontrollerimoodul
Uber I2C LCD kontrollerimoodul
Uber I2C LCD kontrollerimoodul
Uber I2C LCD kontrollerimoodul
Uber I2C LCD kontrollerimoodul

Preambul

Selles juhendis kirjeldatakse HD44780 LCD -põhise kontrollerimooduli loomist (pilt 1 ülal). Moodul võimaldab kasutajal I2C kaudu programmiliselt juhtida LCD kõiki aspekte, sealhulgas; LCD ja ekraan, kontrast ja taustvalguse intensiivsus. Ehkki selle prototüüpimiseks kasutati Arduino Uno R3, töötab see võrdselt hästi iga mikrokontrolleriga, mis toetab I2C -d.

Sissejuhatus

Nagu eespool mainitud, dokumenteerib see artikkel I2C LCD -kontrollerimooduli loomist, see oli mõeldud peamiselt projekteerimiseks, et määrata kindlaks, kui kaua kulub praktilise PCB loomiseks.

Disain asendab tavalist üldist kontrollerimoodulit (pilt 3 ülal) ja tugineb varem toodetud juhenditele ja teekidele.

Esialgsest kontseptsiooni prototüübist (pilt 2 ülal) kuni valmis, täielikult testitud PCB -ni (pilt 1 ülal) kulus kokku 5,5 päeva.

Milliseid osi mul vaja on? Vaadake allolevat materjalide nimekirja

Millist tarkvara ma vajan?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7, kui soovite PCBd muuta. Vastasel juhul saatke lihtsalt fail LCD_Controller.zip JLCPCB -le.

Milliseid tööriistu ma vajan?

  • Mikroskoop vähemalt x3 (SMT jootmiseks),
  • SMD jootekolb (vedeliku vooliku ja pliiatsiga joodisega),
  • Tugevad pintsetid (SMT jootmiseks),
  • Peened tangid (terav ja ninaga),
  • DMM koos kuuldava järjepidevuse kontrolliga.

Milliseid oskusi mul vaja on?

  • Palju kannatust,
  • Suur käteosavus ja suurepärane käte/silmade koordinatsioon,
  • Suurepärane jootmisoskus.

Käsitletud teemad

  • Sissejuhatus
  • Ahela ülevaade
  • PCB tootmine
  • Tarkvara ülevaade
  • Disaini testimine
  • Järeldus
  • Kasutatud viited

1. samm: ahela ülevaade

Ahela ülevaade
Ahela ülevaade

Kogu elektroonika täielik skeem on toodud ülaltoodud pildil 1 koos sama PDF -iga allpool.

Vooluahel oli mõeldud standardse PCF8574A I2C LCD kontrollerimooduli täpseks asendajaks järgmiste täiustustega;

  • I2C kasutaja valitav 3v3 või 5v ühilduvus,
  • Digitaalne kontrastsuse juhtimine või tavapärane poti seadistus,
  • Muutuv taustvalguse intensiivsuse valik koos kvartsi leevendusfunktsiooni juhtimisega, et saavutada sujuv tuhmumine.

LCD -ekraani juhtimine

See on standardse I2C LCD kontrollerimooduli faks, mis kasutab PCF8574A (IC2) I2C paralleelseks teisendamiseks.

Selle I2C vaikimisi aadress on 0x3F.

3v3 või 5v I2C ühilduvus

3v3 töö jaoks sobivad Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 ja C2.

Kui on vaja 5 -voldist tööd, siis ärge paigaldage ühtegi 3v3 komponenti, asendades need 0 -oomiliste takistitega ROpt 3 ja 4.

Digitaalne kontrast

Digitaalse kontrastsuse juhtimine saavutatakse digitaalse potentsiomeetri U2 MCP4561-103E/MS ja C4, R5 abil.

Kui on vaja tavalist mehaanilist potentsiomeetrit, saab selle paigaldada trükkplaadile RV1 10K U2, C4 ja R5 asemel. Vaata ühilduvat potentsiomeetrit BoM -ist.

Ühendades hüppaja J6, on I2C aadress 0x2E. Eeldati, et normaalseks tööks on see sild.

Muutuva taustvalguse intensiivsuse valik

Muutuvat taustvalgustuse intensiivsust reguleeritakse LCD LED -taustvalgustuse PWM -modulatsiooniga U1 kontakti 6 ja ATTiny85 kaudu. Täieliku ühilduvuse säilitamiseks standardse I2C LCD -kontrolleri mooduliga R1, T1 R7 ja T2 kasutatakse +ve toitepiirkonna moduleerimiseks.

Selle I2C vaikimisi aadress on 0x08. See on kasutaja valitav kompileerimise ajal enne U1 programmeerimist.

2. etapp: trükkplaatide tootmine

PCB tootmine
PCB tootmine
PCB tootmine
PCB tootmine
PCB tootmine
PCB tootmine
PCB tootmine
PCB tootmine

Nagu varem mainitud, oli see juhendamine harjutus, mille eesmärk oli peamiselt kindlaks teha, kui kaua kulub kavandi (millel oli praktiline eesmärk) valmimiseks.

Sel juhul mõtlesin esialgsele kontseptsioonile laupäeva pärastlõunal ja olin prototüübi lõpule viinud laupäeva õhtuks ülaltoodud pildil 1. Minu idee, nagu öeldud, oli luua oma I2C LCD -kontrollerimooduli variant, millel on identne jalajälg, pakkudes LCD -l täielikku programmilist kontrolli I2C üle.

Skemaatiline diagramm ja trükkplaatide paigutus töötati välja koos Kicad v4.0.7 piltidega 2 ja 3. See viidi lõpule pühapäeva pärastlõunal ja osad telliti Farnellilt ning PCB laaditi pühapäeva õhtuks üles JLCPCB -sse.

Komponendid saabusid Farnellist kolmapäeval, seejärel neljapäeval JLCPCB trükkplaadid (kasutasin asja kiirendamiseks DHL -i kohaletoimetamisteenust), pildid 4, 5, 6 ja 7.

Neljapäeva õhtuks oli konstrueeritud kaks tahvlit (3v3 ja 5v variandid) ja neid oli edukalt testitud 4x20 LCD -ekraanil. Pildid 8, 9 ja 10.

Hämmastav 5,5 päeva esialgsest ideest kuni selle valmimiseni.

Mind hämmastab, kui kiiresti suudavad JLCPCB tellimuse vastu võtta, kahepoolse PTH trükkplaadi valmistada ja Ühendkuningriiki saata. Villid 2 päeva tootmiseks ja 2 päeva kohaletoimetamiseks. See on kiirem kui Ühendkuningriigis asuvate trükkplaatide tootjate puhul ja murdosa hinnast.

3. samm: tarkvara ülevaade

Tarkvara ülevaade
Tarkvara ülevaade
Tarkvara ülevaade
Tarkvara ülevaade

Tarkvaral on kolm põhikomponenti, mis on vajalikud I2C LCD kontrollerimooduli juhtimiseks;

1. LiquidCrystal_I2C_PCF8574 Arduino raamatukogu

Saadaval siin

Kasutatakse teie Arduino visandis LCD -ekraani juhtimiseks.

Märkus. See töötab võrdselt hästi ka üldise I2C LCD -moodulikontrolleriga. Ainult see annab funktsionaalsust kui teised raamatukogud.

2. MCP4561_DIGI_POT Arduino raamatukogu

Kasutatakse eskiisis LCD -kontrastsuse programmiliseks juhtimiseks

Saadaval siin

3. LCD taustvalgustuse taseme programmeerimine PWM ja Quartic leevendusfunktsiooni abil, et saavutada sujuv tuhmumine

Nagu varem mainitud, sisaldab plaat ühte ATTiny85, mida kasutatakse ekraani taustvalgustuse järkjärgulise tuhmumise kontrollimiseks.

Selle tarkvara üksikasjad on toodud varasemas juhendatavas „Sujuv PWM -LED -i tuhmumine ATTiny85 -ga”

Sel juhul, et PCB lõplikud mõõtmed oleksid samad, mis tavalisel LCD -kontrollerimoodulil, valiti ATTiny85 SOIC -variant. Pildid 1 ja 2 näitavad, kuidas ATTiny85 SOIC programmeeriti ja testiti seadistatud prototüübis.

ATTiny85 -sse programmeeritud kood oli 'Tiny85_I2C_Slave_PWM_2.ino', mis on saadaval siin

Üksikasjaliku teabe saamiseks selle kohta, kuidas luua oma ATTiny85 programmeerijat, vaadake seda juhendit „ATTiny85, ATTiny84 ja ATMega328P programmeerimine: Arduino kui ISP”

4. samm: disaini testimine

Disaini testimine
Disaini testimine
Disaini testimine
Disaini testimine

Disaini testimiseks lõin visandi nimega "LCDControllerTest.ino", mis võimaldab kasutajal määrata mis tahes LCD -parameetri otse jadaklemmühenduse kaudu.

Eskiisi leiate minu GitHubi hoidlast I2C-LCD-Controller-Module

Ülaltoodud pildil 1 on näidatud 5v I2C ühilduv plaadipress, mis on paigaldatud 4x20 LCD -le, ja pilt 2 on vaikekuva, kui testkoodi esmakordselt käivitatakse.

Taustvalgustuse ja kontrasti jaoks kasutatakse järgmisi vaikeväärtusi;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((allkirjata pikk) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Leidsin, et need töötasid hästi 4 x 20 LCD -ekraaniga, mis mul varuks oli.

5. samm: järeldus

Kui ma juba mõnda aega tagasi esimest korda elektroonika-/tarkvaratööstuses alustasin, oli suur rõhk traadipakendi või veroboard-konstruktsiooni kasutamisel prototüüpimiseks, kusjuures lõppskeemil oli palju ülekonstrueerimist, juhuks kui oleksite eksinud., arvestades tahvli uuesti keerutamise maksumust ja kestust.

Viga maksis teile ajakavas tavaliselt paar nädalat ja lõi kasumimarginaali (ja võib -olla ka teie töö) õhku.

PCBsid nimetati kunstiteosteks, sest need olid tõeliselt kunstiteosed. Loodud kaks korda täissuuruses kleepuva musta krepplindi abil, mille on joonistanud „joonistaja” või joonistaja, ja kunstimaja vähendas seda fotograafiliselt, et muuta foto šabloonide vastu.

Lülitusskeemid lõid ka märgistajad ja need joonistati käsitsi teie disainimärkmetest. Koopiad tehti fotostaatiliselt ja neid nimetati sinisteks väljatrükkideks. Kuna need olid alati sinist värvi.

Mikrokontrollerid olid alles lapsekingades ja tavaliselt vooluringis emuleeritud, kui teie ettevõte saaks seda endale lubada koos kaasneva keeruka ja kuluka arenduskeskkonnaga.

Tollase tegijana oli tarkvaraarendustööriistade keti ainuüksi maksumus ülemäärane, olite paratamatult sunnitud heksaklassi väärtusi otse EPROM -i sisestama (RAM/Flash, kui teil väga vedas) ja kulutasite seejärel tunde, tõlgendades sellest tulenevat käitumist. teie kood toimis, kui see ei tööta ootuspäraselt (bit 'wiggling' või seeriaprintf on kõige populaarsemad silumismeetodid. Mõned asjad ei muutu kunagi). Tavaliselt pidite kirjutama kõik oma teegid, kuna neid polnud saadaval (kindlasti polnud sellist rikkalikku allikat nagu Internet).

See tähendas, et veetsite palju aega, püüdes mõista, kuidas miski töötas, ja kulutasite vähem aega loominguliselt.

Kõik teie skeemid olid käsitsi joonistatud, tavaliselt A4 või A3, ja need tuli põhjalikult läbi mõelda, andes neile loogilise signaalitee voo vasakult paremale. Parandused tähendasid tavaliselt, et peate alustama värske lehega.

Enamikul juhtudel töötati teie lõplik vooluring püsivuse huvides välja veroboardi abil ja paigaldati lihtsasse ABS -korpusesse, et anda sellele professionaalne puudutus.

Selge kontrastina töötasin kogu selle projekti välja 5,5 päevaga, kasutades kvaliteetset vabavara, mille tulemuseks oli professionaalne standardne trükkplaat. Kui soov oleks mind võtnud, oleksin võinud selle paigaldada enda tehtud 3D -prinditud kasti.

Midagi, millest oleks võinud vähem kui kümme aastat tagasi unistada.

Kuidas asjad on paremuse poole muutunud.

6. samm: kasutatud viited

KiCAD Skemaatiline püüdmine ja trükkplaatide disain

KiCAD EDA

Arduino ORG tarkvaraarendustööriist

Arduino

LiquidCrystal_I2C_PCF8574 Arduino raamatukogu

Siin

MCP4561_DIGI_POT Arduino raamatukogu

Siin

Sujuv PWM LED -i tuhmumine ATTiny85 -ga

Siin

ATTiny85, ATTiny84 ja ATMega328P programmeerimine: Arduino ISP -na

Soovitan: