» elektronikk » Arduino »Klokke med termometer på Attiny

Attiny termometerklokke

Attiny termometerklokke



Hei alle sammen og ha en fin dag eller kveld. Denne gangen vil jeg dele instruksjonene for å lage et romur med et termometer. Klokkens datasenter vil være Attiny85, samlet på et brett fra Digispark. For å vise klokken - Oled display. Termometer - den velkjente ds18b20. For strøm tar vi li-ion 18650 (de kan fås fra et gammelt batteri fra en bærbar datamaskin). Og legg til en visning av batterinivået. Som i alle mine tidligere klokker, vil vi klare oss uten RTC (sanntidsklokke) -modulen.

Vi samler inn alt som er nødvendig:

- Digispark Attiny85 (mikro USB-versjon)
- ds18b20 (i en plastkasse)
- Oled skjerm med en oppløsning på 128x64, I2C
- 2 stk 18650 batterier eller et gammelt Li-ion laptop-batteri
- Motstand (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Tynn plast (til hus)
- Koble til ledninger i forskjellige farger
- ISP-programmerer (eller noen Arduino avgift)
- Knapp
- Dupont-kontakter 2,54 mm "mor", "far"
- Skrivesakerkniv, dobbeltsidig tape, elektrisk tape, smelte
- Alt for lodding (loddejern, kolofonium, lodding)

Trinn 1 Sak.
Den fremtidige klokkesaken vil være laget av tynn plast. Du kan kjøpe et ark med slik plast i en spesialbutikk eller bestille på aliexpress. Eller du kan (for ikke å vente og ikke se) gå til det geistlige kontoret og kjøpe en plastpapirmappe i favorittfargen din. Mål for fremtidens klokke: bredde - 40 mm, tykkelse - 30 mm, høyde - 70 mm. I følge diagrammet nedenfor kuttet vi ut en skanning fra plast:


Vi skjærer langs tykke linjer, bøyer forsiktig langs tynne linjer. Vi kuttet ut rektangelet i midten ved hjelp av en geistlig kniv, dette er et vindu for visning. Som et resultat får vi en skanning av plast:


Vi passerer til Attiny.

Trinn 2 Attiny + Oled.
Som sagt, i vårt hjerte hjemmelaget vil være Attiny 85. Det er best å kjøpe denne brikken, umiddelbart loddet til brettet sammen med en spenningsregulator og sele. Digispark Attiny85 er godt egnet. Velg versjon med mikro-USB på brettet. Andre modifikasjoner på brettet passer ikke i størrelse. Det hender at dette brettet selges med Dupon “mannlige” kontakter som allerede er loddet. I så fall kan du lodde alle kontaktene. Vi samler fargede ledninger. Vi trenger 10 centimeter i forskjellige farger. Vi lodder dem i Attiny og skriver ned hvilken ledning, hvilken konklusjon tilsvarer. Ledningene P0 og P2 må loddes i to ledninger. Det andre paret er nødvendig for å koble til Oled-skjermen. Vi får følgende:


Jeg skrev følgende diagram på wiren:


Skjermen er liten (for å matche kontrolleren), men den ser vakker ut. OLED (organisk lysemitterende diode) er en grafisk skjerm. Det er ingen bakgrunnsbelysning, og i stedet er hver piksel en uavhengig LED. Skjermstørrelser - 0,96 tommer.Oppløsning 128x64. Tilkoblet via I2C-buss. Bruker bare to ledninger for å få forbindelse med Attiny. De kommer i forskjellige farger, velg etter din smak. Jeg likte det blå med en gul stripe øverst. Vi handler på samme måte som Digispark. Hvis det er loddede kontakter - lodd dem. Loddetinn, foreløpig er det bare strømkablene:


Vær forsiktig når du lodder, ikke skader kabelen med loddebolt på displayet:


Vi kobler til brettene ved å bruke tosidig tape:


Vi lodder Digispark Attiny og Oled-skjermen sammen i henhold til skjemaet (fargene på ledningene kan variere, det viktigste er ikke å rote med konklusjonene):


For enkelhets skyld og ordre samler vi alle ledningene sammen. Du kan vri dem med elektrisk tape for ikke å bli forvirret:


På slutten av alle ledningene fester vi Dupont “kvinnelige” kontakt, setter den inn i isolatorene og pakker det sammen med elektrisk tape for å lage kontakten. Vi registrerer også pinout på kontakten:


Tappen skal være slik, siden vi i fremtiden vil koble en ledning for firmware eller andre klokkeelementer til kontakten.
Vi limer den resulterende strukturen inn i saken, og glem ikke å lim selve saken, og etterlater ett stønn ikke limt, for videre manipulasjoner:


Når du limer, må du være oppmerksom på at skjermen er jevn:


Trinn 3 Kraft.
For kraft vil vi bruke to Li-ion-elementer. Type 18650. Du kan kjøpe dem separat. I dette tilfellet må du lodde dem parallelt, isolere og sende ut kontakten for tilkobling og påfølgende lading:


Mange har eldre bærbare datamaskiner. Enten de ikke lenger jobber eller jobber gjennom tid. Selv om den bærbare datamaskinens batteri allerede er dårlig og ikke egnet for den tiltenkte bruken, kan den brukes til alle slags hjemmelagde produkter. I vårt tilfelle for en klokke. Vi tar batteriet fra den bærbare datamaskinen:


Hovedsaken er at han er Li-ion. Vi demonterer den forsiktig, du må åpne plastkassen, for ikke å skade elementet inni. Oftest er batteriet delt i to elementer som er koblet parallelt. Vi tar dem ut og skiller ett par fra resten:


Det er best å lodde til kontaktputene:


Lim dette paret på baksiden av klokken:


Trinn 4 Fastslå batteriladningen.
En praktisk funksjon av klokken er å indikere batteriets lading. Vi bestemmer ladningsgraden etter spenning. Minimumsspenningen for disse batteriene er 2,4 V. Det kan ikke tømmes ytterligere. Maksimal spenning er 4,2 V.

Spenningsmålingen ved den analoge porten er alltid relativt til en annen spenning. Vi kan ikke bruke AREF-pinnen på mikrokontrolleren, som tjener til å stille inn referansespenningen. Det er også umulig å måle spenningen i forhold til forsyningsspenningen (forholdet vil alltid være det samme). Derfor vil vi bestemme spenningen i forhold til den interne referansespenningen eller Vbg (Bandgap referansespenning). Det er 1,1 V. Nå må vi beregne spenningsdeleren for batteriet vårt, slik at divideren hadde maksimal ladning (4,2 V) (1,1 V). Du kan beregne med formelen:



Eller bruk

R1 tar en pålydende verdi på 10 kOhm. Så får vi 3,55 KOhm, den nærmeste passende fra standardverdiene på 3,3 KOhm, og tar den. Målinger gjøres mellom internspenning og GND, så 3,3 KΩ-motstanden er loddet til minus, og 10 KΩ til pluss. Vi plasserer motstandene på batteriet, vi trekker ledningen fra skillet.


Vi isolerer alle kontakter for å unngå kortslutning:


Ledningen fra deleren vil være koblet til PB4.

Trinn 5 Mål temperaturen.
Et utmerket supplement til klokken er måling av romtemperatur. Vi vil bruke den integrerte temperatursensoren DS18B20. For å jobbe med den er det bare en ledning som kreves (veldig nyttig når du bruker Attiny 85). Alle målinger gjøres av ham selv, sentralkontrolleren plager ikke (Attiny 85 har også utmerket minne og så lite), vi trenger bare å gi kommandoer og få resultater. Det er flere forskjellige ordninger for å koble denne sensoren, vi vil bruke alternativet som er optimalt for dette tilfellet, etter min mening.Bruker ekstern kraft og en 4,7 kΩ motstand:


Lodde små ledninger, og fest kontaktene


Ledningen fra DQ-sensoren er koblet til PB 3.

Trinn 6-knapp.
Vi har få konklusjoner, men det er mange krav til klokker. Vi bruker en knapp for å stille inn klokkeslettet. Vi kan ikke stole på mer. Lodde ledningene til knappen, en kontakt fra den til GND. Kombiner med temperatursensoren vår:


Den andre kontakten fra knappen er koblet til PB 1.

Trinn 7 Forberede utviklingsmiljøet
For ytterligere arbeid med skissen, samt redigering og utfylling, trenger vi Arduino IDE. Last ned dette programmet fra:

Nå legger du til støtte for Attiny 85 på onsdag. Åpne Arduion IDE og gå langs stien:
Fil - Innstillinger - "Flere nettsteder for styrer manager" setter inn lenken:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Klikk OK.
Gå til:
Verktøy - Board - Boardboards enter Attiny og klikk “attiny by David A. Mellis”. Klikk på "Installer" og la kaffen sitte.
Og nå om bibliotekene. De trenger to:

For å jobbe med Oled-skjermen

Kontroll av temperatursensor

Etter å ha lastet ned disse arkivene, pakker du dem ut i "biblioteker" -mappen, som er lett å finne ved å gå på installasjonsveien til Arduino IDE.

Trinn 8-programmerer.
Digispark Attiny 85 er et flott brett. Designet for å koble til en USB-datamaskin. Og det kan programmeres gjennom det. Men Attiny bruker en programvare-USB, som igjen tar opp 2 KB på 8 KB minne. Dette passer ikke for oss, og derfor vil vi blinke Attiny 85 gjennom ISP-grensesnittet. Og her trenger vi en ISP-programmerer. Hvis den ikke er der - spiller det ingen rolle. Ta Arduino. I mitt tilfelle, Arduino UNO:


Du kan ta et hvilket som helst annet kompatibelt brett fra Arduino-linjen. Vi kobler oss til datamaskinen, åpner Arduino IDE, velger com-porten som Arduino-brettet er koblet til, åpner skissen i eksemplene, Arduino ISP og fyller den inn i brettet. Vi trenger også en ledning for raskt å koble oss til Attiny.


Forbindelsen er som følger:

D11 - P0
D12 - P1
D13 - P2
D10 - P5

Ikke glem Attiny-ernæring.

Trinn 9 Rediger og fyll skissen.

Last ned skisse

Før du fyller ut, må du redigere skissen.
Den integrerte ds18b20-sensoren fungerer som nevnt tidligere ved bruk av One Wire-protokollen. Hver sensor har sin egen unike 64-biters adresse. Du må finne adressen til sensoren din og skrive den på en skisse. Åpne Arduino IDE, følg stien:
Fil - Eksempler - Dallas temperatur - OneWireSearch.

Fyll skissen inn i Arduino. Åpne portmonitoren. Du bør se adressene til alle tilkoblede sensorer og temperaturavlesningene deres. Vi skriver ned adressen din. Åpne skissen min og endre adressen til din egen på linjen:

byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


For å justere fremdriften på klokken, bruk følgende konstant:

if (mikros () - prevmicros & [b] 497000 [/ b]) 


Jo større denne verdien er, jo saktere er klokken.
For kontroll vises sekunder på skjermen:

OzOled.printNumber ((lang) sek, 0, 7); // output sekunder for nøyaktig innstilling 


Kommenter denne linjen for å fjerne sekunder.
Nå kobler vi programmereren eller Arduino som en programmerer, velger com-porten, velger brettet vårt i Verktøy-menyen og setter følgende parametere:
Styret: Attiny 25/45/85
Prosessor: Attiny 85
Klokke: intern 16
Velg deretter i samme meny:
Verktøy - Programmerer - "Arduino som ISP".
Og til slutt:
Skisse - Last ned via programmereren

Trinn 10 Sluttmontering og lansering.
Slå av programmereren og koble sensoren, strømmen og knappen:


Inntil det nøyaktige løpet av klokken er konfigurert, kan du lukke saken ved å bruke bankgummi. Når du er ferdig, kan du lim den.


Se vurdering
Antall stemmer: 13
10
10
10

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
9 kommentar
Forfatteren
Ideen er flott. Det gjorde jeg noe med. Bare innen fingertuppene var en variabel på 5 kΩ. Jeg inkluderte den i nedre skulder. Og deretter erstattet av den mest passende permanente. Men i produksjonsinstruksjonene, tror jeg, er det unødvendig å skrive. Hvorfor ikke gjøre disse målingene flere ganger.
Jeg så ikke behovet for å skrive om kjedelige og lange prøvelser.
Ingen grunn til å gjøre noe lenge og kjedelig. Slå på motstanden (2,7 ... 3) kOhm i underarmen, sekvensielt med den en 1 kOhm trimmer. Fra en justerbar strømkilde legger du inn ekstreme verdier for den kontrollerte spenningen til inngangen, justerer driftspunktet, så kan du, om ønskelig, måle motstanden til trimmeren og erstatte den med en konstant motstand.
Forfatteren
Ved en frekvens på 8 MHz prøvde jeg ikke å starte klokken og deretter måle kursens nøyaktighet. Alle målinger ble foretatt klokka 16 fra innsiden. Jeg kan ikke si noe om måneden. Så langt, uten å legge ned, jobbet de maksimalt en uke. Eksperimenter og forbedringer er fortsatt i gang.
Forfatteren
Når det gjelder spenningsdeleren, er det virkelig mange nyanser og feil. Og spredningen av motstandenes motstand og referansespenningens spredning. Jeg prøvde alt i praksis. Når du bruker en 3,6 kΩ-motstand, selv med en batterispenning på 3,9 V, viser Attiny-analoge porten 1023 (når konvertert til 100% prosent). Når du bruker en 3,3 kΩ-motstand, synker den analoge portverdien selv ved 4,1 V på batteriet. Derfor skrev jeg at vitneforklaringen oppnås mer nøyaktig, jeg så bare ikke behovet for å skrive om kjedelige og lange prøvelser.
Forfatteren
Jeg satte klokken i en uke, justerte fremdriften hver dag eller oftere. Som et resultat, til en verdi av 497343, skynder de seg i omtrent 10 sekunder i uken.
Frekvensen kan reduseres. Jeg endret ikke parameteren, det var ikke noe behov
Vel, og hva er nøyaktigheten til 8-MHz RC-klokken? Per måned?
og hvorfor klokke: intern 16?
Det er bedre å velge mindre, da lesningene er mer nøyaktige.
Ikke mer presist, men ganske enkelt inngangsspenningen skal være mindre enn referansen. I tillegg tar du absolutt ikke hensyn til spredningen av parametere i resonnementene dine: motstander, sannsynligvis vil du ha fem prosent, Vbg = (1.0 ... 1.2) V. Så 3.3 kOhm kan vise seg å være for stort, og kanskje 3,6 kOhms vil gjøre.
Forfatteren
Bruker du 3,6 utgangsspenning får vi 1,11. Selv om det ikke er mye, men mer referansespenning. Ved bruk av 3.3 - 1.04. Det er bedre å velge mindre, da lesningene er mer nøyaktige.
Og med hensyn til Å, du har rett, jeg la bare ikke merke til denne mindre detalj.
Etter liming av saken kan du få tilgang til ladekontakten og knappene fra bunnen av klokken ved å kutte av bunndekselet eller ganske enkelt ikke feste det.
Så får vi 3,55 KOhm, den nærmeste fra standardverdiene på 3,3 KOhm,
Ikke i det hele tatt. Den nærmeste E24 i standardområdet er 3,6 kOhm. Og forresten ikke "KOhm, men" KOhm.
Inntil det nøyaktige løpet av klokken er konfigurert, kan du lukke saken ved å bruke bankgummi. Når du er ferdig, kan du lim den.
Hvordan vil vi lade batteriet?
Og hvordan manipulere knappen?

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...