» elektronik » Arduino »Arduino klocka med temperatursensor och utan RTS

Arduino klocka med temperatursensor och utan RTS

Arduino klocka med temperatursensor och utan RTS

God eftermiddag, idag kommer jag att dela instruktioner om hur man gör en klocka med en rummetermometer. Klockan fortsätter Arduino UNO, WG12864B grafisk skärm används för att visa tid och temperatur. Som temperatursensor - ds18b20. Till skillnad från de flesta andra klockor kommer jag inte att använda RTS (Real Time Clock), utan försöker klara sig utan den här extra modulen.

För detta hemlagad Följande komponenter krävs:
- Arduino UNO (Eller något annat Arduino-kompatibelt bräde)
- Grafisk skärm WG12864B
- ds18b20 temperatursensor
- Motstånd 4.7 Kom 0,25 W
- Motstånd 100 ohm 0,25 W
- Batterifack för 4 AA-batterier "finger-typ"
- Lämplig låda
- Liten fil
- Nagellack (svart eller kroppsfärg)
- Lite tunn plast eller kartong
- elektrisk tejp
- anslutande ledningar
- kretskort
- Knappar
- lödkolv
- Löd, kolofonium
- Dubbelsidig tejp

Steg 1 Förbereda kapslingen.
Så våra klockor borde vara placerade någonstans. Du måste hitta en lämplig låda. Det viktigaste är att WG12864B-skärmen, Arduino och ett litet kretskort för knappar passar i den. Minsta boxstorlek är 7 x 7 x 10 cm. Om du använder ett litet Arduino-kort kan du skjuta det i en låda och mindre, men jag kommer att beskriva processen med Arduino UNO: s exempel. Materialet som lådan är gjord av är företrädesvis plast, om den, som min, är järn, är det värt att ta hand om isoleringen så att det inte finns något att "gå runt" inuti. Plast är att föredra eftersom det är lättare att klippa. Med en låda är han fallet med våra klockor, beslutade. Nu är det nödvändigt att klippa ett fönster under skärmen som mäter 6,5x4 cm. Om lådan är järn är det extremt svårt att göra det noggrant. Oavsett hur du försöker kommer det att bli flisad färg och grovhet nära snittet. Därför klipper vi först ut det, för detta kan du använda ”kvarnen”, en borr med ett munstycke för skärning eller en frässkär, i allmänhet, efter eget val, med vad som finns. Därefter rengör vi kanterna med en fil. Vi målar all hackad färg med nagellack, lämplig färg. Resultatet bör vara följande:


Steg 2 Förbered grafikskärmen.
Med anslutningen av skärmen uppstår vid första anblicken många problem och svårigheter. Men om du först hanterar deras typer kommer det att bli mycket lättare och mer förståeligt. Det finns många variationer och typer av skärmar på ks0107 / ks0108-kontrollen.Alla skärmar delas vanligtvis upp i fyra 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-displayer AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J86, Q, Q, 1
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

Listan är inte komplett, det finns många av dem. Det vanligaste och enligt min mening praktiska WG12864B3 V2.0. Displayen kan anslutas till Arduino via en seriell eller parallell port. När det används med Arduino UNO är det bättre att välja en seriell portanslutning - då behöver vi bara 3 utgångar från mikrokontrollern istället för minst 13 linjer när de är anslutna via en parallellport. Allt är helt enkelt anslutet. Det finns ytterligare en nyans, två typer av skärmar finns att köpa, med en inbyggd potentiometer (för justering av kontrast) och utan den. Jag har valt, och jag råder dig att göra samma sak med det inbyggda.


Detta minskar antalet delar och lödningstiden. Det är också värt att sätta ett strömbegränsande motstånd på 100 ohm för bakgrundsbelysningen. Genom att ansluta 5 volt direkt finns det risk för att bränna bakgrundsbelysningen.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - genom motståndet - + 5V
20 (BLK) - GND

Det mest praktiska är att samla allt bakom skärmen och mata ut 5 kablar från den för att ansluta till Arduino UNO. Resultatet borde vara något liknande:


För de som fortfarande väljer en parallell anslutning kommer jag att ge en anslutningstabell.


Och layouten för alternativ B-skärmar:


Steg 3 Anslut temperatursensorn.
Som jag sa, kommer vi att använda DS18B20 integrerad sensor för att mäta temperaturen. Jag valde det för sin höga mätnoggrannhet, felet är inte mer än 0,5 ° C. Sensorn är kalibrerad vid tillverkningstillfället; inga ytterligare inställningar krävs. Temperaturmätningsområde -55 ... + 125 ° C Det finns två driftsätt: med en extern kraftkälla och "falsk ström". När du arbetar i externt strömläge är anslutningen enligt följande:


Vid användning av "falsk kraft" får sensorn ström från kommunikationslinjen. I detta läge räcker det med två ledningar för att ansluta ds18b20 till mikrokontrollern. Sensorns interna kondensator laddas på grund av energi på kommunikationslinjen på en låg nivå på bussen. Läget "parasitisk näring" har många funktioner och därför rekommenderar jag inte att du använder det. Men om du fortfarande bestämmer dig för att använda det, här är diagrammet:


Eller så kan du använda ett förbättrat kopplingsschema när du använder "falsk kraft":


Flera sensorer kan inkluderas på en kommunikationslinje. För våra klockor räcker en. Vi ansluter kabeln från “DQ” ds18b20-stiftet till “pin 5” Arduino UNO.

Steg 4 Förbereda ett bräde med knappar.
För att ställa in tid och datum på klockan använder vi tre knappar. Lätt de tre knapparna på kretskortet för enkelhets skull och dra ut den.


Vi ansluter på följande sätt: den tråd som är gemensam för alla tre knappar är ansluten till "GND" Arduino. Den första knappen, den tjänar till att gå in i tidsinställningsläget och växla över tid och datum, anslut till "Pin 2". Den andra, knappen för att öka värdet, är att "Pin 3", och den tredje, knappen för att minska värdet, är "Pin 4".

Steg 5 Sätta samman allt.
För att undvika kortslutning, isolera skärmen. I en cirkel lindar vi med elektrisk tejp, och på baksidan fäster vi till en dubbelsidig tejp, skuren i storlek, en remsa isolerande material. Tjock kartong eller tunn plast är lämplig. Jag använde plast från en papperstablett. Det visade sig följande:


På framsidan av skärmen längs kanten limmar vi ett dubbelsidigt tejp på skumunderlag, helst svart.


Vi ansluter skärmen till Arduino:


Dessutom ansluter vi från batterifacket till "VIN" Arduino minus till "GND". Vi placerar den bakom Arduino. Glöm inte att ansluta temperatursensorn och kortet med knappar innan du installerar det.


Steg 6 Förbered och fyll skissen.
En temperatursensor behöver OneWire-biblioteket.
onewire.rar [16,75 Kb] (nedladdningar: 154)


Utmatningen till skärmen sker via U8glib-biblioteket:
u8glib.rar [906,95 Kb] (nedladdningar: 156)


Installera dessa två bibliotek för att redigera och fylla skissen. Det finns två sätt att göra detta. Packa bara upp dessa arkiv och placera de uppackade filerna i mappen "bibliotek" som finns i mappen med Arduino IDE installerat.Eller det andra alternativet är att installera biblioteket direkt i programmeringsmiljön. Utan att packa upp de nedladdade arkiven, välj menyn Sketch - Connect Library på Arduino IDE. Högst upp i rullgardinslistan väljer du "Lägg till. Zip-bibliotek". Välj det bibliotek som du vill lägga till i dialogrutan som visas. Öppna Sketch - Connect Library-menyn igen. Längst ner i listrutan bör du se ett nytt bibliotek. Nu kan biblioteket användas i program. Glöm inte att starta om Arduino IDE efter allt detta.

Temperaturgivaren fungerar enligt One Wire-protokollet och har en unik adress för varje enhet - en 64-bitars kod. Varje gång är det inte praktiskt att leta efter denna kod. Därför måste du först ansluta sensorn till Arduino, fylla i skissen som finns i filen - Exempel - Dallas temperatur - OneWireSearch-menyn. Kör sedan Tools - Port Monitor. Arduino ska hitta vår sensor, skriva sin adress och aktuella temperaturavläsningar. Vi kopierar eller skriver helt enkelt adressen till vår sensor. Öppna skissen Arduino_WG12864B_Term, leta efter raden:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adress för min sensor 


Vi skriver ner din sensors adress mellan hängslen och ersätter adressen till min sensor.

foto:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Skriv ut sekunder för att kontrollera rätt kurs


Visar sekunder bredvid “Data”. Detta är nödvändigt för att korrekt ställa in tiden.
Om klockan har bråttom eller släpar, bör du ändra värdet i raden:

if (mikros () - prevmicros> 494000) {// ändring till en annan för justering var 500000


Jag bestämde experimentellt antalet klockan går ganska exakt på. Om din klocka har bråttom bör du öka antalet; om jag är bakom, minska den. För att bestämma kursens noggrannhet och behöver en slutsekund. Efter noggrant kalibrering av numret kan sekunder kommenteras och därmed tas bort från skärmen.

Fyll skissen.
arduino_wg12864b_term.rar [3,64 Kb] (nedladdningar: 314)

7
9
5.3

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...