» Electronics » Arduino »Arduino relo na may sensor ng temperatura at walang RTS

Ang relo ng Arduino na may sensor ng temperatura at walang RTS

Ang relo ng Arduino na may sensor ng temperatura at walang RTS

Magandang hapon, ngayon magbabahagi ako ng mga tagubilin kung paano gumawa ng relo sa isang thermometer ng silid. Tumatakbo ang relo Arduino Ang UNO, WG12864B graphic screen ay ginagamit upang ipakita ang oras at temperatura. Bilang sensor ng temperatura - ds18b20. Hindi tulad ng karamihan sa iba pang mga relo, hindi ako gagamit ng RTS (Real Time Clock), ngunit subukang gawin nang wala ang karagdagang modyul na ito.

Para sa mga ito gawang bahay Ang mga sumusunod na sangkap ay kinakailangan:
- Arduino UNO (O anumang iba pang magkatugma na lupon ng Arduino)
- Graphic screen WG12864B
- sensor sensor ng ds18b20
- Resistor 4.7 Kom 0.25 W
- Resistor 100 ohm 0.25 W
- Bahagi ng baterya para sa 4 na baterya ng AA na "uri ng daliri"
- Angkop na kahon
- Maliit na file
- Nail polish (itim o kulay ng katawan)
- Isang maliit na manipis na plastik o karton
- de-koryenteng tape
- pagkonekta ng mga wire
- circuit board
- Mga pindutan
- paghihinang bakal
- Solder, rosin
- Double-panig na tape

Hakbang 1 Paghahanda ng enclosure.
Kaya, ang aming mga relo ay dapat na matatagpuan sa kung saan. Kailangan mong maghanap ng angkop na kahon. Ang pangunahing bagay ay ang WG12864B screen, Arduino at isang maliit na circuit board para sa mga pindutan magkasya sa loob nito. Ang pinakamaliit na laki ng kahon ay 7 x 7 x 10 cm. Kung gumagamit ka ng isang maliit na board ng Arduino, maaari mo itong isama sa isang kahon at isang mas maliit, ngunit ilalarawan ko ang proseso gamit ang Arduino UNO bilang isang halimbawa. Ang materyal na kung saan ang kahon ay ginawa ay mas mabuti na plastik, kung, tulad ng minahan, ito ay bakal, ito ay nagkakahalaga ng pag-aalaga sa pagkakabukod upang walang "lumibot" sa loob. Mas kanais-nais ang plastik dahil mas madali itong i-cut. Sa pamamagitan ng isang kahon, siya ang kaso ng aming mga relo, nagpasya. Ngayon kinakailangan upang i-cut ang isang window sa ilalim ng screen na may sukat na 6.5x4 cm. Kung ang kahon ay bakal, napakahirap gawin itong maingat. Hindi mahalaga kung paano mo subukan, magkakaroon ng chipped pintura at pagkamagiting malapit sa hiwa. Samakatuwid, una nating pinutol ito, para dito maaari mong gamitin ang "gilingan", isang drill na may isang nozzle para sa pagputol o isang paggiling ng pamutol, sa pangkalahatan, sa iyong napili, sa kung ano ang nasa kamay. Pagkatapos nito, nililinis namin ang mga gilid na may isang file. Pinapinturahan namin ang lahat ng pinalamig na pintura na may nail polish, angkop na kulay. Ang resulta ay dapat na sumusunod:


Hakbang 2 Ihanda ang graphic screen.
Sa koneksyon ng screen, sa unang sulyap, maraming mga problema at kahirapan ang lumabas. Ngunit kung una kang makitungo sa kanilang mga uri, magiging mas madali at mas mauunawaan. Maraming mga pagkakaiba-iba at uri ng mga screen sa ks0107 / ks0108 controller.Ang lahat ng mga screen ay karaniwang nahahati sa 4 na uri:
Pagpipilian A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Pagpipilian B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Ipinapakita ang AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864
Pagpipilian C: Nagpapakita si Shenzhen Jinghua Co Ltd. Jm12864
Pagpipilian D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Hindi kumpleto ang listahan, marami sa kanila. Ang pinaka-karaniwan at, sa aking opinyon, maginhawang WG12864B3 V2.0. Ang display ay maaaring konektado sa Arduino sa pamamagitan ng isang serye o kahanay na port. Kapag ginamit sa Arduino UNO, mas mahusay na pumili ng isang serye na koneksyon sa port - pagkatapos ay kailangan lamang namin ng 3 mga output ng microcontroller, sa halip na isang minimum na 13 mga linya kapag nakakonekta sa pamamagitan ng isang kahanay na port. Ang lahat ay konektado medyo simple. Mayroong higit pang nuance, ang dalawang uri ng mga display ay matatagpuan sa pagbebenta, na may built-in na potensyomiter (para sa pag-aayos ng kaibahan) at wala ito. Napili ko, at ipinapayo ko sa iyo na gawin ang parehong sa built-in.


Binabawasan nito ang bilang ng mga bahagi at oras ng paghihinang. Ito rin ay nagkakahalaga ng paglalagay ng isang kasalukuyang naglilimita sa risistor ng 100 Ohms para sa backlight. Sa pamamagitan ng pagkonekta ng 5 volts nang direkta, mayroong panganib ng pagkasunog ng backlight.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - sa pamamagitan ng risistor - + 5V
20 (BLK) - GND

Ang pinaka-maginhawang bagay ay upang mangolekta ng lahat sa likod ng screen at output ng 5 wire mula dito upang kumonekta sa Arduino UNO. Ang resulta ay dapat na tulad nito:


Para sa mga taong pumili pa ng isang magkakatulad na koneksyon, magbibigay ako ng isang talahanayan ng koneksyon.


At ang layout para sa mga pagpipilian sa mga screen ng B:


Hakbang 3 Ikonekta ang sensor ng temperatura.
Tulad ng sinabi ko, gagamitin namin ang sensor ng DS18B20 integrated upang masukat ang temperatura. Pinili ko ito para sa mataas na katumpakan ng pagsukat, ang error ay hindi hihigit sa 0.5 ° C. Ang sensor ay na-calibrate sa oras ng paggawa; walang karagdagang mga setting ay kinakailangan. Saklaw ng pagsukat ng temperatura -55 ... + 125 ° C. Mayroong dalawang mga mode ng pagpapatakbo: na may isang panlabas na mapagkukunan ng kapangyarihan at "galit na galit na kapangyarihan". Kapag nagpapatakbo sa mode na panlabas na kapangyarihan, ang koneksyon ay ang mga sumusunod:


Kapag gumagamit ng "galit na galit na kapangyarihan" ang sensor ay tumatanggap ng kapangyarihan mula sa linya ng komunikasyon. Sa mode na ito, ang dalawang mga wire ay sapat na upang ikonekta ang ds18b20 sa microcontroller. Ang panloob na kapasitor ng sensor ay sisingilin dahil sa enerhiya sa linya ng komunikasyon sa isang mababang antas sa bus. Ang mode na "nutrisyon ng parasitiko" ay may maraming mga tampok at samakatuwid hindi ko inirerekumenda ang paggamit nito. Ngunit kung magpasya ka ring gamitin ito, narito ang diagram:


O maaari kang gumamit ng isang pinahusay na diagram ng mga kable kapag gumagamit ng "galit na galit na kapangyarihan":


Maraming mga sensor ay maaaring isama sa isang linya ng komunikasyon. Para sa aming mga relo ang isa ay sapat na. Ikinonekta namin ang kawad mula sa "DQ" ds18b20 pin sa "pin 5" Arduino UNO.

Hakbang 4 Paghahanda ng isang board na may mga pindutan.
Upang itakda ang oras at petsa sa relo, gagamitin namin ang tatlong mga pindutan. Para sa kaginhawahan, ibebenta ang tatlong mga pindutan sa circuit board at wire out.


Ikinonekta namin ang mga sumusunod: ang wire na karaniwang sa lahat ng tatlong mga pindutan ay konektado sa "GND" Arduino. Ang unang pindutan, nagsisilbi itong ipasok ang mode ng setting ng oras at lumipat sa oras at petsa, kumonekta sa "Pin 2". Ang pangalawa, ang pindutan para sa pagtaas ng halaga, ay ang "Pin 3", at ang pangatlo, ang pindutan para sa pagbawas ng halaga, ay ang "Pin 4".

Hakbang 5 Pinagsasama-sama ang lahat.
Upang maiwasan ang isang maikling circuit, i-insulate ang screen. Sa isang bilog ay nakabalot kami ng mga de-koryenteng tape, at sa likuran namin ay naka-fasten sa isang double-sided tape, gupitin ang laki, isang guhit na materyal na insulating. Ang makapal na karton o manipis na plastik ay angkop. Gumamit ako ng plastic mula sa isang tablet tablet. Ito ay ang mga sumusunod:


Sa harap ng screen sa tabi ng gilid ay nakadikit kami ng isang double-sided tape sa isang batayan ng bula, mas mabuti na itim.


Ikinonekta namin ang screen sa Arduino:


Dagdag namin kumonekta mula sa kompartimento ng baterya sa "VIN" Arduino, minus sa "GND". Inilalagay namin ito sa likuran ng Arduino. Bago i-install sa kaso, huwag kalimutang ikonekta ang sensor ng temperatura at ang board na may mga pindutan.


Hakbang 6 Maghanda at punan ang sketch.
Kailangan ng isang sensor ng temperatura ang library ng OneWire.
onewire.rar [16.75 Kb] (mga pag-download: 154)


Ang output sa screen ay sa pamamagitan ng U8glib library:
u8glib.rar [906.95 Kb] (mga pag-download: 156)


Upang mai-edit at punan ang sketch, i-install ang dalawang aklatang ito. Mayroong dalawang mga paraan upang gawin ito. I-unzip lamang ang mga archive na ito at ilagay ang mga hindi nai-file na file sa folder na "mga aklatan" na matatagpuan sa folder na naka-install ang Arduino IDE.O ang pangalawang pagpipilian ay ang pag-install nang direkta sa aklatan nang direkta sa programming environment. 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 "Idagdag .Zip Library". Sa dialog na lilitaw, piliin ang library na nais mong idagdag. Buksan muli ang menu ng Sketch - Ikonekta ang Library. Sa pinakadulo ibaba ng drop-down list 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.

Gumagana ang sensor ng temperatura ayon sa protocol ng One Wire at may isang natatanging address para sa bawat aparato - isang 64-bit code. Sa bawat oras, ang paghahanap para sa code na ito ay hindi praktikal. Samakatuwid, dapat mo munang ikonekta ang sensor sa 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 Arduino_WG12864B_Term, hanapin ang linya:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // address ng aking sensor 


Isinulat namin ang address ng iyong sensor sa pagitan ng mga tirante, pinapalitan ang address ng aking sensor.

Stock:

//u8g.setPrintPos (44, 64); u8g.print (sek); // I-print ang mga segundo upang suriin ang tama ng kurso


Nagpapakita ng mga segundo sa tabi ng "Data". Ito ay kinakailangan upang tumpak na itakda ang takbo ng oras.
Kung ang orasan ay nagmamadali o nahuli, dapat mong baguhin ang halaga sa linya:

kung (micros () - prevmicros> 494000) {// ang pagbabago sa isa pa para sa pagsasaayos ay 500,000


Nag-eksperimento ako na tinukoy ang numero kung saan ang oras ay napupunta nang tumpak. Kung ang iyong relo ay nagmamadali, dapat mong dagdagan ang bilang na ito; kung ako sa likod, bawasan mo ito. Upang matukoy ang kawastuhan ng kurso at kailangan ng mga segundo sa pagtatapos. Matapos ang tumpak na pag-calibrate ng numero, ang mga segundo ay maaaring magkomento at sa gayon ay tinanggal mula sa screen.

Punan ang sketch.
arduino_wg12864b_term.rar [3.64 Kb] (mga pag-download: 314)

7
9
5.3

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

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...