» elektronika » Težak »Arduino sat s temperaturnim senzorom i bez RTS-a

Arduino sat s temperaturnim senzorom i bez RTS-a

Arduino sat s temperaturnim senzorom i bez RTS-a

Dobar dan, danas ću podijeliti upute kako napraviti sat s sobnim termometrom. Sat radi Težak UNO, WG12864B grafički zaslon koristi se za prikaz vremena i temperature. Kao temperaturni senzor - ds18b20. Za razliku od većine drugih satova, neću koristiti RTS (Real Time Clock), već ću pokušati bez ovog dodatnog modula.

Za ovo domaći Sljedeće su komponente potrebne:
- Arduino UNO (ili bilo koji drugi Arduino kompatibilni odbor)
- Grafički ekran WG12864B
- senzor temperature ds18b20
- Otpornik 4,7 Kom 0,25 W
- Otpornik 100 ohm 0,25 W
- pretinac za baterije za 4 AA baterije tipa "prst"
- Prikladna kutija
- Mala datoteka
- Lak za nokte (crna ili boja tijela)
- Malo tanke plastike ili kartona
- električna vrpca
- povezivanje žica
- pločica
- Gumbi
- lemljenje željeza
- lem, kolofonija
- Dvostrana traka

1. korak Priprema kućišta.
Dakle, naši bi satovi trebali biti negdje smješteni. Morate pronaći prikladnu kutiju. Glavna stvar je da se u njega stave zaslon WG12864B, Arduino i mala pločica za gumbe. Minimalna veličina kutije je 7 x 7 x 10 cm. Ako koristite malu Arduino ploču, možete je utisnuti u okvir i manji, ali ja ću opisati postupak pomoću Arduino UNO. Materijal od kojeg je izrađena kutija poželjno je plastika, ako je, kao i moja, željezo, vrijedi voditi računa o izolaciji, tako da unutra nema što "skratiti". Preferira se plastika jer se lakše reže. S kutijom, on je slučaj naših satova, odlučio. Sada je potrebno izrezati prozor ispod zaslona dimenzija 6,5x4 cm. Ako je kutija željezna, izuzetno je teško to učiniti pažljivo. Bez obzira na to kako se trudite, u blizini će biti rezanog boje i hrapavosti. Dakle, prvo smo to izrezali, za to možete koristiti "brusilicu", bušilicu s mlaznicom za rezanje ili glodalicu, općenito, po vašem izboru, s onim što želite. Nakon toga rubove čistimo datotekom. Svu usitnjenu boju obojimo lakom za nokte, odgovarajuće boje. Rezultat bi trebao biti sljedeći:


Korak 2 Pripremite grafički zaslon.
Sa povezivanjem zaslona, ​​na prvi pogled, nastaju mnogi problemi i poteškoće. Ali ako se prvo pozabavite njihovim vrstama, postat će mnogo lakše i razumljivije. Na kontroleru ks0107 / ks0108 postoji mnogo varijacija i vrsta zaslona.Svi se zasloni obično dijele na 4 vrste:
Opcija A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Opcija B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ prikazuje AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864YJ QQ, Q12864YJ, Q12864J-1, Q12, Q11
Opcija C: Shenzhen Jinghua prikazuje Co Ltd. JM12864
Opcija D: Wintek-kaskade WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Popis nije potpun, ima ih puno. Najčešći i, po mom mišljenju, zgodan WG12864B3 V2.0. Zaslon se može povezati s Arduinom putem serijskog ili paralelnog ulaza. Kad se koristi s Arduino UNO, bolje je odabrati serijsku vezu - tada trebamo samo 3 izlaza mikrokontrolera, umjesto najmanje 13 linija kada smo povezani preko paralelnog ulaza. Sve je povezano prilično jednostavno. Postoji još jedna nijansa, u prodaji možete pronaći dvije verzije zaslona, ​​s ugrađenim potenciometrom (za podešavanje kontrasta) i bez njega. Ja sam izabrao i savjetujem vam da isto napravite s ugrađenim.


To smanjuje broj dijelova i vrijeme lemljenja. Za pozadinsko osvjetljenje vrijedi staviti otpornik od 100 Ohma. Izravnim spajanjem 5 volti postoji opasnost od spaljivanja pozadinskog osvjetljenja.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V
4 (RS) - 10
5 (R / Ž) - 11
6 (E) - 13
15 (PSB) - BND
19 (BLA) - kroz otpornik - + 5V
20 (BLK) - BND

Najprikladnije je prikupiti sve iza ekrana i iz njega izvući 5 žica za spajanje na Arduino UNO. Rezultat bi trebao biti ovako:


Za one koji još uvijek odabiru paralelnu vezu, dat ću tablicu veze.


I izgled zaslona opcije B:


Korak 3 Spojite temperaturni senzor.
Kao što sam rekao, koristit ćemo DS18B20 integrirani senzor za mjerenje temperature. Odabrao sam ga zbog njegove visoke točnosti mjerenja, pogreška nije veća od 0,5 ° C. Senzor je kalibriran u vrijeme izrade, nisu potrebne dodatne postavke. Raspon mjerenja temperature -55 ... + 125 ° C. Postoje dva načina rada: s vanjskim izvorom napajanja i "lažnom strujom". Kada radite u režimu vanjskog napajanja, veza je sljedeća:


Kad koristi "lažnu snagu", senzor prima snagu od komunikacijske linije. U ovom su načinu dvije žice dovoljne za spajanje ds18b20 na mikrokontroler. Unutarnji kondenzator senzora napunjen je zbog energije na komunikacijskoj liniji na niskoj razini na sabirnici. Način "prehrane parazitima" ima mnogo značajki i zato ga ne preporučam koristiti. Ali ako se ipak odlučite za korištenje, evo dijagrama:


Ili možete koristiti poboljšani dijagram ožičenja kada koristite "lažnu struju":


U jednu komunikacijsku liniju može biti uključeno nekoliko senzora. Za naše je satove jedan dovoljan. Žicu povezujemo sa "DQ" ds18b20 pina na "pin 5" Arduino UNO.

Korak 4 Priprema ploče s gumbima.
Za postavljanje vremena i datuma na satu koristit ćemo tri gumba. Radi praktičnosti lemite tri gumba na pločici i žicom.


Povezujemo se na sljedeći način: žica zajednička za sva tri gumba povezana je na "GND" Arduino. Prvi gumb služi za ulazak u način podešavanja vremena i prebacivanje vremena i datuma, spajanja na "Pin 2". Drugi, gumb za povećanje vrijednosti, je "Pin 3", a treći, gumb za smanjenje vrijednosti, je "Pin 4".

Korak 5 Sve zajedno.
Da biste izbjegli kratki spoj, izolirajte zaslon. U krug omotamo trakom, a na stražnjoj strani pričvršćujemo dvostranu traku, izrezanu po veličini, traku izolacijskog materijala. Pogodan je gusti karton ili tanka plastika. Koristila sam plastiku iz papirnate tablete. Pokazalo se sljedeće:


Na prednjoj strani ekrana uz rub lijepimo obostranu traku na pjenastoj osnovi, po mogućnosti crnu.


Zaslon spajamo u Arduino:


Plus spajamo iz pretinca za baterije na "VIN" Arduino, minus na "GND". Postavljamo ga iza Arduina. Prije ugradnje u kućište, ne zaboravite povezati temperaturni senzor i ploču s gumbima.


Korak 6 Pripremite i ispunite skicu.
Senzor temperature treba knjižnicu OneWire.
onewire.rar [16,75 Kb] (preuzimanja: 154)


Izlaz na ekran dolazi kroz biblioteku U8glib:
u8glib.rar [906.95 Kb] (preuzimanja: 156)


Da biste uredili i ispunili skicu, instalirajte ove dvije knjižnice. Postoje dva načina za to. Samo raspakirajte ove arhive i neraspakovane datoteke stavite u mapu "biblioteke" koja se nalazi u mapi s instaliranim Arduino IDE.Ili je druga mogućnost instaliranje knjižnice izravno u programsko okruženje. Bez otpakiranja preuzetih arhiva, u Arduino IDE-u odaberite izbornik Sketch - Connect Library. Na samom vrhu padajućeg popisa odaberite stavku "Dodaj. Zip knjižnicu". U dijaloškom okviru koji se pojavi odaberite knjižnicu koju želite dodati. Otvorite izbornik Sketch - Connect knjižnica ponovo. Na dnu padajućeg popisa trebali biste vidjeti novu knjižnicu. Sada se knjižnica može koristiti u programima. Ne zaboravite ponovo pokrenuti Arduino IDE nakon svega ovoga.

Senzor temperature radi prema protokolu One Wire i ima jedinstvenu adresu za svaki uređaj - 64-bitni kod. Svaki put je traženje ovog koda nepraktično. Stoga prvo morate spojiti senzor na Arduino, ispuniti skicu koja se nalazi u izborniku Datoteka - Primjeri - Temperatura Dallasa - OneWireSearch. Zatim pokrenite Alati - Port Monitor. Arduino bi trebao pronaći naš senzor, upisati njegovu adresu i trenutna očitanja temperature. Kopiramo ili jednostavno zapisujemo adresu našeg senzora. Otvorite skicu Arduino_WG12864B_Term, potražite liniju:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adresa mog senzora 


Zapisujemo adresu vašeg senzora između nagrada, zamjenjujući adresu mog senzora.

foto:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Ispis sekunde za provjeru ispravnosti kursa


Prikazuje sekunde pored "Podaci". Ovo je potrebno za precizno postavljanje tijeka vremena.
Ako se sat žuri ili zaostaje, trebali biste promijeniti vrijednost u retku:

ako je (micros () - prevmicros> 494000) {// promjena za drugu za prilagodbu iznosila 500.000


Eksperimentalno sam odredio broj kod kojeg sat ide sasvim točno. Ako vam se sat žuri, trebali biste povećati ovaj broj, a ako ja zaostanem, smanjite ga. Da biste odredili točnost tečaja i potrebne su vam sekunde zaključka. Nakon preciznog umjeravanja broja, sekunde se mogu komentirati i tako ukloniti sa zaslona.

Ispunite skicu.
arduino_wg12864b_term.rar [3.64 Kb] (preuzimanja: 314)

7
9
5.3

Dodajte komentar

    • osmijehosmjesixaxau redudontknowprostakNea
      gazdaogrebotinabudaladaDa-Daagresivantajna
      oprostiteplesdance2dance3pomilovanjepomoćpića
      zaustavljanjeprijateljidobrogoodgoodzviždaljkapasti u nesvijestjezik
      dimpljeskanjeCrayObjavitepodrugljivdon-t_mentionpreuzimanje
      vrućinaljutitlaugh1MDAsastanakmoskingnegativan
      not_ikokicekaznitičitatiuplašitiplašitraži
      podsmijehthank_youovoto_clueumnikakutansložiti
      lošebeeeblack_eyeblum3rumenilohvalisati sedosada
      cenzuriranizadirkivanjesecret2prijetitipobjedayusun_bespectacled
      shokrespektlolpreveddobrodošlikrutoyya_za
      ya_dobryipomoćnikne_huliganne_othodifludzabranablizu

Savjetujemo vam da pročitate:

Predaj to pametnom telefonu ...