» elektroniikka » Työläs »Arduino-kello lämpötila-anturilla ja ilman RTS: tä

Arduino-kello lämpötila-anturilla ja ilman RTS: tä

Arduino-kello lämpötila-anturilla ja ilman RTS: tä

Hyvää iltapäivää, tänään jaan ohjeet siitä, kuinka katsella huoneen lämpömittarilla. Kello jatkuu Työläs UNO, WG12864B graafista näyttöä käytetään ajan ja lämpötilan näyttämiseen. Lämpötila-anturina - ds18b20. Toisin kuin useimmat muut kellot, en aio käyttää RTS: tä (Real Time Clock), vaan yritän tehdä ilman tätä lisämoduulia.

Tätä varten kotitekoinen Seuraavat komponentit vaaditaan:
- Arduino UNO (tai mikä tahansa muu Arduino-yhteensopiva levy)
- Graafinen näyttö WG12864B
- ds18b20-lämpötila-anturi
- Vastus 4,7 Kom 0,25 W
- Vastus 100 ohmia 0,25 W
- Paristolokero neljälle AA-paristolle, jotka ovat ”sormityyppisiä”
- Sopiva laatikko
- Pieni tiedosto
- kynsilakka (musta tai vartalonvärinen)
- Hieman ohut muovi tai pahvi
- sähköteippi
- kytkentäjohdot
- piirilevy
- Painikkeet
- juotosrauta
- Juote, hartsi
- Kaksipuolinen teippi

Vaihe 1 Kotelon valmistelu.
Joten kellomme pitäisi sijaita jossain. Sinun on löydettävä sopiva laatikko. Tärkeintä on, että WG12864B-näyttö, Arduino ja pieni painikkeiden piirilevy mahtuvat siihen. Laatikon vähimmäiskoko on 7 x 7 x 10 cm. Jos käytät pientä Arduino-lautaa, voit laittaa sen laatikkoon ja pienempään, mutta kuvaan prosessia käyttämällä Arduino UNO: ta esimerkkinä. Materiaali, josta laatikko on valmistettu, on mieluiten muovia, jos, kuten minunkin, se on rautaa, on syytä huolehtia eristyksestä, jotta sisällä ei ole mitään "kiertää". Muovi on parempi, koska sitä on helpompi leikata. Laatikon kanssa hän on tapa meidän kellot, päätti. Nyt on tarpeen leikata ikkuna näytön alapuolelle, jonka koko on 6,5x4 cm. Jos laatikko on rautaa, se on erittäin vaikea tehdä huolellisesti. Riippumatta siitä, kuinka yrität, leikkauksen lähellä on halkeilevaa maalia ja epätasaisuutta. Siksi leikataan ensin se pois. Tätä varten voit käyttää ”jauhatuslaitetta”, leikkaussuuttimella varustettua poraa tai yleensä valintasi jyrsinä käsillä olevan kanssa. Sen jälkeen puhdistamme reunat tiedostolla. Maalaa kaikki halkeillut maalit sopivalla värellä kynsilakalla. Tuloksen tulisi olla seuraava:


Vaihe 2 Valmistele graafinen näyttö.
Näytön yhdistämisen yhteydessä ensi silmäyksellä syntyy monia ongelmia ja vaikeuksia. Mutta jos käsittelet ensin niiden tyyppejä, siitä tulee paljon helpompaa ja ymmärrettävämpää. Ks0107 / ks0108-ohjaimessa on monia variaatioita ja näyttötyyppejä.Kaikki näytöt jaetaan yleensä neljään tyyppiin:
Vaihtoehto A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Vaihtoehto B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Näyttää AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1,
Vaihtoehto C: Shenzhen Jinghua Displays Co Ltd. JM12864
Vaihtoehto D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Luettelo ei ole täydellinen, heitä on paljon. Yleisin ja mielestäni kätevin WG12864B3 V2.0. Näyttö voidaan kytkeä Arduinoon sarja- tai rinnakkaisportin kautta. Kun sitä käytetään Arduino UNO: n kanssa, on parempi valita sarjaporttiyhteys - tarvitsemme sitten vain 3 mikrokontrollerin lähtöä vähintään 13 linjan sijasta, kun ne on kytketty rinnakkaisportin kautta. Kaikki on kytketty yksinkertaisesti. On vielä yksi vivahdus, myynnissä on kahden tyyppisiä näytöitä, joissa on sisäänrakennettu potentiometri (kontrastin säätämiseksi) ja ilman sitä. Olen valinnut, ja kehotan teitä tekemään saman sisäänrakennetun kanssa.


Tämä vähentää osien lukumäärää ja juotosaikaa. On myös syytä laittaa taustavaloon nykyinen 100 ohmin rajoittava vastus. Kytkemällä 5 volttia suoraan, on vaara, että taustavalo palaa.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - vastuksen kautta - + 5 V
20 (BLK) - GND

Kätevin asia on kerätä kaikki näytön takana ja tulostaa siitä 5 johtoa yhdistääksesi Arduino UNO: hon. Tuloksen pitäisi olla jotain tällaista:


Niille, jotka edelleen valitsevat rinnakkaisyhteyden, annan yhteystaulukon.


Ja vaihtoehdon B näyttöjen asettelu:


Vaihe 3 Kytke lämpötila-anturi.
Kuten sanoin, lämpötilan mittaamiseen käytetään integroitua DS18B20-anturia. Valitsin sen korkeasta mittaustarkkuudesta, virhe on enintään 0,5 ° C. Anturi kalibroidaan valmistushetkellä, lisäasetuksia ei tarvita. Lämpötilan mittausalue -55 ... + 125 ° C. Toimintatapoja on kaksi: ulkoisella virtalähteellä ja "väärin". Kun toimitaan ulkoisessa virrankäytössä, yhteys on seuraava:


Kun käytetään vääriä voimia, anturi vastaanottaa virtaa tietoliikennelinjalta. Tässä tilassa kaksi johtoa riittää yhdistämään ds18b20 mikro-ohjaimeen. Anturin sisäinen kondensaattori on varautunut tietoliikennelinjan energian vuoksi matalalla väylän tasolla. "Loisravinto" -tilassa on monia ominaisuuksia, joten en suosittele sen käyttöä. Mutta jos päätät silti käyttää sitä, tässä on kaavio:


Tai voit käyttää parannettua kytkentäkaaviota käyttäessäsi "vääriä voimia":


Yhdelle viestintälinjalle voidaan sisällyttää useita antureita. Kellollemme yksi riittää. Yhdistämme johtimen “DQ” ds18b20-nastasta “nastaan ​​5” Arduino UNO.

Vaihe 4 Painikkeilla olevan taulun valmistelu.
Asetamme kellonajan ja päiväyksen kellonajalla kolmella painikkeella. Mukavuussyistä juotosta piirilevyn kolme painiketta ja kaapelia.


Yhdistämme seuraavasti: Kaikille kolmelle painikkeelle yhteinen johdin on kytketty “GND” Arduinoon. Ensimmäinen painike, jonka avulla päästään ajan asetustilaan ja vaihdetaan ajan ja päivämäärän välillä, muodostetaan yhteys "Pin 2". Toinen, arvonkorotuspainike, on "Pin 3", ja kolmas, arvon pienentämispainike, on "Pin 4".

Vaihe 5 Laita se kaikki yhteen.
Oikosulun välttämiseksi eristä näyttö. Ympyrässä kääritään teipillä ja kiinnitämme takapuolelle kaksipuoliseen, kokoon leikattuun teippiin, eristemateriaalinauhaksi. Paksu pahvi tai ohut muovi ovat sopivia. Käytin muovia paperitabletilta. Kävi ilmi seuraavaa:


Näytön etuosan reunaa kohti liimataan kaksipuolinen teippi vaahtopohjaisesti, mieluiten mustaa.


Yhdistämme näytön Arduinoon:


Lisäksi yhdistämme paristokotelosta “VIN” Arduinoon, miinus “GND”. Sijoita se Arduinon taakse. Ennen kuin asennat kotelon, älä unohda kytkeä lämpötila-anturia ja levyä painikkeilla.


Vaihe 6 Valmistele ja täytä luonnos.
Lämpötila-anturi tarvitsee OneWire-kirjaston.
onewire.rar [16,75 kt] (lataukset: 154)


Näyttö tulee U8glib-kirjaston kautta:
u8glib.rar [906,95 kt] (lataukset: 156)


Asenna nämä kaksi kirjastoa muokataksesi ja täyttääksesi luonnosta. Tähän on kaksi tapaa. Pura vain nämä arkistot ja aseta pakkaamattomat tiedostot ”kirjastojen” kansioon, joka sijaitsee kansiossa, jossa Arduino IDE on asennettu.Tai toinen vaihtoehto on asentaa kirjasto suoraan ohjelmointiympäristöön. Puramatta ladattuja arkistoja, valitse Arduino IDE: ssä Sketch - Connect Library -valikko. Valitse avattavan luettelon yläosasta "Lisää .Zip-kirjasto". Valitse avautuvassa valintaikkunassa kirjasto, jonka haluat lisätä. Avaa Sketch - Connect Library -valikko uudelleen. Avattavan luettelon alaosassa pitäisi olla uusi kirjasto. Nyt kirjastoa voidaan käyttää ohjelmissa. Älä unohda käynnistää Arduino IDE uudelleen tämän jälkeen.

Lämpötila-anturi toimii One Wire -protokollan mukaisesti ja sillä on jokaiselle laitteelle yksilöivä osoite - 64-bittinen koodi. Joka kerta, tämän koodin etsiminen on epäkäytännöllistä. Siksi sinun on ensin kytkettävä anturi Arduinoon, täytä luettelo Tiedosto - Esimerkit - Dallas-lämpötila - OneWireSearch-valikosta. Suorita seuraavaksi Työkalut - Portmonitori. Arduinon pitäisi löytää anturi, kirjoittaa sen osoite ja nykyiset lämpötilalukemat. Kopioimme tai yksinkertaisesti kirjoitamme anturimme osoitteen. Avaa luonnos Arduino_WG12864B_Term, etsi rivi:

tavun addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // anturini osoite 


Me kirjoitamme anturisi osoitteen pidikkeiden väliin korvaamalla anturini osoitteen.

Kuva:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Tulosta sekuntia tarkistaaksesi kurssin oikeellisuuden


Näyttää sekunnit ”Data” -kohdan vieressä. Tämä on tarpeen ajan kulun oikean asettamiseksi.
Jos kello on kiireessä tai myöhässä, sinun tulisi muuttaa rivin arvoa:

if (micros () - prevmicros> 494000) {// muutos toiseen korjausta varten oli 500000


Määritin kokeellisesti numeron, jolla kello menee melko tarkasti. Jos kellosi on kiireessä, sinun pitäisi lisätä tätä lukua; jos olen takana, pienennä sitä. Kurssin tarkkuuden määrittäminen ja loppusekuntien tarve. Kun numero on kalibroitu tarkasti, sekunnit voidaan kommentoida ja poistaa siten näytöltä.

Täytä luonnos.
arduino_wg12864b_term.rar [3,64 kt] (lataukset: 314)

7
9
5.3

Lisää kommentti

    • hymyillähymyileexaxakunnossadontknowyahoonea
      pomonaarmutyperyskylläkyllä-kylläaggressiivinensalaisuus
      anteeksitanssidance2dance3anteeksihelpjuomat
      pysäytysystäväthyvägoodgoodpillipyörtyäkieli
      savutaputusCrayjulistaapilkallinenDon-t_mentiondownload
      lämpöirefullaugh1MDAkokousmoskingnegatiivinen
      not_ipopcornrangaistaluettupelästyttääpelottaaetsi
      kiusatathank_youtämäto_clueumnikakuuttisuostua
      huonoBeeeblack_eyeblum3punastuaylpeilläikävystyminen
      sensuroituhassutussecret2uhatavoittoyusun_bespectacled
      SHOKrespektlolprevedtervetuloakrutoyya_za
      ya_dobryiauttajane_huliganne_othodifludkieltolähellä

Suosittelemme lukemaan:

Anna se älypuhelimelle ...