» elektronikk » Arduino »Arduino klokke med temperatursensor og uten RTS

Arduino klokke med temperatursensor og uten RTS

Arduino klokke med temperatursensor og uten RTS

God ettermiddag, i dag vil jeg dele instruksjoner om hvordan du lager en klokke med et romtermometer. Klokken kjører på Arduino UNO, WG12864B grafisk skjerm brukes til å vise tid og temperatur. Som temperatursensor - ds18b20. I motsetning til de fleste andre klokker, vil jeg ikke bruke RTS (Real Time Clock), men prøve å klare meg uten denne tilleggsmodulen.

For dette hjemmelaget Følgende komponenter er nødvendige:
- Arduino UNO (Eller noe annet Arduino-kompatibelt brett)
- Grafisk skjerm WG12864B
- ds18b20 temperatursensor
- Motstand 4.7 Kom 0,25 W
- Motstand 100 ohm 0,25 W
- Batterirom for 4 AA-batterier “finger-type”
- Egnet boks
- Liten fil
- Neglelakk (svart eller kroppsfarge)
- Litt tynn plast eller papp
- elektrisk tape
- koble ledninger
- kretskort
- Knapper
- loddejern
- Lodd, kolofonium
- Dobbeltsidig tape

Trinn 1 Forberede kabinettet.
Så, klokkene våre skal være plassert et sted. Du må finne en passende eske. Det viktigste er at WG12864B-skjermen, Arduino og et lite kretskort for knapper passer inn i den. Minste boksestørrelse er 7 x 7 x 10 cm. Hvis du bruker et lite Arduino-brett, kan du skyve det inn i en boks og mindre, men jeg vil beskrive prosessen ved å bruke eksemplet på Arduino UNO. Materialet som boksen er laget av er helst plast, hvis det, som mitt, er jern, er det verdt å ta vare på isolasjonen slik at det ikke er noe å "gå rundt" inni. Plast er å foretrekke fordi det er lettere å skjære. Med en boks er han saken for klokkene våre, bestemte. Nå er det nødvendig å kutte et vindu under skjermen som måler 6,5x4 cm. Hvis boksen er av jern, er det ekstremt vanskelig å gjøre det nøye. Uansett hvordan du prøver, vil det være flislagt maling og ruhet i nærheten av snittet. Derfor kutter vi den først ut, for dette kan du bruke "kvernen", en drill med en dyse til skjæring eller en fresekutter, generelt, etter eget valg, med det som er tilgjengelig. Etter det renser vi kantene med en fil. Vi maler all flislagt maling med neglelakk, passende farge. Resultatet skal være følgende:


Trinn 2 Forbered grafikkskjermen.
Med tilkoblingen av skjermen oppstår det ved første øyekast mange problemer og vanskeligheter. Men hvis du først tar for deg typene deres, vil det bli mye enklere og mer forståelig. Det er mange varianter og typer skjermer på ks0107 / ks0108-kontrolleren.Alle skjermer er vanligvis delt inn i fire typer:
Alternativ A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Alternativ B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ-skjermer AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J86, Q, Q
Alternativ C: Shenzhen Jinghua Displays Co Ltd. JM12864
Alternativ D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Listen er ikke komplett, det er mange av dem. Det vanligste og etter min mening praktiske WG12864B3 V2.0. Displayet kan kobles til Arduino via en seriell eller parallell port. Når det brukes sammen med Arduino UNO, er det bedre å velge en seriell portforbindelse - da trenger vi bare 3 utganger av mikrokontrolleren, i stedet for minimum 13 linjer når de kobles til via en parallellport. Alt er koblet ganske enkelt. Det er en nyanse mer. To typer skjermer er tilgjengelig for salg, med et innebygd potensiometer (for å justere kontrasten) og uten det. Jeg har valgt, og jeg anbefaler deg å gjøre det samme med det innebygde.


Dette reduserer antall deler og loddetid. Det er også verdt å sette en strømbegrensende motstand på 100 ohm for bakgrunnsbelysningen. Ved å koble 5 volt direkte, er det fare for å brenne bakgrunnsbelysningen.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - gjennom motstanden - + 5V
20 (BLK) - GND

Det mest praktiske er å samle alt bak skjermen og sende ut 5 ledninger fra den for å koble til Arduino UNO. Resultatet skal være noe som dette:


For de som fremdeles velger en parallellforbindelse, vil jeg gi en tilkoblingstabell.


Og oppsettet for alternativ B-skjermer:


Trinn 3 Koble til temperatursensoren.
Som sagt vil vi bruke den integrerte sensoren DS18B20 for å måle temperatur. Jeg valgte den for sin høye målenøyaktighet, feilen er ikke mer enn 0,5 ° C. Sensoren er kalibrert på produksjonstidspunktet; ingen tilleggsinnstillinger er nødvendige. Temperaturmålingsområde -55 ... + 125 ° C Det er to driftsformer: med en ekstern strømkilde og "falsk strøm". Når du bruker ekstern strømmodus, er tilkoblingen som følger:


Ved bruk av "falsk kraft" mottar sensoren strøm fra kommunikasjonslinjen. I denne modusen er to ledninger nok til å koble ds18b20 til mikrokontrolleren. Sensorens indre kondensator lades på grunn av energi på kommunikasjonslinjen på et lavt nivå på bussen. Modusen "parasittisk ernæring" har mange funksjoner, og derfor anbefaler jeg ikke å bruke den. Men hvis du fremdeles bestemmer deg for å bruke det, er diagrammet:


Eller du kan bruke et forbedret koblingsskjema når du bruker "falsk kraft":


Flere sensorer kan være inkludert på en kommunikasjonslinje. For klokkene våre er en nok. Vi kobler ledningen fra “DQ” ds18b20-pinnen til “pin 5” Arduino UNO.

Trinn 4 Forberede et brett med knapper.
For å stille inn tid og dato på klokken, bruker vi tre knapper. For enkelhets skyld må du lodde de tre knappene på kretskortet og koble ut.


Vi kobler til som følger: ledningen som er felles for alle tre knappene er koblet til “GND” Arduino. Den første knappen, den tjener til å gå inn i tidsinnstillingsmodus og bytte over tid og dato, koble til "Pin 2". Den andre, knappen for å øke verdien, er å "Pin 3", og den tredje, knappen for å redusere verdien, er til "Pin 4".

Trinn 5 Å sette det hele sammen.
For å unngå kortslutning, isoler skjermen. I en sirkel pakker vi inn med elektrisk tape, og på baksiden festes vi til et tosidig tape, kuttet til størrelse, en stripe med isolerende materiale. Tykk papp eller tynn plast passer. Jeg brukte plast fra en papirtablett. Det viste seg følgende:


På fremsiden av skjermen langs kanten limer vi et tosidig teip på skumbasis, helst svart.


Vi kobler skjermen til Arduino:


I tillegg kobler vi fra batterirommet til “VIN” Arduino, minus til “GND”. Vi plasserer den bak Arduino. Ikke glem å koble temperatursensoren og brettet med knapper før du installerer det.


Trinn 6 Forbered og fyll skissen.
En temperatursensor trenger OneWire-biblioteket.
onewire.rar [16,75 Kb] (nedlastinger: 154)


Utgangen til skjermen er gjennom U8glib-biblioteket:
u8glib.rar [906,95 Kb] (nedlastinger: 156)


For å redigere og fylle skissen, installerer du disse to bibliotekene. Det er to måter å gjøre dette på. Bare pakke ut arkivene og legg de unzippede filene i "biblioteker" -mappen som ligger i mappen med Arduino IDE installert.Eller det andre alternativet er å installere biblioteket direkte i programmeringsmiljøet. Uten å pakke ut de nedlastede arkivene, i Arduino IDE, velg menyen Sketch - Connect Library. Øverst på rullegardinlisten velger du elementet "Legg til. Zip-bibliotek". I biblioteket som vises, velger du biblioteket du vil legge til. Åpne Sketch - Connect Library-menyen igjen. Helt nederst i nedtrekkslisten skal du se et nytt bibliotek. Nå kan biblioteket brukes i programmer. Ikke glem å starte Arduino IDE på nytt etter alt dette.

Temperatursensoren fungerer i henhold til One Wire-protokollen og har en unik adresse for hver enhet - en 64-biters kode. Hver gang er det upraktisk å lete etter denne koden. Derfor må du først koble sensoren til Arduino, fylle ut skissen som ligger i filen - Eksempler - Dallas temperatur - OneWireSearch-menyen. Kjør deretter Tools - Port Monitor. Arduino skal finne sensoren vår, skrive sin adresse og gjeldende temperaturavlesninger. Vi kopierer eller skriver ganske enkelt ned adressen til sensoren vår. Åpne skissen Arduino_WG12864B_Term, se etter linjen:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adresse til sensoren min 


Vi skriver ned adressen til sensoren din mellom seler, og erstatter adressen til sensoren min.

Foto:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Skriv ut sekunder for å sjekke korrektheten til kurset


Viser sekunder ved siden av “Data”. Dette er nødvendig for å sette tidsforløpet nøyaktig.
Hvis klokken har det travelt eller henger, bør du endre verdien på linjen:

if (mikros () - prevmicros> 494000) {// endring til en annen for justering var 500 000


Jeg bestemte eksperimentelt antall klokken går ganske nøyaktig. Hvis klokken din har det travelt, bør du øke dette tallet; hvis jeg står bak, reduser den. For å bestemme nøyaktigheten av kurset og trenger en konklusjon sekunder Etter nøyaktig kalibrering av tallet, kan sekunder kommenteres og dermed fjernes fra skjermen.

Fyll skissen.
arduino_wg12864b_term.rar [3.64 Kb] (nedlastinger: 314)

7
9
5.3

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...