» Electronics » Arduino »Oled relo sa Attiny85

Oled na relo sa Attiny85

Magandang hapon at muli ako kasama ang aking mga laruan. Ngayon ipinakita ko sa iyo ang mga tagubilin para sa paggawa ng maliit ngunit nakatutuwa na mga relo na may sensor ng temperatura ng kuwarto
Oled na relo sa Attiny85


Listahan ng kailangan namin:
- Digispark Attiny85
- Oled na display 128x64 I2C
- sensor sensor ng ds18b20
- Resistor 4.7 Kom 0.25 W
- ISP programmer o Arduino Digispark Attiny85 firmware board
- Plato ng plastik na may papel na clip o sheet ng manipis na plastik
- mga wire
- Dupont 2.54 mm "babaeng" konektor
- Mga pindutan ng 2 mga PC.
- Maliit na circuit board o maliit na trim
- paghihinang bakal
- Solder, rosin
- gunting
- kutsilyo ng clerical
- Mainit na baril na pandikit
- Mainit na pandikit

Hakbang 1 Pagpili ng Mga Bahagi.
Bilang pangunahing magsusupil gagamitin namin ang Digispark Attiny85. Mayroong ilang mga uri ng mga ito. Kailangan namin ng isang board na may isang micro USB connector. Ang natitira ay hindi magkasya sa kaso ng relo.

Upang ipakita, kailangan namin ng isang Oled 128x64 I2C display. Dumating sila sa iba't ibang kulay: puti, asul, asul na may dilaw. Iginuhit ko ang iyong pansin! Ang salitang "two-color" sa paglalarawan o pamagat ng screen na ito ay nangangahulugang isang guhit ng isang kulay sa tuktok ng screen at ang pangalawang kulay sa buong natitirang screen, at hindi ang kakayahang magpakita ng dalawang kulay sa screen na ito! Ang lahat ng mga screen ng ganitong uri ay nagpapakita lamang ng isang kulay, o sa tuktok ng isang guhit ng isang kulay sa ibaba - isa pa. Tulad ng, halimbawa, ang aking gagamitin. Ang bar sa itaas ay dilaw; ang natitirang screen ay asul. Maaari kang pumili ng anumang kulay na gusto mo.
Kailangan din namin ang integrated sensor ng sensor DS18B20. Hindi ito pinili ng pagkakataon. Una, ang DS18B20 ay nakikipag-ugnay sa microcontroller sa pamamagitan ng isang linya ng komunikasyon na single-wire gamit ang 1-Wire interface na protocol. Sa aming kaso, mahalaga ito, dahil ang mga konklusyon ng Attiny85 na walang sensor ay kakaunti. Pangalawa, ang sensor na ito ay isang digit, iyon ay, kukuha ng lahat ng mga pagsukat mismo at simpleng nagpapadala ng data ng temperatura nang hindi ginugol ang mga mapagkukunan ng computing ng Attiny85.

Tulad ng para sa natitira, sa palagay ko ay walang mga katanungan, kaya't lumipat tayo sa paggawa ng kaso.

Hakbang 2 Assembly ng pabahay.
Ang kaso ng relo ay gagawa ng manipis na plastik. Nagkaroon ako ng isang plastic tablet na may isang clip ng papel sa aking mga kamay. Mahirap na hawakan ang hugis nito, at sa parehong oras maaari itong i-cut na may ordinaryong gunting at kutsilyo sa opisina. Siya ay bumangon nang perpekto.Kung hindi ito nasa kamay, maaari kang bumili ng isang tablet sa isang tindahan ng supply ng opisina o hanapin ang tamang plastik upang mapalitan ang tablet. Gumagawa kami ng mga marka sa plastik ayon sa pamamaraan:


Gupitin ang lahat ng mga solidong linya. Dotted - bahagyang pinutol gamit ang isang clerical kutsilyo. Ang mga tuldok na linya ay mga linya ng tiklop. Tulad ng naintindihan mo, ito ang karaniwang layout ng kubo. Susunod, kailangan mong ibenta ang mga wires sa screen, mas mahusay na kumuha ng maraming kulay at isulat kung saan hahantong sa kung ano. I-glue ang screen sa mainit na matunaw na malagkit sa gitna, upang ang harapan ay lumabas mula sa likuran. Tulad ng nakikita mo, isinara namin ang mga pagtatalaga sa screen pin. Samakatuwid, kinakailangan na isulat ang mga ito. Bahagya kong ipinasa sa kutsilyo, at sa gayon pinutol ang mas mababang bahagi ng katawan. Walang mali sa na, lahat ay maaaring nakadikit. Ngunit mas mabuti na huwag ulitin ang aking mga pagkakamali.



Ang resulta ay dapat na ganito:


Sa kasong ito ay handa na. Maaari mo pa ring gupitin ang takip sa likod ng parehong plastik, ngunit ito ay opsyonal.

Hakbang 3 Kami ay nagbebenta.
Maliit ang aming kaso, at marami kaming dapat cram doon. Samakatuwid, kumuha kami ng isang piraso ng circuit board na hindi mas malaki kaysa sa 2.8 x 2.8 mm at panghinang sa dalawang pindutan, isang sensor ng ds18b20, isang risistor at maraming mga contact. Ayon sa sumusunod na pamamaraan:


Hindi kinakailangan sa mga wire ng panghinang nang direkta kay Attiny, dahil kinakailangan na idiskonekta ang lahat para sa firmware. Ang resulta ay dapat na tulad nito:



Ang mga pindutan ay kinakailangan upang itakda ang oras. Maaaring makuha ang lakas mula sa USB port ng computer. Pinagsasama ang plus at minus, ayon sa pagkakabanggit:


Kung nais mong gawin nang walang mga wire, kailangan mong makahanap ng isang maliit na baterya ng lithium-ion. Narito ang isa, halimbawa:


Ang baterya na ito ay umaangkop sa loob ng kaso. Kinakailangan lamang na magbigay ng mga konklusyon para sa singil ng baterya.

Hakbang 4 Paghahanda ng programmer.
Ang Digispark Attiny85 ay maaaring ma-program sa pamamagitan ng micro USB connector sa board, gamit ang Arduino IDE bilang programming environment. Ngunit sa parehong oras kailangan mong magsakripisyo ng 2 KB ng memorya para sa bootloader. Ang Attiny 85 ay may kabuuang 8 KB Flash. Ang aking sketch ay hindi akma sa bootloader, kaya kailangan kong mag-program sa pamamagitan ng ISP programmer. Wala akong ganitong programista, ngunit mayroong isang Arduino Uno board, na gagamitin ko bilang isang programmer. Kung mayroon kang isang ISB programmer, maaari mong laktawan ang item na ito. Buksan ang Arduino IDE at punan ang aming sket na tinatawag na ArduinoISP sa aming Arduino Uno. Mahahanap mo ito tulad ng File na ito - Mga Halimbawa - Arduino ISP. Ang sketch ay nagsisimula sa isang pahiwatig sa kung paano ikonekta ang Arduino sa programmable na magsusupil. Sa halip na Arduino Uno, maaaring magkaroon ng iba pang board Arduino.
// 10: pag-reset ng alipin
// 11: MOSI
// 12: MISO
// 13: SCK


Scheme ng koneksyon sa Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Hakbang 5 Paghahanda ng programming environment.
Upang mai-edit ang firmware at punan ang sketch sa Attiny 85, kailangan mong maghanda hindi lamang ang programmer, kundi pati na rin ang programming environment mismo. Upang gawin ito, i-install ang Arduino IDE mula sa opisyal na website ng Arduino.cc, at i-install din ang addiny ng Attiny para sa mga microcontroller sa pamamagitan ng Boards Manager.

Ilunsad ang Arduino IDE, pagkatapos ng File - Mga Setting - sa Karagdagang Mga Boards Manager URL na patlang, i-paste ang link:

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


i-click ang OK (maaari kang magpasok ng maraming mga link na pinaghiwalay ng isang kuwit sa larangang ito). Susunod na Mga Tool - Board - Boards Manager sa patlang ng filter, ipasok ang Attiny at i-click ang "attiny ni David A. Mellis". I-click ang I-install at maghintay para matapos ang pag-download. Ngayon sa menu ng Mga tool, piliin ang:
Lupon - Attiny 25/45/85
Proseso - Attiny 85
Orasan - panloob 16
at piliin ang serial port kung saan konektado ang ISP programmer o Arduino bilang programmer.
Sinubukan ko ang maraming iba't ibang mga aklatan para sa pagtatrabaho sa screen. Sa aking opinyon ang pinaka-maginhawa at nagtatrabaho sa Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (mga pag-download: 477)


Kailangan ng isang sensor ng temperatura ang library ng OneWire.
onewire.rar [16.75 Kb] (mga pag-download: 263)


I-install ang dalawang mga aklatan. Maaari kang mag-install ng mga aklatan ng third-party nang direkta sa kapaligiran ng programming. Nang hindi ma-unpack ang nai-download na mga archive, sa Arduino IDE, piliin ang menu na Sketch - Connect Library. Sa pinakadulo tuktok ng listahan ng drop-down, piliin ang item na Magdagdag ng .Zip. Sa dialog na lilitaw, piliin ang library na nais mong idagdag. Buksan muli ang menu ng Sketch - Ikonekta ang Library. Sa pinakadulo ibaba ng listahan ng drop-down dapat mong makita ang isang bagong library. Ngayon ang aklatan ay maaaring magamit sa mga programa. Huwag kalimutan na i-reboot ang Arduino IDE pagkatapos ng lahat ng ito.Kung hindi ito makakatulong, ilabas lamang ang mga archive sa folder na "mga aklatan" na matatagpuan sa folder na naka-install ang Arduino IDE.

Hakbang 6 I-edit at punan ang sketch.
Gumagana ang sensor ng temperatura gamit ang One Wire protocol at may isang natatanging address para sa bawat aparato - isang 64-bit code. Ang mga mapagkukunan ng Attiny ay hindi sapat upang hanapin ang code na ito sa bawat oras. Samakatuwid, dapat mo munang ikonekta ang sensor sa anumang board ng Arduino, punan ang sketch na matatagpuan sa File - Mga Halimbawa - Dallas temperatura - menu ng OneWireSearch. Susunod, patakbuhin ang Mga tool - Monitor ng Port. Dapat makita ng Arduino ang aming sensor, isulat ang address at kasalukuyang pagbabasa ng temperatura. Kinokopya namin o isulat lamang ang address ng aming sensor. Buksan ang sketch Attiny85_Oled_SPI_Term_2, hanapin ang linya:

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


Isinulat namin ang address ng iyong sensor sa pagitan ng mga tirante, pinapalitan ang address ng aking sensor. Pagkatapos nito, ikonekta ang Attiny sa programista o Arduino bilang isang programmer (ito ay inilarawan sa Hakbang 4) at punan ang sketch. Ito ay nananatiling idiskonekta ang programista at ikonekta ang lahat ayon sa pamamaraan sa 3 mga hakbang. Ang pagpupulong ay lumiliko tulad nito:


Maliit ang screen, imposibleng maglagay ng parehong oras at temperatura upang makita ito. Samakatuwid, binabago ng orasan ang oras sa isang pagbabasa ng temperatura tuwing 10 segundo.
attiny85_oled_spi_term_2.rar [2.33 Kb] (mga pag-download: 574)

Attiny 85
Kabuuang Mga Botante: 118
9.3
10
8.7

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
13 komento
Vseslav
Salamat, salamat!
Ang may-akda
Magandang gabi Hindi ko ginamit ang library mula sa Digispart. Mayroon silang isang napakalaking bootloader, kasama nito ang sketch ng orasan ay hindi magkasya. Ginamit ko ang library ng TinyOzOLED. Wala siyang Russian. Sa pangkalahatan, na may Attiny 85 mahirap, may napakakaunting memorya.
Vseslav
Maingat na naisip at tapos na, isang menor de edad na kapintasan - ang mga inskripsiyon sa Aglitsky. Maaari lang silang palitan ng Ruso, o mahirap para sa Digispark na gawin ito?
Ang may-akda
Magandang hapon Ang mga real-time na orasan ay kumukuha ng sapat na puwang, hindi sila magkasya sa kasong ito.
Hmm .. bakit hindi maglagay ng real-time na orasan sa halip na isang sensor ng temperatura?
Ang may-akda
Ang isa pang tip, ang isang LED ay konektado sa Digispar Attiny 85 P1, kung gagamitin mo ang pin na ito, isaalang-alang ang pagkakaroon nito. Tinawag ko ang diode na ito sa aking board, dahil sa palagay ko ito ay nakakasagabal lamang.
Ang may-akda
Magandang hapon Hindi na kailangang gumawa ng isang pull-up sa isang risistor, dahil ang suspensyon na binuo sa Attiny ay kasama sa sketsa. Alisin ang iyong suspender at subukang muli.
Maaari mo ring subukan ang isa pang sketsa mula sa aking iba pang mga relo, mayroon silang parehong magsusupil at screen, at ang pagsasaayos ay ginagawa sa isang pindutan:
https://tlm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Panauhin Roman
Magandang araw. Salamat sa ideya at trabaho. Ang alinman sa aking mga kamay ay hindi katulad nito, o hindi ko maintindihan. Ang mga pindutan ng setting ng oras ay hindi gumana nang normal. Sinubukan ko pareho ang iyong skech at minahan, sa aking lamang idinagdag ang pin mode ng mga pindutan ng input, at hinila sa pamamagitan ng 10k sa 5V. At doon at sa pindutan na iyon ay hindi maintindihan kung paano pindutin upang magbago. O nasusuklian ko o may mali sa mga pindutan, ang karaniwang orasan.
cool na screen. Ngunit gluttonous. Maraming kumakain ang RAM.
Ikaw ay isang master! pisilin sa isang tinku85 tulad.
Ang may-akda
Tama ka, gumawa ng isang typo, 2.8 x 2.8 cm
Quote: maxim0512
Hindi na magkasya sa kaso.
Sa pamamagitan ng lugar, maaari kang isang daang beses nang higit sa iyong iminungkahi.
Ang may-akda
Hindi na magkasya sa kaso. Mayroon lamang dalawang mga pindutan, isang risistor at isang sensor ng temperatura. Lahat ay angkop lamang.
... inayos ang circuit board na hindi mas malaki sa 2.8 x 2.8 mm
Hindi ito sapat. )))

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...