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.