Sveiki visi ir linksmai praleisk dieną ar vakarą. Šį kartą pasidalinsiu kambario laikrodžio pagaminimo termometru instrukcijomis. Laikrodžių skaičiavimo centras bus Attiny85, surinktas ant lentos iš „Digispark“. Laikrodžio rodymas - Oled ekranas. Termometras - visiems gerai žinomas ds18b20. Dėl energijos mes paimame li-ion 18650 (juos galima gauti iš senos baterijos iš nešiojamojo kompiuterio). Ir pridėkite baterijos lygio ekraną. Kaip ir visuose mano ankstesniuose laikrodžiuose, mes išsiversime be RTC (realaus laiko laikrodžio) modulio.
Mes surenkame viską, kas būtina:
- „Digispark Attiny85“ („micro USB“ versija)
- ds18b20 (plastikiniame dėkle)
- Oled ekranas, kurio skiriamoji geba yra 128x64, I2C
- 2 vnt. 18650 baterijų arba sena Li-ion nešiojamojo kompiuterio baterija
- Rezistoriai (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Plonas plastikas (būstui)
- Įvairių spalvų jungiamieji laidai
- IPT programuotojas (arba bet kuris kitas) Arduino mokestis)
- Mygtukas
- „Dupont“ jungtys 2,54 mm „motina“, „tėvas“
- Kanceliarinis peilis, dvipusė juosta, elektrinė juosta, karštas lydinys
- Viskas litavimui (lituoklis, kanifolija, litavimas)
1 žingsnis.
Būsimas laikrodžio korpusas bus pagamintas iš plono plastiko. Tokio plastiko lakštą galite nusipirkti specializuotoje parduotuvėje arba užsisakyti aliexpress. Arba galite (nelaukti ir nežiūrėti) eiti į kanceliariją ir nusipirkti mėgstamos spalvos plastikinį popieriaus aplanką. Būsimo laikrodžio matmenys: plotis - 40 mm, storis - 30 mm, aukštis - 70 mm. Pagal žemiau pateiktą schemą iš plastiko išpjaustėme nuskaitymą:
Mes supjaustome išilgai storų linijų, švelniai sulenkite išilgai plonų linijų. Mes iškirpėme stačiakampį viduryje, naudodami kanceliarinį peilį, tai yra langas rodymui. Kaip rezultatas, mes gauname plastiko nuskaitymą:
Pravažiuojame Attiny.
2 žingsnis Attiny + Oled.
Kaip sakiau, mūsų širdyje naminis Tai bus „Attiny 85“. Geriausia įsigyti šį lustą, iškart prilipdytą prie plokštės kartu su įtampos reguliatoriumi ir dirželiais. „Digispark Attiny85“ puikiai tinka. Pasirinkite versiją su „micro-USB“ plokštėje. Kitos plokštės modifikacijos netiks dydžiui. Taip atsitinka, kad ši plokštė parduodama su jau užklijuotomis „Dupon“ „male“ jungtimis. Jei taip, sujunkite visas jungtis. Mes renkame spalvotus laidus. Mums reikia 10 centimetrų skirtingų spalvų. Juos lituokime Attiny ir užrašome, kuri viela, kuri išvada atitinka. Laidai P0 ir P2 turi būti sulieti dviem laidais. Antroji pora reikalinga ekranui „Oled“ prijungti. Mes gauname taip:
Ant laido parašiau tokią schemą:
Ekranas yra mažas (kad atitiktų valdiklį), tačiau jis atrodo gražiai. OLED (organinis šviesos diodas) yra grafinis ekranas. Nėra fono apšvietimo, o kiekvienas pikselis yra nepriklausomas šviesos diodas. Ekrano dydžiai - 0,96 colio.Skyra 128x64. Prijungta per I2C magistralę. Naudojami tik du laidai, kad būtų galima prisijungti prie „Attiny“. Jie būna skirtingų spalvų, pasirenka pagal savo skonį. Man patiko mėlyna su geltona juostele viršuje. Mes elgiamės panašiai kaip „Digispark“. Jei yra litavimo jungčių - lituokite jas. Lydmetalyje kol kas naudojami tik maitinimo laidai:
Lituokite atsargiai, nepažeiskite laido su lydmetaliu ekrane:
Mes sujungiame lentas naudodami dvipusę juostą:
Lydome „Digispark Attiny“ ir „Oled“ ekranus kartu pagal schemą (laidų spalvos gali skirtis, svarbiausia nesijausti išvadomis):
Patogumui ir užsakymui mes visus laidus surenkame kartu. Galite juos susukti elektrine juostele, kad nesusipainioti:
Visų laidų gale pritvirtiname „Dupont“ „motinos“ jungtį, įkišame ją į izoliatorius ir viską apvyniojame kartu su elektros juostele, kad padarytume jungtį. Mes taip pat įrašome jungties pradžią:
Pinoutas turėtų būti toks, nes ateityje prie jungties prijungsime laidą, skirtą programinės įrangos ar kitiems laikrodžio elementams.
Mes klijuojame gautą struktūrą į korpusą ir nepamirškite klijuoti paties korpuso, paliekant vieną klijuotę nepriklijuotą, tolimesnėms manipuliacijoms:
Klijuodami atkreipkite dėmesį, ar ekranas būtų lygus:
3 žingsnis Galia.
Galiai mes naudosime du ličio jonų elementus. Tipas 18650. Galite juos įsigyti atskirai. Tokiu atveju lygiagrečiai lituokite, izoliuokite ir išveskite jungtį, kad būtų galima prijungti ir vėliau krauti:
Daugelis turi senesnius nešiojamuosius kompiuterius. Ar jie nebedirba, ar dirba per laiką. Net jei nešiojamojo kompiuterio akumuliatorius jau yra blogas ir netinkamas naudoti pagal paskirtį, jį galima naudoti įvairiems namų gaminiams. Mūsų atveju - už laikrodį. Mes pasiimame akumuliatorių iš nešiojamojo kompiuterio:
Svarbiausia, kad jis būtų Li-ion. Mes atsargiai jį išardome, jums reikia atidaryti plastikinį dėklą, kad nepažeistumėte elemento viduje. Dažniausiai baterija yra padalinta į du elementus, sujungtus lygiagrečiai. Mes juos išimame ir atskiriame vieną porą nuo kitų:
Geriausia lituoti ant kontaktinių trinkelių:
Klijuokite šią porą ant laikrodžio užpakalinės dalies:
4 veiksmas. Baterijos įkrovos nustatymas.
Patogi laikrodžio funkcija yra nurodyti akumuliatoriaus įkrovą. Mes nustatysime įkrovos laipsnį pagal įtampą. Minimali šių akumuliatorių įtampa yra 2,4 V. Jos toliau negalima iškrauti. Didžiausia įtampa yra 4,2 V.
Įtampos matavimas analoginiame prievade visada yra susijęs su kokia nors kita įtampa. Negalime naudoti mikrovaldiklio AREF kaiščio, kuris skirtas nustatyti pamatinę įtampą. Taip pat neįmanoma išmatuoti įtampos maitinimo įtampos atžvilgiu (santykis visada bus tas pats). Todėl mes nustatysime įtampą, palyginti su vidine etalonine įtampa arba Vbg („Bandgap“ etalonine įtampa). Tai 1,1 V. Dabar turime apskaičiuoti savo akumuliatoriaus įtampos daliklį, kad esant maksimaliam įkrovimui (4,2 V) daliklis turėtų (1,1 V). Galite apskaičiuoti pagal formulę:
Arba naudokite
R1 nominalioji vertė yra 10 kOhm. Tada R2 gauname 3,55 KOhm, artimiausią iš standartinių 3,3 KOhm verčių, ir imkime. Matavimai atliekami tarp vidinės įtampos ir GND, todėl 3,3 KΩ varža yra lituojama iki minuso, o 10 KΩ - prie pliuso. Mes įdedame rezistorius ant akumuliatoriaus, mes pašaliname laidą iš daliklio.
Mes išskiriame visus kontaktus, kad išvengtume trumpo jungimo:
Viela iš daliklio bus sujungta su PB4.
5 žingsnis Išmatuokite temperatūrą.
Puikus laikrodžio papildymas yra kambario temperatūros matavimas. Mes naudosime integruotą temperatūros jutiklį DS18B20. Norint su ja dirbti, reikalinga tik viena viela (labai naudinga naudojant „Attiny 85“). Visus matavimus daro pats, centrinis valdiklis nesivargina (Attiny 85 taip pat turi puikią atmintį ir tiek mažai), mums reikia tik duoti komandas ir gauti rezultatus. Yra keletas skirtingų šio jutiklio prijungimo schemų, mes naudosime variantą, kuris, mano nuomone, yra optimalus šiuo atveju.Naudojant išorinę galią ir 4,7 kΩ varžą:
Lituokite mažus laidus ir pritvirtinkite jungtis
DQ jutiklio laidas prijungtas prie PB 3.
6 veiksmo mygtukas.
Turime nedaug išvadų, tačiau laikrodžiams yra daug reikalavimų. Laikui nustatyti naudosime vieną mygtuką. Mes negalime tikėtis daugiau. Lydyti laidus prie mygtuko, vieną kontaktą iš jo į GND. Derinkite su mūsų temperatūros jutikliu:
Antrasis mygtuko kontaktas yra prijungtas prie PB 1.
7 žingsnis. Parengimo aplinkos paruošimas
Tolesniam darbui su eskizu, taip pat jo redagavimui ir užpildymui reikalingas „Arduino IDE“. Atsisiųskite šią programą iš:
Dabar trečiadienį pridėkite „Attiny 85“ palaikymą. Atidarykite „Arduion IDE“ ir eikite šiuo keliu:
Failas - Nustatymai - „Papildomos plokštės tvarkyklės URL“ įterpkite nuorodą:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Spustelėkite Gerai.
Eiti į:
Įrankiai - Lenta - Lentų valdytojas įveskite Attiny ir paspauskite „Davido A. Mellis attiny“. Spustelėkite „Įdiegti“ ir palikite pilti kavos.
O dabar apie bibliotekas. Jiems reikia dviejų:
Norėdami dirbti su ekranu „Oled“
Temperatūros jutiklio valdymas
Atsisiuntę šiuos archyvus, išpakuokite juos į aplanką „bibliotekos“, kurį nesunku rasti einant Arduino IDE diegimo keliu.
8 žingsnis - programuotojas.
„Digispark Attiny 85“ yra puiki lenta. Skirta prisijungti prie USB kompiuterio. Ir per tai galima užprogramuoti. Tačiau Attiny naudoja programinę įrangą USB, kuri savo ruožtu užima 2 KB 8 KB atminties. Tai netinka mums, todėl „Attiny 85“ mirksėsime per IPT sąsają. Ir čia mums reikia IPT programuotojo. Jei jo nėra - nesvarbu. Paimkite Arduino. Mano atveju, Arduino UNO:
Iš „Arduino“ linijos galite pasiimti bet kurią kitą suderinamą lentą. Mes jungiamės prie kompiuterio, atidarome „Arduino IDE“, pasirenkame prievadą, prie kurio prijungta „Arduino“ plokštė, atidarykite pavyzdžių eskizą, „Arduino ISP“ ir užpildykite jį lentoje. Mums taip pat reikia laido, kad greitai prisijungtume prie „Attiny“.
Ryšys yra toks:
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Nepamirškite apie „Attiny“ mitybą.
9 veiksmas Redaguokite ir užpildykite eskizą.
Atsisiųsti eskizą
Prieš užpildydami, turite redaguoti eskizą.
„Ds18b20“ integruotas jutiklis, kaip minėta anksčiau, veikia naudojant „One Wire“ protokolą. Kiekvienas jutiklis turi savo unikalų 64 bitų adresą. Turite rasti savo jutiklio adresą ir parašyti jį eskizu. Atidarykite „Arduino IDE“, eikite keliu:
Failas - pavyzdžiai - Dalaso temperatūra - „OneWireSearch“.
Užpildykite eskizą Arduino. Atidarykite uosto monitorių. Turėtumėte pamatyti visų prijungtų jutiklių adresus ir jų temperatūros rodmenis. Mes užrašome jūsų adresą. Atidarykite mano eskizą ir pakeiskite adresą savo eilute:
baitų adr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Norėdami koreguoti laikrodžio eigą, naudokite šią konstantą:
if (micros () - priešmikros & bt; [b] 497000 [/ b])
Kuo didesnė ši vertė, tuo lėtesnis laikrodis.
Valdymui ekrane rodomos sekundės:
„OzOled.printNumber“ ((ilgas) sek, 0, 7); // išvesties sekundės tiksliam derinimui
Pakomentuokite šią eilutę, kad pašalintumėte sekundes.
Dabar mes prijungiame programuotoją arba Arduino kaip programuotoją, pasirenkame prievadą, meniu „Tools“ pasirinkite mūsų plokštę ir nustatome šiuos parametrus:
Valdyba: Attiny 25/45/85
Procesorius: Attiny 85
Laikrodis: vidinis 16
Tada tame pačiame meniu pasirinkite:
Įrankiai - Programuotojas - „Arduino as ISP“.
Ir galiausiai:
Eskizas - atsisiųskite per programuotoją
10 žingsnis Galutinis surinkimas ir paleidimas.
Išjunkite programuotoją ir prijunkite jutiklį, maitinimą ir mygtuką:
Kol nebus sukonfigūruotas tikslus laikrodžio kursas, dėklą galite uždaryti naudodami banko gumą. Baigę galite klijuoti.