» Elektronika » Arduino »Pulkstenis ar termometru uz Attiny

Attiny termometra pulkstenis

Attiny termometra pulkstenis



Sveiki visi un lai jums jauka diena vai vakars. Šoreiz dalīšos ar norādījumiem par istabas pulksteņa izgatavošanu ar termometru. Pulksteņu skaitļošanas centrs būs Attiny85, kas samontēts uz tāfeles no Digispark. Lai parādītu pulksteni - Oled displejs. Termometrs - plaši pazīstamais ds18b20. Par jaudu mēs ņemam li-ion 18650 (tos var iegūt no vecā akumulatora no klēpjdatora). Un pievienojiet akumulatora uzlādes līmeņa displeju. Tāpat kā visos manos iepriekšējos pulksteņos, mēs iztiksim bez RTC (reālā laika pulksteņa) moduļa.

Mēs apkopojam visu nepieciešamo:

- Digispark Attiny85 (mikro USB versija)
- ds18b20 (plastmasas apvalkā)
- Oled ekrāns ar izšķirtspēju 128x64, I2C
- 2gab. 18650 baterijas vai vecs klēpjdatoru akumulators ar jonu klēpjdatoru
- Rezistori (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- plāna plastmasa (mājokļiem)
- dažādu krāsu savienojošie vadi
- ISP programmētājs (vai jebkurš cits) Arduino maksa)
- Poga
- Dupont savienotāji 2,54 mm "māte", "tēvs"
- Kancelejas nazis, abpusēja lente, elektriskā lente, kausēta kausēšana
- Viss lodēšanai (lodāmurs, kolofons, lodēt)

1. darbība.
Nākotnes pulksteņu korpuss būs izgatavots no plānas plastmasas. Jūs varat iegādāties šādas plastmasas loksni specializētā veikalā vai pasūtīt aliexpress. Vai arī jūs varat (negaidīt un nemeklēt) doties uz kanceleju un iegādāties iecienītās krāsas plastmasas papīra mapi. Topošā pulksteņa izmēri: platums - 40 mm, biezums - 30 mm, augstums - 70 mm. Saskaņā ar zemāk redzamo diagrammu mēs izgriezām skenēšanu no plastmasas:


Mēs sagriežam pa biezām līnijām, viegli salieciet pa plānām līnijām. Mēs izgriezām taisnstūri pa vidu, izmantojot pārrakstīšanās nazi, tas ir logs displejam. Rezultātā mēs iegūstam plastmasas skenēšanu:


Mēs ejam uz Attiny.

2. solis Attiny + Oled.
Kā es teicu, mūsu sirdī mājās gatavots būs Attiny 85. Vislabāk ir iegādāties šo mikroshēmu, kas ir nekavējoties pielodēta pie dēļa, kopā ar sprieguma regulatoru un instalāciju. Digispark Attiny85 ir labi piemērots. Izvēlieties versiju ar mikro-USB uz tāfeles. Citas tāfeles modifikācijas neatbilst izmēram. Gadās, ka šī plate tiek pārdota ar jau pielodētiem Dupon “vīriešu” savienotājiem. Ja tā, tad lodējiet visus savienotājus. Mēs savācam krāsainus vadus. Mums vajag 10 centimetrus dažādās krāsās. Mēs tos lodējam Attiny un pierakstām, kurš vads, kuram secinājumam atbilst. Vadi P0 un P2 jāpielodina divos vados. Otrais pāris ir nepieciešams, lai savienotu Oled ekrānu. Mēs iegūstam sekojošo:


Es uz vadu uzrakstīju šādu diagrammu:


Ekrāns ir mazs (lai pieskaņotos kontrolierim), taču tas izskatās skaisti. OLED (organiska gaismas diode) ir grafisks displejs. Nav fona apgaismojuma, un tā vietā katrs pikselis ir neatkarīga gaismas diode. Ekrāna izmēri - 0,96 collas.Izšķirtspēja 128x64. Savienots caur I2C autobusu. Izmanto tikai divus vadus, lai izveidotu savienojumu ar Attiny. Tie ir dažādās krāsās, pēc jūsu gaumes. Man patika zils ar dzeltenu svītru augšpusē. Mēs rīkojamies līdzīgi kā Digispark. Ja ir lodēti savienotāji - pielodējiet tos. Lodēšanai pagaidām tikai strāvas vadi:


Esiet piesardzīgs, lodējot, nesabojājiet kabeli ar displejā esošo lodāmuri:


Mēs savienojam dēļus, izmantojot abpusēju lenti:


Digispark Attiny un Oled displeju mēs lodējam kopā saskaņā ar shēmu (vadu krāsas var atšķirties, galvenais nav sajaukt ar secinājumiem):


Ērtības labad un pasūtīšanai mēs visus vadus savācam kopā. Varat tos savīt ar elektrisko lenti, lai nesajauktos:


Visu vadu beigās mēs piestiprinām Dupont “sieviešu” savienotāju, ievietojiet to izolatoros un aptiniet to visu kopā ar elektrisko lenti, lai izveidotu savienotāju. Mēs arī reģistrējam savienotāja pinout:


Piņķim vajadzētu būt šādam, jo ​​nākotnē savienotājam pievienosim vadu programmaparatūrai vai citiem pulksteņa elementiem.
Mēs līmējam iegūto struktūru korpusā un neaizmirstiet līmēt pašu lietu, atstājot vienu vaidu nelīmētu, turpmākām manipulācijām:


Līmējot, pievērsiet uzmanību tam, ka ekrāns ir vienmērīgs:


3. solis Jauda.
Jaudai mēs izmantosim divus Li-ion elementus. Tips 18650. Jūs varat tos iegādāties atsevišķi. Šajā gadījumā lodējiet tos paralēli, izolējiet un izvadiet savienotāju savienošanai un sekojošai uzlādēšanai:


Daudziem ir vecāki klēpjdatori. Neatkarīgi no tā, vai viņi vairs nedarbojas vai strādā laika gaitā. Pat ja klēpjdatora akumulators jau ir slikts un nav piemērots paredzētajam lietojumam, to var izmantot visu veidu mājās gatavotiem izstrādājumiem. Mūsu gadījumā par pulksteni. Mēs ņemam akumulatoru no klēpjdatora:


Galvenais, lai viņš būtu Li-ion. Mēs to rūpīgi izjaucam, jums ir jāatver plastmasas korpuss, lai nesabojātu elementu iekšpusē. Visbiežāk akumulators tiek sadalīts divos elementos, kas savienoti paralēli. Mēs tos izņemam un atdalām vienu pāri no pārējiem:


Vislabāk ir lodēt pie kontaktu klučiem:


Līmējiet šo pāri pulksteņa aizmugurē:


4. solis akumulatora uzlādes noteikšana.
Ērta pulksteņa funkcija ir norādīt akumulatora uzlādi. Mēs noteiksim uzlādes pakāpi pēc sprieguma. Minimālais šo bateriju spriegums ir 2,4 V. To vairs nevar izlādēt. Maksimālais spriegums ir 4,2 V.

Sprieguma mērīšana analogajā portā vienmēr ir attiecībā pret kādu citu spriegumu. Mēs nevaram izmantot mikrokontrollera AREF tapu, kas kalpo atsauces sprieguma iestatīšanai. Nav arī iespējams izmērīt spriegumu attiecībā pret barošanas spriegumu (attiecība vienmēr būs vienāda). Tāpēc mēs noteiksim spriegumu attiecībā pret iekšējo atsauces spriegumu vai Vbg (Bandgap atsauces spriegumu). Tas ir 1,1 V. Tagad mums jāaprēķina mūsu akumulatora sprieguma dalītājs, lai ar maksimālo uzlādi (4,2 V) dalītājam būtu (1,1 V). Jūs varat aprēķināt pēc formulas:



Vai arī izmantot

R1 nominālvērtība ir 10 kOhm. Tad R2 mēs iegūstam 3.55 KOhm, kas ir vistuvākais no standarta vērtībām 3.3 KOhm, un ņem to. Mērījumus veic starp iekšējo spriegumu un GND, tāpēc 3,3 KΩ rezistors ir pielodēts līdz mīnusam, bet 10 KΩ - līdz plusam. Mēs novietojam rezistorus uz akumulatora, mēs izvelkam vadu no dalītāja.


Mēs izolējam visus kontaktus, lai izvairītos no īssavienojuma:


Vads no dalītāja tiks savienots ar PB4.

5. solis Izmēra temperatūru.
Lielisks pulksteņa papildinājums ir istabas temperatūras mērīšana. Mēs izmantosim integrēto temperatūras sensoru DS18B20. Lai strādātu ar to, ir nepieciešams tikai viens vads (ļoti noderīgs, lietojot Attiny 85). Visus mērījumus veic pats, centrālais kontrolieris netraucē (Attiny 85 ir arī lieliska atmiņa un tik maz), mums tikai jādod komandas un jāsaņem rezultāti. Šī sensora pievienošanai ir vairākas atšķirīgas shēmas, mēs izmantosim opciju, kas, manuprāt, ir piemērota šim gadījumam.Izmantojot ārēju jaudu un 4,7 kΩ rezistoru:


Lodējiet mazus vadus un piestipriniet savienotājus


Vads no DQ sensora ir savienots ar PB 3.

6. solis.
Mums ir maz secinājumu, bet pulksteņiem ir daudz prasību. Laika iestatīšanai mēs izmantosim vienu pogu. Mēs nevaram rēķināties ar vairāk. Lodēt vadus uz pogas, vienu kontaktu no tā uz GND. Apvienojiet ar mūsu temperatūras sensoru:


Otrais kontakts no pogas ir savienots ar PB 1.

7. solis - Attīstības vides sagatavošana
Turpmākam darbam ar skici, kā arī tā rediģēšanai un aizpildīšanai mums ir nepieciešams Arduino IDE. Lejupielādējiet šo programmu no:

Tagad pievienojiet Attiny 85 atbalstu trešdien. Atveriet Arduion IDE un dodieties pa šo ceļu:
Fails - Iestatījumi - “Papildu paneļu pārvaldnieka vietrāži URL” ievietojiet saiti:

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


Noklikšķiniet uz Labi.
Doties uz:
Rīki - Dēlis - Dēļu pārvaldnieks ieiet Attiny un noklikšķiniet uz “David A. Mellis attiny”. Noklikšķiniet uz "Install" un atstājiet ielieciet kafiju.
Un tagad par bibliotēkām. Viņiem nepieciešami divi:

Darbam ar displeju Oled

Temperatūras sensora kontrole

Pēc šo arhīvu lejupielādes izsaiņojiet tos mapē “bibliotēkas”, ko ir viegli atrast, dodoties pa Arduino IDE instalācijas ceļu.

8. solis - programmētājs.
Digispark Attiny 85 ir lielisks dēlis. Paredzēts savienojumam ar USB datoru. Un caur to var ieprogrammēt. Bet Attiny izmanto programmatūras USB, kas savukārt aizņem 2 KB no 8 KB atmiņas. Tas mums nav piemērots, un tāpēc mēs ar Attēlu 85 mirgosim caur ISP saskarni. Un šeit mums ir nepieciešams ISP programmētājs. Ja tā tur nav - tam nav nozīmes. Dodieties Arduino. Manā gadījumā Arduino UNO:


Jūs varat ņemt jebkuru citu saderīgu dēli no Arduino līnijas. Mēs pievienojamies datoram, atveriet Arduino IDE, atlasiet kom portu, pie kura ir pievienota Arduino tāfele, atveriet skici piemēros, Arduino ISP un piepildiet to valdē. Mums ir nepieciešams arī vads, lai ātri izveidotu savienojumu ar Attiny.


Savienojums ir šāds:

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

Neaizmirstiet par Attiny uzturu.

9. darbība. Rediģējiet un aizpildiet skici.

Lejupielādēt skici

Pirms aizpildīšanas jums jārediģē skice.
Integrētais sensors ds18b20, kā minēts iepriekš, darbojas, izmantojot vienas stieples protokolu. Katram sensoram ir sava unikālā 64 bitu adrese. Jums jāatrod sensora adrese un jāraksta tā skicē. Atveriet Arduino IDE, sekojiet ceļam:
Fails - piemēri - Dalasas temperatūra - OneWireSearch.

Aizpildiet skici Arduino. Atveriet porta monitoru. Jums vajadzētu redzēt visu pievienoto sensoru adreses un temperatūras rādījumus. Mēs pierakstām jūsu adresi. Atveriet manu skici un mainiet adresi uz savu rindā:

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


Lai pielāgotu pulksteņa norisi, izmantojiet šo konstantu:

if (micros () - prevmicros> [b] 497000 [/ b]) 


Jo lielāka šī vērtība, jo lēnāks pulkstenis.
Kontrolēšanai ekrānā tiek parādītas sekundes:

OzOled.printNumber ((garš) sek, 0, 7); // izejas sekundes precīzai noregulēšanai 


Komentējiet šo rindiņu, lai noņemtu sekundes.
Tagad mēs savienojam programmētāju vai Arduino kā programmētāju, atlasiet komportu, izvēlnē Rīki atlasiet mūsu plati un iestatiet šādus parametrus:
Valde: Attiny 25/45/85
Procesors: Attiny 85
Pulkstenis: iekšējais 16
Pēc tam tajā pašā izvēlnē atlasiet:
Rīki - programmētājs - "Arduino as ISP".
Un visbeidzot:
Skice - lejupielādēt caur programmētāju

10. solis Galīgā montāža un palaišana.
Izslēdziet programmētāju un pievienojiet sensoru, strāvu un pogu:


Kamēr nav precīzi konfigurēts pulksteņa kurss, lietu var aizvērt, izmantojot bankas gumiju. Kad tas izdarīts, jūs varat to pielīmēt.


Skatīšanās vērtējums
Kopējais balsu skaits: 13
10
10
10

Pievienojiet komentāru

    • smaidismaidaxaxalabinezinuYahoonea
      priekšniekssaskrāpētmuļķisjājā-jāagresīvsslepeni
      žēldejotdeja2deja3apžēlošanapalīdzētdzērieni
      apstātiesdraugilabilabsirdīgssvilpegulbismēle
      smēķētaplaudēkrauklispaziņodrausmīgsdon-t_mentionlejupielādēt
      karstumsdrausmīgssmieties1mdasapulceņirgāšanāsnegatīvs
      not_ipopkornssodītlasītnobiedētbiedēmeklēt
      ņurdētpaldiesšoto_clueumņikakūtapiekrītu
      sliktibēmelnā acsblum3sarktlielītiesgarlaicība
      cenzētspleasantryslepens2draudētuzvarajusun_bespectacled
      šoksrespektlolprevedlaipni gaidītikrutojsya_za
      ya_dobryipalīgsne_huliganne_othodifludsaizliegumstuvu
9 komentāri
Autore
Ideja ir lieliska. Es kaut ko izdarīju šajā sakarā. Tikai man pa rokai bija 5 kΩ mainīgs lielums. Es to iekļāvu apakšējā plecā. Un pēc tam to aizstāj ar vispiemērotāko pastāvīgo. Bet es uzskatu, ka ražošanas instrukcijās rakstīšana ir nevajadzīga. Kāpēc gan šos mērījumus neveikt vairākas reizes.
Es neredzēju vajadzību rakstīt par garlaicīgiem un gariem pārbaudījumiem.
Nav jādara kaut kas garš un garlaicīgs. Ieslēdziet rezistoru (2,7 ... 3) kOhm apakšdaļā, pēc kārtas ar to 1 kOhm trimmeri. No regulējama enerģijas avota jūs ievadāt kontrolētā sprieguma galējās vērtības ieejā, pielāgojat darbības punktu, pēc tam, ja vēlaties, varat izmērīt trimmera pretestību un aizstāt to ar pastāvīgu rezistoru.
Autore
Ar 8 MHz frekvenci es nemēģināju iedarbināt pulksteni un attiecīgi izmērīju kursa precizitāti. Visi mērījumi tika veikti pulksten 16 no iekšpuses. Arī par mēnesi nevaru teikt. Līdz šim viņi netika slēgti, un viņi strādāja maksimāli nedēļu. Eksperimenti un uzlabojumi joprojām notiek.
Autore
Kas attiecas uz sprieguma dalītāju, tad tiešām ir daudz nianšu un kļūdu. Un rezistoru pretestības izkliede un atsauces sprieguma izkliede. Es visu izmēģināju praksē. Lietojot 3,6 kΩ rezistoru, pat ar akumulatora spriegumu 3,9 V, Attiny analogā pieslēgvieta rāda 1023 (pārrēķinot uz 100% procentiem). Izmantojot 3,3 kΩ rezistoru, analogā porta vērtība akumulatoram samazinās pat pie 4,1 V. Tāpēc es rakstīju, ka liecība tiek iegūta precīzāk, es vienkārši neredzēju nepieciešamību rakstīt par garlaicīgiem un gariem pārbaudījumiem.
Autore
Es iestatīju nedēļas pulksteni, pielāgoju tā gaitu katru dienu vai biežāk. Rezultātā 497343 vērtībā viņi steidzas apmēram 10 sekundes nedēļā.
Biežumu var samazināt. Es nemainīju parametru, nebija vajadzības
Nu, un kāda ir 8 MHz RC-pulksteņa precizitāte? Mēnesī?
un kāpēc pulkstenis: iekšējais 16?
Labāk ir izvēlēties mazāk, tad rādījumi ir precīzāki.
Ne precīzāk, bet vienkārši ieejas spriegumam jābūt mazākam par atsauces vērtību. Turklāt argumentācijā jūs nemaz neņem vērā parametru izkliedi: rezistori, visticamāk, jums būs pieci procenti, Vbg = (1,0 ... 1,2) V. Tātad 3,3 kOhm var būt pārāk liels, un varbūt darīs 3,6 kOhms.
Autore
Ja jūs izmantojat 3.6 izejas spriegumu, mēs iegūstam 1,11. Lai gan tas nav daudz, bet vairāk atsauces sprieguma. Lietojot 3.3 - 1.04. Labāk ir izvēlēties mazāk, tad rādījumi ir precīzāki.
Un kas attiecas uz Ak, jums taisnība, es vienkārši nepievērsu uzmanību šai nelielajai detaļai.
Pēc korpusa līmēšanas piekļuvi lādēšanas kontaktligzdai un pogām var iegūt no pulksteņa apakšas, nogriežot apakšējo vāku vai vienkārši to nelīpjot.
Tad R2 iegūst 3,55 KOhm, kas ir vistuvākais no standarta vērtībām 3,3 KOhm,
Nemaz. Tuvākais E24 standarta diapazonā ir 3,6 kOhm. Un, starp citu, nevis "KOhm, bet" KOhm.
Kamēr nav precīzi konfigurēts pulksteņa kurss, lietu var aizvērt, izmantojot bankas gumiju. Kad tas izdarīts, jūs varat to pielīmēt.
Kā mēs uzlādēsim akumulatoru?
Un kā manipulēt ar pogu?

Mēs iesakām izlasīt:

Nododiet to viedtālrunim ...