» electronică » Arduino »Ceas cu termometru pe Attiny

Ceas cu termometru Attiny

Ceas cu termometru Attiny



Salut tuturor și să aveți o zi sau o seară frumoasă. De această dată voi împărtăși instrucțiunile pentru realizarea unui ceas de cameră cu un termometru. Centrul de calcul al ceasului va fi Attiny85, asamblat pe o placă de la Digispark. Pentru afișarea ceasului - Afișaj Oled. Termometru - binecunoscutul ds18b20. Pentru energie, luăm li-ion 18650 (pot fi obținute de la o baterie veche de la un laptop). Și adăugați un afișaj al nivelului bateriei. La fel ca în toate ceasurile mele anterioare, vom face fără modulul RTC (ceas în timp real).

Colectăm tot ce este necesar:

- Digispark Attiny85 (versiune micro USB)
- ds18b20 (într-o carcasă din plastic)
- Ecran Oled cu o rezoluție de 128x64, I2C
- 2 buc 18650 baterii sau o baterie veche pentru laptop Li-ion
- Rezistoare (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Plastic subțire (pentru carcasă)
- conectarea firelor de diferite culori
- Programator ISP (sau altul Arduino contra cost)
- Buton
- Conectori Dupont 2,54 mm "mamă", "tată"
- Cuțit de papetărie, bandă dublă față, bandă electrică, hotmelt
- Totul pentru lipit (fier de lipit, colofon, lipit)

Etapa 1 Caz.
Viitorul ceas de ceas va fi din plastic subțire. Puteți cumpăra o foaie de astfel de plastic într-un magazin specializat sau să comandați pe aliexpress. Sau puteți (să nu așteptați și să nu vă uitați) să mergeți la biroul clerical și să cumpărați un folder de hârtie din plastic de culoarea preferată. Dimensiunile viitorului ceas: lățime - 40 mm, grosime - 30 mm, înălțime - 70 mm. În conformitate cu diagrama de mai jos, am decupat o scanare din plastic:


Taiem linii groase, indoim usor de-a lungul liniilor subtiri. Decupăm dreptunghiul din mijloc folosind un cuțit clerical, aceasta este o fereastră pentru afișare. Drept urmare, obținem o scanare de plastic:


Trecem la Attiny.

Pasul 2 Attiny + Oled.
După cum am spus, în inima noastră de casă va fi Attiny 85. Cel mai bine este să cumpărați acest cip, imediat lipit pe placă împreună cu un regulator de tensiune și ham. Digispark Attiny85 este foarte potrivit. Alegeți versiunea cu micro-USB pe placă. Alte modificări ale plăcii nu se potrivesc ca mărime. Se întâmplă ca această placă să fie vândută cu conectori Dupon „masculi” deja soldați. Dacă da, vindeți toți conectorii. Colectăm fire colorate. Avem nevoie de 10 centimetri în culori diferite. Le-am sudat în Attiny și am notat care sârmă, la care concluzia corespunde. Cablurile P0 și P2 trebuie să fie lipite în două fire. A doua pereche este necesară pentru a conecta ecranul Oled. Obținem următoarele:


Am scris următoarea diagramă pe fir:


Ecranul este mic (pentru a se potrivi cu controlerul), dar arată frumos. OLED (diodă cu emisie de lumină organică) este un afișaj grafic. Nu există iluminare de fundal și, în schimb, fiecare pixel este un LED independent. Dimensiuni ecran - 0,96 inci.Rezolutie 128x64. Conectat prin magistrala I2C. Utilizează doar două fire pentru conectarea cu Attiny. Acestea vin în diferite culori, alege după gustul tău. Mi-a plăcut albastrul cu o dungă galbenă în vârf. Acționăm similar cu Digispark. Dacă există conectori lipiți - lipiți-i. Deocamdată, lipit doar cablurile de alimentare:


Aveți grijă la lipire, nu deteriorați cablul cu un fier de lipit pe afișaj:


Conectăm plăcile folosind banda dublu față:


Am sudat afișajul Digispark Attiny și Oled în conformitate cu schema (culorile firelor pot varia, principalul lucru este să nu încurcați concluziile):


Pentru comoditate și comandă, colectăm toate firele la un loc. Le puteți răsuci cu bandă electrică pentru a nu vă confunda:


La sfârșitul tuturor firelor, atașăm conectorul „mamă” Dupont, îl introducem în izolatoare și îl înfășurăm împreună cu banda electrică pentru a realiza conectorul. Înregistrăm, de asemenea, identificarea conectorului:


Pinout ar trebui să fie astfel, deoarece în viitor vom conecta un fir pentru firmware sau alte elemente de ceas la conector.
Lipim structura rezultată în carcasă și nu uităm să lipim carcasa în sine, lăsând o gemetă să nu fie lipită, pentru alte manipulări:


Când lipiți, acordați atenție faptului că ecranul este egal:


Pasul 3 Putere.
Pentru putere vom folosi două elemente Li-ion. Tip 18650. Le puteți achiziționa separat. În acest caz, lipiți-le în paralel, izolați și ieșiți conectorul pentru conectare și încărcare ulterioară:


Mulți au laptopuri mai vechi. Fie că nu mai lucrează sau nu lucrează în timp. Chiar dacă bateria laptopului este deja defectă și nu este potrivită pentru utilizarea prevăzută, acesta poate fi folosit pentru toate tipurile de produse de casă. În cazul nostru, pentru un ceas. Luăm bateria de la laptop:


Principalul lucru este că el este Li-ion. Îl demontezăm cu atenție, trebuie să deschideți carcasa din plastic, pentru a nu deteriora elementul din interior. Cel mai adesea, bateria este împărțită în două elemente conectate în paralel. Le scoatem și separam o pereche de restul:


Cel mai bine este să lipiți plăcuțele de contact:


Lipiți această pereche pe spatele ceasului:


Pasul 4 Determinarea încărcării bateriei.
O funcție convenabilă a ceasului este de a indica încărcarea bateriei. Vom determina gradul de încărcare prin tensiune. Tensiunea minimă pentru aceste baterii este de 2,4 V. Nu poate fi descărcată în continuare. Tensiunea maximă este de 4,2 V.

Măsurarea tensiunii la portul analog este întotdeauna relativă la o altă tensiune. Nu putem folosi pinul AREF al microcontrolerului, care servește la setarea tensiunii de referință. De asemenea, este imposibil să măsurați tensiunea în raport cu tensiunea de alimentare (raportul va fi întotdeauna același). Prin urmare, vom determina tensiunea în raport cu tensiunea internă de referință sau Vbg (tensiunea de referință Bandgap). Este de 1,1 V. Acum trebuie să calculăm divizorul de tensiune pentru bateria noastră, astfel încât la încărcare maximă (4,2 V) divizorul avea (1,1 V). Puteți calcula după formula:



Sau folosiți

R1 ia o valoare nominală de 10 kOhm. Apoi R2 obținem 3,55 KOhm, cel mai apropiat dintre valorile standard de 3,3 KOhm și îl luăm. Măsurătorile se fac între tensiunea internă și GND, astfel încât rezistența de 3,3 KΩ se lipeste la minus și 10 KΩ la plus. Punem rezistențele pe baterie, retragem sârma din divizor.


Izolăm toate contactele pentru a evita scurtcircuitul:


Firul de la divizor va fi conectat la PB4.

Pasul 5 Măsurați temperatura.
Un complement excelent la ceas este măsurarea temperaturii camerei. Vom folosi senzorul de temperatură integrat DS18B20. Pentru a lucra cu acesta este nevoie de un singur fir (foarte util atunci când utilizați Attiny 85). Toate măsurătorile sunt făcute de el însuși, controlorul central nu deranjează (Attiny 85 are și o memorie excelentă și atât de puțin), trebuie doar să dăm comenzi și să obținem rezultate. Există mai multe scheme diferite pentru conectarea acestui senzor, vom folosi opțiunea care este optimă pentru acest caz, în opinia mea.Folosind putere externă și un rezistor de 4,7 kΩ:


Lipiți fire mici și fixați conectorii


Firul senzorului DQ este conectat la PB 3.

Pasul 6 Buton.
Avem puține concluzii, dar există multe cerințe pentru ceasuri. Vom folosi un buton pentru a seta ora. Nu putem conta pe mai multe. Lipiți firele la buton, un contact de la acesta la GND. Combinați cu senzorul nostru de temperatură:


Al doilea contact de la buton este conectat la PB 1.

Pasul 7 Pregătirea mediului de dezvoltare
Pentru lucrări suplimentare cu schița, precum și pentru editarea și completarea acesteia, avem nevoie de IDE Arduino. Descărcați acest program de la:

Adăugați acum suport pentru Attiny 85 miercuri. Deschideți ID-ul Arduion și parcurgeți calea:
Fișier - Setări - „Adrese adrese URL-urile Managerului” introduceți linkul:

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


Faceți clic pe OK.
Accesați:
Instrumente - Board - Boards Manager intră Attiny și faceți clic pe „attiny de David A. Mellis”. Faceți clic pe „Instalare” și lăsați să puneți cafeaua.
Și acum despre biblioteci. Au nevoie de două:

Pentru a lucra cu afișajul Oled

Control senzor temperatura

După descărcarea acestor arhive, despachetați-le în folderul „biblioteci”, care este ușor de găsit mergând pe calea de instalare a Arduino IDE.

Pasul 8 Programator.
Digispark Attiny 85 este o placă excelentă. Proiectat pentru a vă conecta la un computer USB. Și poate fi programat prin intermediul acestuia. Dar Attiny folosește un software USB, care la rândul său ocupă 2 KB de 8 KB de memorie. Acest lucru nu ni se potrivește și, prin urmare, vom flash Flash Attiny prin interfața ISP. Și aici avem nevoie de un programator ISP. Dacă nu este acolo - nu contează. Ia Arduino. În cazul meu, Arduino UNO:


Puteți lua orice altă placă compatibilă de la linia Arduino. Ne conectăm la computer, deschidem Arduino IDE, selectăm portul la care este conectată placa Arduino, deschidem schița în exemple, Arduino ISP și o completăm în placă. De asemenea, avem nevoie de un fir pentru a ne conecta rapid la Attiny.


Conexiunea este următoarea:

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

Nu uita de nutriția Attiny.

Pasul 9 Editează și completează schița.

Descărcați schița

Înainte de completare, trebuie să editați schița.
Senzorul integrat ds18b20, după cum am menționat anterior, funcționează folosind protocolul One Wire. Fiecare senzor are propria sa adresă unică pe 64 de biți. Trebuie să găsiți adresa senzorului dvs. și să o scrieți într-o schiță. Deschideți IDE Arduino, urmați calea:
Fișier - Exemple - Dallas Temperatură - OneWireSearch.

Completați schița în Arduino. Deschideți monitorul portului. Ar trebui să vedeți adresele tuturor senzorilor conectați și citirile de temperatură ale acestora. Vă notăm adresa. Deschide-mi schița și schimbă-ți adresa în rândul tău:

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


Pentru a regla progresul ceasului, utilizați următoarea constantă:

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


Cu cât această valoare este mai mare, cu atât este mai lent ceasul.
Pentru control, pe ecran sunt afișate secunde:

OzOled.printNumber ((long) sek, 0, 7); // secunde de ieșire pentru reglaj precis 


Comentați această linie pentru a elimina secunde.
Acum conectăm programatorul sau Arduino ca programator, selectăm portul, selectăm placa noastră în meniul Instrumente și setăm următorii parametri:
Board: Attiny 25/45/85
Procesor: Attiny 85
Ceas: interior 16
Apoi selectați în același meniu:
Instrumente - Programator - „Arduino ca ISP”.
Și în final:
Sketch - Descărcați prin programator

Pasul 10 Montajul final și lansarea.
Opriți programatorul și conectați senzorul, puterea și butonul:


Până când este configurat cursul exact al ceasului, puteți închide carcasa folosind cauciuc bancar. Când ați terminat, îl puteți lipi.


Urmăriți ratingul
Voturi totale: 13
10
10
10

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
9 comentariu
Autorul
Ideea este grozavă. Am făcut ceva în acest sens. Doar la îndemâna mea a fost o variabilă de 5 kΩ. L-am inclus în umărul inferior. Și apoi înlocuit cu cel mai potrivit permanent. Dar, în instrucțiunile de fabricație, cred că scrierea nu este necesară. De ce nu faceți aceste măsurători de mai multe ori.
Nu am văzut nevoia să scriu despre încercări obositoare și lungi.
Nu e nevoie să faci nimic lung și obositor. Porniți rezistența (2,7 ... 3) kOhm în brațul inferior, secvențial cu acesta un tuns de 1 kOhm. Dintr-o sursă de putere reglabilă, introduceți valorile extreme ale tensiunii controlate la intrare, reglați punctul de funcționare, apoi, dacă doriți, puteți măsura rezistența de tuns și să o înlocuiți cu o rezistență constantă.
Autorul
La o frecvență de 8 MHz, nu am încercat să pornesc ceasul și, în consecință, să măsoresc exactitatea cursului. Toate măsurătorile au fost făcute la 16 din interior. Nu pot spune nici despre lună. Până acum, fără să închidă, au lucrat maxim o săptămână. Experimente și îmbunătățiri sunt încă în proces.
Autorul
În ceea ce privește divizorul de tensiune, există foarte multe nuanțe și erori. Și împrăștierea rezistenței rezistențelor și împrăștierea tensiunii de referință. Am încercat totul în practică. Când utilizați un rezistor de 3,6 kΩ, chiar și cu o tensiune a bateriei de 3,9 V, portul analog Attiny arată 1023 (când este convertit la 100% la sută). Când utilizați un rezistor de 3,3 kΩ, valoarea portului analogic scade chiar și la 4,1 V pe baterie. Prin urmare, am scris că mărturia este obținută mai exact, doar nu am văzut nevoia să scriu despre încercări plictisitoare și lungi.
Autorul
Am setat ceasul timp de o săptămână, i-am ajustat progresul în fiecare zi sau mai des. Drept urmare, la o valoare de 497343, se grăbesc timp de aproximativ 10 secunde pe săptămână.
Frecvența poate fi redusă. Nu am schimbat parametrul, nu era nevoie
Ei bine, și care este precizia ceasului RC de 8 MHz? Pe lună?
și de ce ceas: interior 16?
Este mai bine să alegeți mai puțin, apoi citirile sunt mai precise.
Nu mai precis, ci pur și simplu tensiunea de intrare ar trebui să fie mai mică decât referința. În plus, în raționamentul dvs. nu luați în considerare absolut răspândirea parametrilor: rezistențe, cel mai probabil, veți avea cinci la sută, Vbg = (1,0 ... 1,2) V. Deci, 3,3 kOhm s-ar putea dovedi a fi prea mari, și poate 3.6 kOhms o va face.
Autorul
Dacă utilizați tensiunea de ieșire 3.6 obținem 1.11. Deși nu mult, dar mai multă tensiune de referință. Când utilizați 3.3 - 1.04. Este mai bine să alegeți mai puțin, apoi citirile sunt mai precise.
Și în ceea ce privește Oh, ai dreptate, pur și simplu nu am fost atent la acest detaliu minor.
După lipirea carcasei, accesul la priza de încărcare și butoanele poate fi obținut din partea inferioară a ceasului prin tăierea capacului de jos sau pur și simplu nu lipirea acestuia.
Apoi R2 obținem 3,55 KOhm, cea mai apropiată de valorile standard de 3,3 KOhm,
Deloc. Cel mai apropiat E24 din gama standard este de 3,6 kOhm. Și apropo, nu „KOhm, ci„ KOhm.
Până când este configurat cursul exact al ceasului, puteți închide carcasa folosind cauciuc bancar. Când ați terminat, îl puteți lipi.
Cum vom încărca bateria?
Și cum să manipulezi butonul?

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...