» electronică » Arduino »Ceasuri olate pe Attiny85

Ceasuri olate pe Attiny85

Bună după-amiază și din nou sunt cu jucăriile mele. Astăzi vă prezint instrucțiuni pentru a face ceasuri mici, dar drăguțe, cu senzor de temperatură a camerei.
Ceasuri olate pe Attiny85


Lista a ceea ce avem nevoie:
- Digispark Attiny85
- Display Oled 128x64 I2C
- senzor de temperatură ds18b20
- Rezistor 4,7 Kom 0,25 W
- Programator ISP sau Arduino Placă de firmware Digispark Attiny85
- Tableta de plastic cu agrafă sau foaie de plastic subțire
- fire
- Conectori Dupont 2,54 mm „femele”
- Butoane 2 buc.
- Placă de circuite mici sau garnituri mici
- fier de lipit
- Soldat, colofon
- foarfece
- cutit clerical
- pistol cu ​​clei fierbinte
- Adeziv fierbinte

Pasul 1 Selectarea componentelor.
Ca principal controler vom folosi Digispark Attiny85. Există mai multe tipuri de ele. Avem nevoie de o placă cu conector micro USB. Restul nu se vor încadra în carcasă.

Pentru afișare, avem nevoie de un display Oled 128x64 I2C. Acestea vin în diferite culori: alb, albastru, albastru cu galben. Vă atrag atenția! Termenul „în două culori” din descrierea sau titlul acestui ecran înseamnă o fâșie de o culoare în partea de sus a ecranului și a doua culoare întregul ecran rămas, și nu posibilitatea de a afișa două culori cu acest ecran! Toate ecranele de acest tip afișează o singură culoare sau în partea de sus o bandă de o culoare în partea de jos - alta. Cum ar fi, de exemplu, cel pe care îl voi folosi. Bara de deasupra este galbenă, restul ecranului este albastru. Puteți alege orice culoare vă place.
Avem nevoie și de senzorul de temperatură integrat DS18B20. Nu a fost ales din întâmplare. În primul rând, DS18B20 comunică cu microcontrolerul printr-o linie de comunicație cu un singur fir folosind protocolul de interfață cu 1 fir. În cazul nostru, acest lucru este important, deoarece concluziile lui Attiny85 fără senzor sunt puține. În al doilea rând, acest senzor este o cifră, adică ia toate măsurătorile în sine și transmite pur și simplu date de temperatură fără a cheltui resursele de calcul ale lui Attiny85.

În ceea ce privește restul, cred că nu vor exista întrebări, deci să trecem la fabricarea carcasei.

Pasul 2 Asamblarea carcasei.
Carcasa de ceas va fi din plastic subțire. Aveam o tabletă de plastic cu o agrafă pe mâini. Este suficient de dur pentru a-și menține forma și, în același timp, poate fi tăiat cu foarfece obișnuite și un cuțit de birou. A venit perfect.Dacă nu este la îndemână, puteți cumpăra o tabletă într-un magazin de birou sau puteți găsi plasticul potrivit pentru a înlocui tableta. Realizăm marcaje pe plastic conform schemei:


Tăiați toate liniile solide. Punctat - ușor tăiat cu un cuțit clerical. Liniile punctate sunt linii de pliere. După cum ați înțeles deja, acesta este aspectul obișnuit al cubului. În continuare, trebuie să lipiți firele pe ecran, cel mai bine este să luați mai multe culori și să scrieți ceea ce duce la ce. Lipiți ecranul pe adezivul topit la cald la mijloc, astfel încât partea din față să iasă din spate. După cum vedeți, am închis denumirile pinilor ecranului. Prin urmare, a fost necesar să le notăm. Am predat ușor cuțitul și astfel am tăiat partea inferioară a corpului. Nu este nimic rău în asta, totul poate fi lipit. Dar este mai bine să nu repet greșelile mele.



Rezultatul ar trebui să fie astfel:


În acest caz este gata. Puteți tăia încă capacul din spate din același plastic, dar acest lucru este opțional.

Pasul 3 Am lipit.
Cazul nostru este mic și trebuie să ne înghesuim mult acolo. Prin urmare, luăm o bucată din placa de circuit nu mai mare de 2,8 x 2,8 mm și lipim în două butoane, un senzor ds18b20, un rezistor și mai multe contacte. În conformitate cu următoarea schemă:


Nu este necesar să lipiți fire direct la Attiny, deoarece este necesar să deconectați totul pentru firmware. Rezultatul ar trebui să fie așa:



Butoanele sunt necesare pentru a seta ora. Puterea poate fi preluată din portul USB al computerului. Combinând plusul și minusul, respectiv:


Dacă doriți să faceți fără fire, trebuie să găsiți o baterie mică cu litiu-ion. Iată unul, de exemplu:


Această baterie se încadrează în carcasă. Este necesar să furnizați doar concluzii pentru încărcarea bateriei.

Pasul 4 Pregătirea programatorului.
Digispark Attiny85 poate fi programat prin conectorul micro USB de pe placă, utilizând Arduino IDE ca mediu de programare. În același timp, trebuie să sacrificați 2 KB de memorie pentru bootloader. Attiny 85 are un total de 8 KB Flash. Schița mea nu se potrivește cu bootloader-ul, așa că trebuie să programez prin programatorul ISP. Nu am un astfel de programator, dar există o placă Arduino Uno, pe care o voi folosi ca programator. Dacă aveți un programator ISB, puteți sări peste acest articol. Deschideți ID-ul Arduino și completați schița noastră numită ArduinoISP în Arduino Uno. Îl puteți găsi astfel: Fișier - Exemple - Arduino ISP. Schița începe cu un indiciu despre conectarea Arduino la controlerul programabil. În loc de Arduino Uno, poate exista orice altă placă Arduino.
// 10: resetare sclav
// 11: MOSI
// 12: MISO
// 13: SCK


Schema de conexiune pentru Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Pasul 5 Pregătirea mediului de programare.
Pentru a edita firmware-ul și a completa schița din Attiny 85, trebuie să pregătiți nu numai programatorul, ci și mediul de programare în sine. Pentru a face acest lucru, instalați ID-ul Arduino de pe site-ul oficial Arduino.cc și, de asemenea, instalați suplimentul Attiny pentru microcontrolere prin intermediul Boards Manager.

Lansați ID-ul Arduino, apoi Fișier - Setări - în câmpul Adrese de bord suplimentare Adresa URL, lipiți linkul:

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


faceți clic pe OK (puteți introduce mai multe linkuri separate printr-o virgulă în acest câmp). Următoarele instrumente - Board - Boards Manager în câmpul de filtrare, introduceți Attiny și faceți clic pe „attiny de David A. Mellis”. Faceți clic pe Instalare și așteptați finalizarea descărcării. Acum, în meniul Instrumente, selectați:
Board - Attiny 25/45/85
Procesor - Attiny 85
Ceas - interior 16
și selectați portul serial la care este conectat programatorul ISP sau Arduino ca programator.
Am încercat multe biblioteci diferite pentru lucrul cu ecranul. În opinia mea, cel mai convenabil și care lucrează la Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (descărcări: 477)


Un senzor de temperatură are nevoie de biblioteca OneWire.
onewire.rar [16.75 Kb] (descărcări: 263)


Instalați aceste două biblioteci. Puteți instala biblioteci terțe direct în mediul de programare. Fără a despacheta arhivele descărcate, în IDE Arduino, selectați meniul Sketch - Connect Library. În partea de sus a listei derulante, selectați articolul Adăugați biblioteca .Zip. În fereastra de dialog care apare, selectați biblioteca pe care doriți să o adăugați. Deschideți din nou meniul Sketch - Connect Library. În partea de jos a listei derulante, ar trebui să vedeți o nouă bibliotecă. Acum biblioteca poate fi folosită în programe. Nu uitați să reporniți ID-ul Arduino după toate acestea.Dacă acest lucru nu vă ajută, deconectați arhivele în folderul „biblioteci” situat în folderul cu Arduino IDE instalat.

Pasul 6 Editați și completați schița.
Senzorul de temperatură funcționează conform protocolului One Wire și are o adresă unică pentru fiecare dispozitiv - un cod pe 64 de biți. Resursele atent nu sunt suficiente pentru a căuta acest cod de fiecare dată. Prin urmare, trebuie să conectați mai întâi senzorul la orice placă Arduino, completați schița aflată în meniul Fișier - Exemple - Dallas Temperatură - OneWireSearch. Apoi, executați Instrumente - Port Monitor. Arduino ar trebui să găsească senzorul nostru, să-și scrie adresa și citirile actuale ale temperaturii. Copiem sau notăm pur și simplu adresa senzorului nostru. Deschideți schița Attiny85_Oled_SPI_Term_2, căutați linia:

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


Notăm adresa senzorului dvs. între bretele, înlocuind adresa senzorului meu. După aceea, conectați Attiny la programator sau Arduino ca programator (acest lucru este descris în Pasul 4) și completați schița. Rămâne să deconectați programatorul și să conectați totul în conformitate cu schema în 3 pași. Montajul se dovedește ceva de genul:


Ecranul este mic, este imposibil de pus atât timpul cât și temperatura, astfel încât să fie vizibil. Prin urmare, ceasul schimbă ora cu o citire a temperaturii la fiecare 10 secunde.
attiny85_oled_spi_term_2.rar [2,33 Kb] (descărcări: 574)

Attiny 85
Total de alegători: 118
9.3
10
8.7

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
13 comentariu
Vseslav
Mulțumesc, mulțumesc!
Autorul
Bună seara Nu am folosit biblioteca de la Digispart. Au un dispozitiv de încărcare prea mare, împreună cu acesta schița ceasului nu se potrivea. Am folosit biblioteca TinyOzOLED. Nu are rusă. În general, cu Attiny 85 este dificil, există prea puțină memorie.
Vseslav
Bine gândit și făcut, un singur defect - inscripțiile din Aglitsky. Pot fi pur și simplu schimbate pentru ruse sau este dificil pentru Digispark să facă asta?
Autorul
Bună după-amiază Ceasurile în timp real ocupă suficient spațiu, nu se vor încadra în acest caz.
Hmm .. de ce să nu pui un ceas în timp real în loc de senzor de temperatură?
Autorul
Un alt sfat, un LED este conectat la Digispar Attiny 85 P1, dacă utilizați acest pin, luați în considerare prezența acestuia. Am numit această diodă pe placa mea, deoarece în opinia mea nu intervine decât.
Autorul
Bună după-amiază Nu este necesar să faceți un pull-up cu un rezistor, deoarece suspensia încorporată în Attiny este inclusă în schiță. Scoate-ți bretonul și încearcă din nou.
Puteți încerca, de asemenea, o altă schiță de la celelalte ceasuri, au același controler și ecran, iar configurarea se face cu un singur buton:
https://rom.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Musafir Roman
Bună ziua. Vă mulțumim pentru idee și muncă. Doar mâinile mele nu sunt așa, sau nu înțeleg. Butoanele de setare a timpului nu funcționează normal. Am încercat atât skech-ul tău, cât și al meu, în singurul meu mod adăugat pinul butoanelor de intrare și am trecut prin 10k până la 5V. Și în asta și prin faptul că butonul nu a înțeles cum să apăsați pentru a schimba. Sau intru în întârzieri sau ceva nu este în regulă cu butoanele, ceasul obișnuit.
ecran rece. Dar glutton. RAM mănâncă mult.
Ești un maestru! se strecoară într-un tinku85 astfel.
Autorul
Aveți dreptate, a făcut un typo, 2,8 x 2,8 cm
Citat: maxim0512
Nu mai încadrați-vă doar în caz.
În funcție de zonă, puteți avea de o sută de ori mai mult decât v-ați propus.
Autorul
Nu mai încadrați-vă doar în caz. Există doar două butoane, un rezistor și un senzor de temperatură. Totul se potrivește.
... placă de circuit tăiată nu mai mare de 2,8 x 2,8 mm
Nu va fi suficient. ))

Vă sfătuim să citiți:

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