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.