Kamusta sa lahat at magkaroon ng magandang araw o gabi. Sa oras na ito ibabahagi ko ang mga tagubilin para sa paggawa ng isang orasan sa silid na may isang thermometer. Ang computing center ng panonood ay magiging Attiny85, tipunin sa isang board mula sa Digispark. Upang ipakita ang orasan - Oled na display. Thermometer - ang kilalang ds18b20. Para sa kapangyarihan, kinukuha namin ang li-ion 18650 (maaari silang makuha mula sa isang lumang baterya mula sa isang laptop). At magdagdag ng isang pagpapakita ng antas ng baterya. Tulad ng sa lahat ng aking mga nakaraang relo, gagawin namin nang walang module ng RTC (real time orasan).
Kinokolekta namin ang lahat ng kinakailangan:
- Digispark Attiny85 (bersyon ng micro USB)
- ds18b20 (sa isang plastik na kaso)
- Oled screen na may resolusyon ng 128x64, I2C
- 2pcs 18650 na baterya o isang lumang baterya ng laptop na Li-ion
- Mga Resistor (3.3 kΩ, 4.7 kΩ, 10 kΩ)
- Manipis na plastik (para sa pabahay)
- Pagkonekta ng mga wire ng iba't ibang kulay
- ISP programmer (o anumang Arduino bayad)
- Button
- Mga konektor ng Dupont na 2.54 mm "ina", "ama"
- Stationery kutsilyo, double-sided tape, electrical tape, hotmelt
- Lahat para sa paghihinang (paghihinang iron, rosin, panghinang)
Hakbang 1 Kaso.
Ang kaso sa hinaharap na panonood ay gagawin ng manipis na plastik. Maaari kang bumili ng isang sheet ng naturang plastic sa isang dalubhasang tindahan o order sa aliexpress. O maaari kang (hindi maghintay at hindi tumingin) upang pumunta sa opisina ng klerical at bumili ng isang plastik na folder ng papel ng iyong paboritong kulay. Mga sukat ng hinaharap na relo: lapad - 40 mm, kapal - 30 mm, taas - 70 mm. Ayon sa diagram sa ibaba, pinutol namin ang isang pag-scan mula sa plastic:
Pinutol namin ang mga makapal na linya, yumuko nang marahan kasama ang mga manipis na linya. Pinutol namin ang rektanggulo sa gitna gamit ang isang clerical kutsilyo, ito ay isang window para ipakita. Bilang isang resulta, nakakakuha kami ng isang pag-scan ng plastic:
Pumasa kami kay Attiny.
Hakbang 2 Attiny + Oled.
Tulad ng sinabi ko, sa aming puso gawang bahay ay magiging Attiny 85. Pinakamainam na bilhin ang maliit na tilad na ito, agad na ibenta sa board kasama ang isang regulator ng boltahe at gamit. Ang Digispark Attiny85 ay mahusay na angkop. Piliin ang bersyon gamit ang micro-USB sa board. Ang iba pang mga pagbabago sa board ay hindi magkasya sa laki. Ito ay nangyayari na ang lupon na ito ay ibinebenta sa mga Dupon na "lalaki" na konektor na nakabenta. Kung gayon, ang panghinang sa lahat ng mga konektor. Kinokolekta namin ang mga may kulay na mga wire. Kailangan namin ng 10 sentimetro sa iba't ibang kulay. Ibinebenta namin ang mga ito sa Attiny at isulat kung aling kawad, na konklusyon ay tumutugma sa. Ang mga wires na P0 at P2 ay dapat ibenta sa dalawang wires. Ang pangalawang pares ay kinakailangan upang ikonekta ang Oled screen. Nakukuha namin ang mga sumusunod:
Sinulat ko ang sumusunod na diagram sa kawad:
Maliit ang screen (upang tumugma sa controller), ngunit maganda ang hitsura. Ang OLED (organic light-emitting diode) ay isang graphic na display. Walang backlight, at sa halip, ang bawat pixel ay isang independiyenteng LED. Mga sukat ng screen - 0.96 pulgada.Resolusyon 128x64. Nakakonekta sa pamamagitan ng I2C bus. Gumagamit lamang ng dalawang wires upang kumonekta kay Attiny. Dumating ang mga ito sa iba't ibang kulay, pumili sa iyong panlasa. Nagustuhan ko ang asul na may isang dilaw na guhit sa tuktok. Kami ay kumikilos nang katulad sa Digispark. Kung may mga naka-soldering na konektor - ang mga ito ay panghinang. Solder, sa ngayon, tanging ang mga wires ng kuryente:
Mag-ingat kapag paghihinang, huwag masira ang cable na may isang paghihinang bakal sa display:
Ikinonekta namin ang mga board gamit ang double-sided tape:
Kami ay nagbebenta ng Digispark Attiny at Oled na display nang magkasama ayon sa pamamaraan (maaaring magkakaiba ang mga kulay ng mga wire, ang pangunahing bagay ay hindi magulo sa mga konklusyon):
Para sa kaginhawahan at order ay kinokolekta namin ang lahat ng mga wire. Maaari mong i-twist ang mga ito sa mga de-koryenteng tape upang hindi malito:
Sa pagtatapos ng lahat ng mga wire ay ikinakabit namin ang Dupont na "babaeng" konektor, ipasok ito sa mga insulator at ibalot ito ng lahat kasama ang mga de-koryenteng tape upang gawin ang konektor. Inirerekord din namin ang pinout ng konektor:
Ang pinout ay dapat na katulad nito, dahil sa hinaharap ay magkakonekta kami ng isang wire para sa firmware o iba pang mga elemento ng relo sa konektor.
I-glue namin ang nagreresultang istraktura sa kaso, at huwag kalimutang i-glue ang kaso mismo, nag-iiwan ng isang ungol na hindi nakadikit, para sa karagdagang mga manipulasyon:
Kapag gluing, bigyang-pansin na ang screen ay kahit na:
Hakbang 3 Hakbang.
Para sa kapangyarihan gagamitin namin ang dalawang elemento ng Li-ion. I-type ang 18650. Maaari mong bilhin ang mga ito nang hiwalay. Sa kasong ito, ang nagbebenta ng mga ito ay kahanay, ihiwalay at output ang konektor para sa koneksyon at kasunod na singilin:
Marami ang may mas matatandang laptop. Kahit na hindi na sila nagtatrabaho o nagtatrabaho sa oras. Kahit na ang baterya ng laptop ay masama at hindi angkop para sa inilaan nitong paggamit, maaari itong magamit para sa lahat ng uri ng mga produktong homemade. Sa aming kaso, para sa isang relo. Kinukuha namin ang baterya mula sa laptop:
Ang pangunahing bagay ay siya ay Li-ion. Maingat naming i-disassemble ito, kailangan mong buksan ang plastic case, upang hindi masira ang elemento sa loob. Kadalasan, ang baterya ay nahahati sa dalawang elemento na konektado kahanay. Inalis namin sila at pinaghiwalay ang isang pares mula sa natitira:
Pinakamainam na ibebenta sa mga contact pad:
I-glue ang pares na ito sa likod ng relo:
Hakbang 4 Ang pagtukoy ng singil ng baterya.
Ang isang maginhawang function ng relo ay upang ipahiwatig ang singil ng baterya. Matukoy namin ang antas ng singil sa pamamagitan ng boltahe. Ang minimum na boltahe para sa mga baterya na ito ay 2.4 V. Hindi ito maaaring maipalabas pa. Ang maximum na boltahe ay 4.2 V.
Ang pagsukat ng boltahe sa analog port ay palaging may kaugnayan sa ilang iba pang boltahe. Hindi namin magagamit ang AREF pin ng microcontroller, na nagsisilbi upang itakda ang sanggunian ng sanggunian. Imposibleng masukat din ang boltahe na may kinalaman sa supply ng boltahe (ang ratio ay palaging magkatulad). Samakatuwid, matutukoy namin ang boltahe na may kaugnayan sa panloob na boltahe ng sanggunian o Vbg (Bandgap reference boltahe). Ito ay 1.1 V. Ngayon ay kailangan nating kalkulahin ang divider ng boltahe para sa aming baterya, upang sa maximum na singil (4.2 V) ang divider ay mayroong (1.1 V). Maaari mong kalkulahin ang formula:
O gamitin
R1 kumuha ng halaga ng mukha ng 10 kOhm. Pagkatapos ang R2 ay nakakakuha kami ng 3.55 KOhm, ang pinakamalapit na angkop mula sa mga pamantayang halaga ng 3.3 KOhm, at kunin ito. Ang mga pagsukat ay ginawa sa pagitan ng panloob na boltahe at GND, kaya ang resistor na 3.3 KΩ ay ibinebenta sa minus, at 10 KΩ sa dagdag. Inilalagay namin ang mga resistors sa baterya, inalis namin ang kawad mula sa divider.
Inihiwalay namin ang lahat ng mga contact upang maiwasan ang maikling circuit:
Ang wire mula sa divider ay konektado sa PB4.
Hakbang 5 Sukatin ang temperatura.
Ang isang mahusay na pandagdag sa relo ay ang pagsukat ng temperatura ng silid. Gagamitin namin ang integrated sensor sensor DS18B20. Upang magtrabaho kasama nito, ang isang kawad lamang ang kinakailangan (napaka-kapaki-pakinabang kapag gumagamit ng Attiny 85). Ang lahat ng mga sukat ay ginawa sa pamamagitan ng kanyang sarili, ang sentral na controller ay hindi nag-abala (ang Attiny 85 ay mayroon ding mahusay na memorya at napakaliit), kailangan lamang naming magbigay ng mga utos at makakuha ng mga resulta. Mayroong maraming iba't ibang mga scheme para sa pagkonekta sa sensor na ito, gagamitin namin ang pagpipilian na pinakamainam para sa kasong ito, sa aking palagay.Paggamit ng panlabas na kapangyarihan at isang risistor na 4.7 kΩ:
Maglagay ng maliliit na wires, at i-fasten ang mga konektor
Ang kawad mula sa sensor ng DQ ay konektado sa PB 3.
Hakbang 6 Button.
Mayroon kaming kaunting mga konklusyon, ngunit maraming mga kinakailangan para sa mga relo. Gumagamit kami ng isang pindutan upang itakda ang oras. Hindi kami makakaasa pa. Itala ang mga wire sa pindutan, isang contact mula dito sa GND. Pagsamahin sa aming sensor ng temperatura:
Ang pangalawang contact mula sa pindutan ay konektado sa PB 1.
Hakbang 7 Paghahanda ng Kapaligiran sa Pag-unlad
Para sa karagdagang trabaho sa sketsa, pati na rin ang pag-edit at pagpuno nito, kailangan namin ang Arduino IDE. I-download ang program na ito mula sa:
Ngayon magdagdag ng suporta para sa Attiny 85 sa Miyerkules. Buksan ang Arduion IDE at sumunod sa landas:
File - Mga Setting - Isingit ang link ng "Mga Karagdagang Mga Boards Manager URL"
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Mag-click sa OK.
Pumunta sa:
Mga Tool - Lupon - Ang Boards Manager ay pumasok sa Attiny at mag-click sa "attiny ni David A. Mellis". I-click ang "I-install" at iwanan ilagay ang kape.
At ngayon tungkol sa mga aklatan. Kailangan nila ng dalawa:
Upang gumana sa Oled display
Kontrol ng sensor ng temperatura
Pagkatapos ma-download ang mga archive na ito, i-unpack ang mga ito sa folder na "library", na madaling mahanap sa pamamagitan ng pagpunta sa landas ng pag-install ng Arduino IDE.
Hakbang 8 Programmer.
Ang Digispark Attiny 85 ay isang mahusay na board. Dinisenyo upang kumonekta sa isang USB computer. At maaari itong mai-program sa pamamagitan nito. Ngunit ang Attiny ay gumagamit ng isang USB software, na kung saan ay tumatagal ng 2 KB ng 8 KB ng memorya. Hindi ito nababagay sa amin, at samakatuwid ay mag-flash kami ng Attiny 85 sa pamamagitan ng interface ng ISP. At narito kailangan namin ng isang ISP programmer. Kung wala ito - hindi mahalaga. Sumakay sa Arduino. Sa aking kaso, Arduino UNO:
Maaari kang kumuha ng anumang iba pang katugmang board mula sa linya ng Arduino. Kumonekta kami sa computer, buksan ang Arduino IDE, piliin ang com port kung saan konektado ang board ng Arduino, buksan ang sketch sa mga halimbawa, ang Arduino ISP at punan ito sa board. Kailangan din namin ng isang wire upang mabilis na kumonekta kay Attiny.
Ang koneksyon ay ang mga sumusunod:
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Huwag kalimutan ang tungkol sa nutrisyon ng Attiny.
Hakbang 9 I-edit at punan ang sketch.
I-download ang sketch
Bago pagpuno, kailangan mong i-edit ang sketch.
Ang sensor na pinagsama ng ds18b20, tulad ng nabanggit mas maaga, ay gumagana gamit ang One Wire protocol. Ang bawat sensor ay may sariling natatanging 64-bit address. Kailangan mong hanapin ang address ng iyong sensor at isulat ito sa isang sketch. Buksan ang Arduino IDE, sundin ang landas:
File - Mga Halimbawa - Temperatura ng Dallas - OneWireSearch.
Punan ang sketch sa Arduino. Buksan ang monitor ng port. Dapat mong makita ang mga address ng lahat ng mga konektadong sensor at ang kanilang pagbabasa ng temperatura. Isusulat namin ang iyong address. Buksan ang aking sketch at baguhin ang address sa iyong sarili sa linya:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Upang ayusin ang pag-unlad ng orasan, gamitin ang sumusunod na pare-pareho:
kung (micros () - prevmicros & gt; [b] 497000 [/ b])
Ang mas malaki ang halagang ito, mas mabagal ang orasan.
Para sa kontrol, ang mga segundo ay ipinapakita sa screen:
OzOled.printNumber ((mahaba) sek, 0, 7); // output segundo para sa tumpak na pag-tune
Mag-puna sa linya na ito upang alisin ang mga segundo.
Ngayon ikinonekta namin ang programmer o Arduino bilang isang programmer, piliin ang com-port, piliin ang aming board sa menu ng Mga Tool at itakda ang sumusunod na mga parameter:
Lupon: Attiny 25/45/85
Tagapagproseso: Attiny 85
Orasan: panloob 16
Pagkatapos ay pumili sa parehong menu:
Mga tool - Programmer - "Arduino bilang ISP".
At sa wakas:
Sketch - I-download sa pamamagitan ng programmer
Hakbang 10 Pangwakas na pagpupulong at paglulunsad.
I-off ang programista at ikonekta ang sensor, kapangyarihan at pindutan:
Hanggang sa ang eksaktong kurso ng orasan ay na-configure, maaari mong isara ang kaso gamit ang bank goma. Kapag tapos na, maaari mong kola ito.