» elektronik » Arduino »Ur med termometer på Attiny

Attiny termometerur

Attiny termometerur



Hej alle sammen og have en dejlig dag eller aften. Denne gang deler jeg instruktionerne for at lave et rumur med et termometer. Urets computercenter vil være Attiny85, samlet på et bord fra Digispark. Sådan vises uret - Oled display. Termometer - den velkendte ds18b20. For strøm tager vi li-ion 18650 (de kan fås fra et gammelt batteri fra en bærbar computer). Og tilføj en visning af batteriniveauet. Som i alle mine tidligere ure, vil vi klare os uden RTC (realtid ur) modulet.

Vi samler alt, hvad der er nødvendigt:

- Digispark Attiny85 (mikro USB-version)
- ds18b20 (i en plastik kasse)
- Oled skærm med en opløsning på 128x64, I2C
- 2 stk 18650 batterier eller et gammelt Li-ion laptop batteri
- Modstande (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Tynd plast (til hus)
- Tilslutning af ledninger i forskellige farver
- ISP-programmør (eller hvilken som helst Arduino gebyr)
- Knap
- Dupont-stik 2,54 mm "mor", "far"
- Brevpapirkniv, dobbeltsidet bånd, elektrisk bånd, hotmelt
- Alt til lodning (loddejern, kolofonium, lodning)

Trin 1 sag.
Den fremtidige uret skal være lavet af tynd plast. Du kan købe et ark sådant plastik i en specialforretning eller bestille på aliexpress. Og du kan (ikke vente og ikke kigge) gå til det kontor, der køber en plastikpapirmappe med din yndlingsfarve. Dimensioner af fremtidens ur: bredde - 40 mm, tykkelse - 30 mm, højde - 70 mm. I henhold til nedenstående diagram skærer vi en scanning ud af plast:


Vi skærer langs tykke linjer, bøjes forsigtigt langs tynde linjer. Vi skærer rektanglet ud i midten ved hjælp af en klerisk kniv, dette er et vindue til visning. Som et resultat får vi en scanning af plast:


Vi passerer til Attiny.

Trin 2 Attiny + Oled.
Som jeg sagde, i vores hjerte hjemmelavet vil være Attiny 85. Det er bedst at købe denne chip, straks loddet til tavlen sammen med en spændingsregulator og sele. Digispark Attiny85 er velegnet. Vælg versionen med mikro-USB på tavlen. Andre ændringer på tavlen passer ikke i størrelse. Det sker, at dette bræt sælges med Dupon “mandlige” stik, der allerede er loddet. I så fald skal du lodde alle stik. Vi samler farvede ledninger. Vi har brug for 10 centimeter i forskellige farver. Vi lodder dem i Attiny og skriver ned hvilken ledning, hvilken konklusion svarer til. Trådene P0 og P2 skal loddes i to ledninger. Det andet par er nødvendigt for at forbinde Oled-skærmen. Vi får følgende:


Jeg skrev følgende diagram på wiren:


Skærmen er lille (for at matche controller), men den ser smuk ud. OLED (organisk lysemitterende diode) er en grafisk skærm. Der er ingen baggrundsbelysning, og i stedet er hver pixel en uafhængig LED. Skærmstørrelser - 0,96 inches.Opløsning 128x64. Tilsluttet via I2C bus. Bruger kun to ledninger til forbindelse med Attiny. De kommer i forskellige farver, vælg efter din smag. Jeg kunne godt lide det blå med en gul stribe øverst. Vi handler på samme måde som Digispark. Hvis der er loddede stik - lod dem. Lodning, for nu er det kun strømkablerne:


Vær forsigtig, når du lodder, beskadig ikke kablet med et loddejern på skærmen:


Vi forbinder pladerne ved hjælp af dobbeltsidet bånd:


Vi lodder Digispark Attiny og Oled-skærmen sammen i henhold til skemaet (farverne på ledningerne kan variere, det vigtigste er ikke at rod med konklusionerne):


For nemheds skyld og orden samler vi alle ledninger sammen. Du kan vri dem med elektrisk bånd for ikke at blive forvirrede:


I slutningen af ​​alle ledninger fastgør vi Dupont “moder” -stikket, indsættes det i isolatorerne og vikles det hele sammen med elektrisk bånd for at fremstille stikket. Vi registrerer også pinout på stikket:


Udspændingen skal være sådan, da vi i fremtiden forbinder en ledning til firmware eller andre urelementer til stikket.
Vi limer den resulterende struktur ind i sagen og glem ikke at lime selve sagen og lader en stønn ikke være limet til yderligere manipulationer:


Når du limes, skal du være opmærksom på, at skærmen er jævn:


Trin 3 Strøm.
Til strøm vil vi bruge to Li-ion-elementer. Type 18650. Du kan købe dem separat. I dette tilfælde loddes dem parallelt, isoleres og udsendes stikket til tilslutning og efterfølgende opladning:


Mange har ældre bærbare computere. Uanset om de ikke længere arbejder eller arbejder gennem tiden. Selv hvis den bærbare pc's batteri allerede er dårlig og ikke egnet til det tilsigtede brug, kan det bruges til alle slags hjemmelavede produkter. I vores tilfælde for et ur. Vi tager batteriet fra den bærbare computer:


Det vigtigste er, at han er Li-ion. Vi adskiller den omhyggeligt, skal du åbne plastkassen for ikke at beskadige elementet indeni. Oftest er batteriet opdelt i to parallelle forbindelser. Vi tager dem ud og adskiller et par fra resten:


Det er bedst at lodde til kontaktpuderne:


Lim dette par på bagsiden af ​​uret:


Trin 4 Bestemmelse af batteriopladningen.
En praktisk funktion af uret er at indikere batteriopladningen. Vi bestemmer ladningsgraden efter spænding. Minimumspændingen for disse batterier er 2,4 V. Det kan ikke udledes yderligere. Den maksimale spænding er 4,2 V.

Spændingsmåling ved den analoge port er altid i forhold til en anden spænding. Vi kan ikke bruge AREF-stiften på mikrokontrolleren, der tjener til at indstille referencespændingen. Det er også umuligt at måle spændingen i forhold til forsyningsspændingen (forholdet vil altid være det samme). Derfor vil vi bestemme spændingen i forhold til den interne referencespænding eller Vbg (Bandgap-referencespænding). Det er 1,1 V. Nu skal vi beregne spændingsdeleren til vores batteri, så at ved maksimal opladning (4,2 V) havde divideren (1,1 V). Du kan beregne med formlen:



Eller brug

R1 tager en pålydende værdi på 10 kOhm. Så får vi 3,55 KOhm, den tættest egnede fra standardværdierne på 3,3 KOhm, og tager den. Der foretages målinger mellem intern spænding og GND, så modstanden på 3,3 KΩ loddes til minus og 10 KΩ til plus. Vi anbringer modstandene på batteriet, trækker ledningen ud af skillelinjen.


Vi isolerer alle kontakter for at undgå kortslutning:


Tråden fra skillelinjen tilsluttes PB4.

Trin 5 Mål temperaturen.
Et fremragende supplement til uret er måling af stuetemperatur. Vi bruger den integrerede temperatursensor DS18B20. For at arbejde med det kræves kun en ledning (meget nyttig, når du bruger Attiny 85). Alle målinger foretages af ham selv, den centrale styreenhed gider ikke (Attiny 85 har også fremragende hukommelse og så lidt), vi behøver kun at give kommandoer og få resultater. Der er flere forskellige skemaer til tilslutning af denne sensor, vi vil bruge den mulighed, der er optimal i dette tilfælde, efter min mening.Brug af ekstern strøm og en 4,7 kΩ modstand:


Lodde små ledninger, og fastgør forbindelserne


Tråden fra DQ-sensoren er tilsluttet PB 3.

Trin 6-knap.
Vi har få konklusioner, men der er mange krav til ure. Vi bruger en knap til at indstille tiden. Vi kan ikke stole på mere. Lodde ledningerne til knappen, en kontakt fra den til GND. Kombiner med vores temperatursensor:


Den anden kontakt fra knappen er tilsluttet PB 1.

Trin 7 Forberedelse af udviklingsmiljøet
For yderligere arbejde med skitsen, samt redigering og udfyldning, har vi brug for Arduino IDE. Download dette program fra:

Tilføj nu support til Attiny 85 på onsdag. Åbn Arduion IDE og gå ad stien:
Fil - Indstillinger - "Yderligere adresser til styreledelsesmanager" indsætter linket:

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


Klik på OK.
Gå til:
Værktøjer - Board - Boards Manager indtast Attiny og klik på "attiny by David A. Mellis". Klik på "Installer" og lad kaffen stå.
Og nu om bibliotekerne. De har brug for to:

At arbejde med Oled-displayet

Regulering af temperatursensor

Når du har downloadet disse arkiver, skal du pakke dem ud i mappen "biblioteker", som er let at finde ved at gå langs installationsstien på Arduino IDE.

Trin 8 Programmer.
Digispark Attiny 85 er et fantastisk bræt. Designet til at oprette forbindelse til en USB-computer. Og det kan programmeres gennem det. Men Attiny bruger en software-USB, der igen optager 2 KB af 8 KB hukommelse. Dette passer ikke os, og derfor vil vi blinke Attiny 85 gennem ISP-interface. Og her har vi brug for en ISP-programmør. Hvis det ikke er der - betyder det ikke noget. Tag Arduino. I mit tilfælde Arduino UNO:


Du kan tage ethvert andet kompatibelt bræt fra Arduino-linjen. Vi forbinder til computeren, åbner Arduino IDE, vælger den com-port, som Arduino-tavlen er forbundet til, åbner skitsen i eksemplerne, Arduino ISP og udfylder den i tavlen. Vi har også brug for en ledning til hurtigt at oprette forbindelse til Attiny.


Forbindelsen er som følger:

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

Glem ikke Attiny ernæring.

Trin 9 Rediger og udfyld skitsen.

Download skitse

Før du udfylder, skal du redigere skitsen.
Den integrerede ds18b20-sensor fungerer som nævnt tidligere ved hjælp af One Wire-protokollen. Hver sensor har sin egen unikke 64-bit adresse. Du skal finde adressen på din sensor og skrive den på en skitse. Åbn Arduino IDE, følg stien:
Fil - Eksempler - Dallas-temperatur - OneWireSearch.

Udfyld skitsen i Arduino. Åbn portmonitoren. Du skal se adresserne på alle tilsluttede sensorer og deres temperaturlæsning. Vi skriver din adresse. Åbn min skitse, og skift adresse til din egen på linjen:

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


For at justere urets fremgang skal du bruge følgende konstant:

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


Jo større denne værdi er, desto langsommere er uret.
For kontrol vises sekunder på skærmen:

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


Kommenter denne linje for at fjerne sekunder.
Nu forbinder vi programmereren eller Arduino som programmereren, vælger com-porten, vælger vores tavle i menuen Funktioner og indstiller følgende parametre:
Bestyrelse: Attiny 25/45/85
Processor: Attiny 85
Ur: intern 16
Vælg derefter i den samme menu:
Værktøjer - Programmer - "Arduino som ISP".
Og til sidst:
Sketch - Download via programmereren

Trin 10 Endelig samling og lancering.
Sluk programmereren, og tilslut sensoren, strømmen og knappen:


Indtil urets nøjagtige forløb er konfigureret, kan du lukke sagen ved hjælp af bankgummi. Når du er færdig, kan du lime det.


Se vurdering
Antal stemmer: 13
10
10
10

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
9 kommentar
Forfatteren
Ideen er god. Det gjorde jeg noget ved. Kun lige ved hånden var en variabel på 5 kΩ. Jeg inkluderede det i den nederste skulder. Og derefter erstattet af den mest passende permanente. Men i fremstillingsvejledningen synes jeg, at det er unødvendigt at skrive. Hvorfor ikke foretage disse målinger flere gange.
Jeg så ikke behovet for at skrive om kedelige og lange forsøg.
Ingen grund til at gøre noget længe og kedeligt. Tænd modstanden (2,7 ... 3) kOhm i underarmen, efterfølgende med en 1 kOhm trimmer. Fra en justerbar strømkilde indtaster du ekstreme værdier for den kontrollerede spænding til indgangen, justerer driftspunktet, så kan du om ønsket måle trimmerens modstand og udskifte den med en konstant modstand.
Forfatteren
Ved en frekvens på 8 MHz forsøgte jeg ikke at starte uret og derfor måle kursens nøjagtighed. Alle målinger blev foretaget kl. 16 fra indersiden. Jeg kan heller ikke sige om måneden. Indtil videre, uden at lukke ned, arbejdede de maksimalt en uge. Eksperimenter og forbedringer er stadig i gang.
Forfatteren
Med hensyn til spændingsdeleren er der virkelig en masse nuancer og fejl. Og spredningen af ​​modstandenes modstand og referencespændingsspredningen. Jeg prøvede alt i praksis. Når du bruger en 3,6 kΩ-modstand, selv med en batterispænding på 3,9 V, viser den analoge Attiny-port 1023 (når konverteret til 100% procent). Når du bruger en 3,3 kΩ-modstand, falder den analoge portværdi selv ved 4,1 V på batteriet. Derfor skrev jeg, at vidnesbyrdet opnås mere præcist, jeg så bare ikke behovet for at skrive om kedelige og lange retssager.
Forfatteren
Jeg satte uret i en uge, justerede dets fremskridt hver dag eller oftere. Som et resultat, til en værdi af 497343, haster de i cirka 10 sekunder om ugen.
Frekvensen kan reduceres. Jeg ændrede ikke parameteren, der var ikke noget behov
Nå, og hvad er nøjagtigheden af ​​8-MHz RC-uret? Pr. Måned?
og hvorfor Ur: intern 16?
Det er bedre at vælge mindre, så er målingerne mere nøjagtige.
Ikke mere præcist, men simpelthen skal indgangsspændingen være mindre end referencen. Derudover tager du absolut ikke hensyn til spredningen af ​​parametre i din ræsonnement: modstande, mest sandsynligt, vil du have fem procent, Vbg = (1.0 ... 1.2) V. Så 3.3 kOhm kan vise sig at være for stort, og måske 3,6 kOhms vil gøre.
Forfatteren
Hvis du bruger 3,6 udgangsspænding får vi 1,11. Selvom ikke meget, men mere referencespænding. Ved brug af 3.3 - 1.04. Det er bedre at vælge mindre, så er målingerne mere nøjagtige.
Og med hensyn til Åh, du har ret, jeg var bare ikke opmærksom på denne mindre detalje.
Efter limning af sagen kan der opnås adgang til opladningsstikket og knapperne fra bunden af ​​uret ved at skære bunddækslet af eller blot ikke sætte det fast.
Derefter får vi 3,55 KOhm, den tætteste fra standardværdierne på 3,3 KOhm,
Overhovedet ikke. Den nærmeste E24 i standardområdet er 3,6 kOhm. Og forresten ikke "KOhm, men" KOhm.
Indtil urets nøjagtige forløb er konfigureret, kan du lukke sagen ved hjælp af bankgummi. Når du er færdig, kan du lime det.
Hvordan oplader vi batteriet?
Og hvordan man manipulerer knappen?

Vi råder dig til at læse:

Giv den til smartphonen ...