» Electronics » Arduino »Orasan ng istasyon ng orasan sa Arduino

Panoorin ang istasyon ng panahon sa Arduino

Panoorin ang istasyon ng panahon sa Arduino

Magandang hapon, patuloy akong ginagawa Arduino sa kanyang bakanteng oras, at sa oras na ito ay nagsulat siya ng mga tagubilin para sa paggawa ng isang maliit na istasyon ng panahon. Ito ay kumikilos bilang isang orasan na may isang petsa at magpakita ng mga temperatura sa loob at labas ng silid. Bilang pangunahing magsusupil, gagamitin namin ang Arduino UNO, ngunit gagawin ng isa pang board na may Atmega328p sa board. Para sa display ginagamit namin ang graphic screen WG12864B. Ikinonekta din namin ang dalawang sensor ng temperatura ng ds18b20. Isa sa loob ng bahay, inilalabas namin ang pangalawa sa labas. Magsimula tayo.

Sa proseso ng pagmamanupaktura gawang bahay kakailanganin namin:

- Arduino UNO (O anumang iba pang magkatugma na lupon ng Arduino)
- WG12864B graphic screen
- sensor sensor ng ds18b20, 2pcs
- Ang suplay ng kuryente 6 - 12 V
- Mga Resistor 4.7 Kom 0.25 W, 2 mga PC.
- Mga Resistor 100 ohms 0.25 W
- Bahagi ng baterya para sa 4 na AAA "pinky" na baterya
- Kahon mula sa kartutso ng SEGA console
- de-koryenteng tape
- pagkonekta ng mga wire
- circuit board
- Mga pindutan
- kutsilyo ng kagamitan
- paghihinang bakal
- Solder, rosin
- Double-panig na tape

Hakbang 1 Paghahanda ng WG12864B3.
Ang mga hindi pa nagtrabaho sa mga screen bago ay maaaring matakot ng isang malaking bilang ng mga pagbabago, na tila pareho, ng mga screen. May ipapaliwanag ako ng kaunti. Karamihan sa mga screen ng ganitong uri ay gumagana sa ks0107 / ks0108 chips. Ang lahat ng mga screen ay maaaring 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

Halos pareho ang hitsura nila. Ngunit mayroon silang iba't ibang mga pin ng koneksyon. Pinili ko, at inirerekumenda ko sa iyo, WG12864B3 V2.0, ngunit kung magkakaiba ang screen, o hindi mo ito nasa kamay, madali mong malaman ito gamit ang talahanayan:


Maikling katangian:


Maraming iba't ibang mga scheme ng koneksyon sa Internet, at tila gumagana ang lahat. Ang bagay ay hindi lamang magkakaibang mga screen, kundi pati na rin ang dalawang paraan upang ikonekta ang mga ito: serye at kahanay. Kapag gumagamit ng isang serye na koneksyon sa port, kailangan lang namin ng 3 mga output ng microcontroller. Sa pamamagitan ng isang paralelong minimum na 13. Ang pagpili sa kasong ito ay malinaw, ang Arduino ay may ilang mga konklusyon. Para sa magkatulad na koneksyon, ang diagram ng koneksyon ay ang mga sumusunod:


Para sa isang serye na koneksyon, na gagamitin namin, ang pamamaraan ay ang mga sumusunod:

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 isang 100 Ohm risistor - + 5V
20 (BLK) - GND


Upang ayusin ang kaibahan, ang isang potensyomiter ay dapat na nasa screen. May mga screen nang wala ito, ngunit ngayon ay isang pambihira:


Kinakailangan ang isang 100 ohm risistor upang ang isang boltahe ng 5 volts ay hindi sinasadyang sunugin ang mga diode ng backlight.


Hakbang 2 Ginagawa ang kaso.
Para sa kaso, kunin ang kahon mula sa prefix ng cartridge na Sega. Kung hindi mo nakita ang kahon na ito sa kamay, maaari kang gumamit ng isa pang kaso. Ang pangunahing bagay ay ang screen at ang Arduino ay angkop dito.


Gupitin ang transparent na pelikula sa tuktok ng kahon upang walang mga piraso na natitira:


Pagkatapos, gamit ang isang clerical kutsilyo, gupitin ang laki ng window na 37x69 para sa screen.


Sa reverse side, sa gilid ng cut, nag-glue kami ng isang double-sided tape, mas mabuti na itim:


Alisin ang proteksiyong papel mula sa malagkit na tape, at idikit ang aming screen dito:


Mula sa labas dapat magmukhang ganito:


Sa ibaba ng screen, din sa double-sided tape, i-fasten namin ang Arduino, gumagawa ng paunang mga cutout para sa USB port at power socket:


Ang mga cutout para sa mga Arduino sockets ay dapat gawin sa magkabilang panig ng kahon upang malaya itong sarado:


Hakbang 3 Sensor ng temperatura.
Gagamitin namin ang mga digital sensor ng sensor DS18B20. Gamit ang mga ito nakakakuha kami ng mahusay na pagsukat ng kawastuhan, ang pagkakamali ay hindi hihigit sa 0.5 ° C, sa isang malawak na saklaw ng temperatura -55 ... + 125 ° C. Bilang karagdagan, ang digital sensor ay gumaganap ng lahat ng mga kalkulasyon mismo, at ang Arduino ay tumatanggap lamang ng yari na pagbabasa. Kapag kumokonekta sa sensor na ito, huwag kalimutan ang tungkol sa pull-up resistor, 4.7 kΩ, sa pagitan ng mga contact ng DQ at VDD. Maraming mga pagpipilian sa koneksyon ay posible rin. Sa pamamagitan ng panlabas na kapangyarihan, sa aking opinyon ang pinakamahusay na pagpipilian, gagamitin namin ito:


Kung nais mo, maaari mong gamitin ang mode ng kapangyarihan ng parasitiko:


O isang pinahusay na pagpipilian sa pagkain ng parasitiko:


Sa anumang suplay ng kuryente, ang mga sensor ay konektado kahanay:


Ilalagay namin ang sensor ng pagsukat ng temperatura sa maliit na board kasama ang dalawang pindutan, na gagamitin namin upang itakda ang oras at petsa ng orasan:


Ang karaniwang wire mula sa parehong mga pindutan ay konektado sa GND, ang wire mula sa unang pindutan ay konektado sa A0, mula sa pangalawa hanggang A1.
Mag-fasten sa isang double-sided tape sa tabi ng Arduino:


Ang sensor, na kung saan ay dapat na mailagay sa labas ng silid, ay mas mahusay na pumili sa isang pabahay ng metal, alikabok at kahalumigmigan:


Kalkulahin ang kawad ng kinakailangang haba upang ang sensor ay maaaring mai-hang sa labas ng window, ang pangunahing bagay ay dapat na hindi hihigit sa 5 metro, kung kailangan mo ng mas haba, kakailanganin mong bawasan ang halaga ng pull-up resistor.

Ang kawad mula sa DQ data bus ng parehong mga sensor ay konektado sa pin 5 ng Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Hakbang 4 Hakbang.
Para sa lakas, maaari kang gumamit ng isang power supply na may boltahe na 6 hanggang 12 volts. Sa dulo ng wire flare wire, ang panghinang ang plug na angkop para sa socket ng power Arduino:


O maaari kang maglagay ng isang kompartimento ng baterya para sa apat na "AAA", "pinky" na baterya sa kaso. At ikonekta ang positibong wire mula sa kompartimento sa Vin Arduino, at ang minus sa GND.

Hakbang 5 Paghahanda ng programming environment.
Una kailangan mong mag-download at mai-install ang Arduino IDE kasama opisyal na site

At idagdag din sa dalawang aklatan na kinakailangan para sa sketch. OneWire - kinakailangan para sa komunikasyon sa mga sensor ng ds18b20:
onewire.rar [16.75 Kb] (mga pag-download: 34)


U8glib - ginamit upang ipakita ang impormasyon sa screen:
u8glib.rar [906.95 Kb] (mga pag-download: 46)


I-download ang library. Pagkatapos ay i-unpack namin ang mga archive, at ilipat ang mga nilalaman ng mga archive sa folder na "mga aklatan" na matatagpuan sa folder na naka-install ang Arduino IDE. Maaari ka ring magdagdag ng mga aklatan sa pamamagitan ng Arduino IDE. Upang gawin ito, nang walang pag-unpack ng mga archive, patakbuhin ang Arduino IDE, piliin ang Sketch - Ikonekta ang Library mula sa menu Sketch. Sa pinakadulo tuktok ng listahan ng drop-down, piliin ang item na "Idagdag .Zip library". Ipinapahiwatig namin ang lokasyon ng nai-download na mga archive. Matapos ang lahat ng mga hakbang, kailangan mong i-restart ang Arduino IDE.

Hakbang 6 Pag-edit ng sketch.
Ang mga sensor sa temperatura ay nagpapatakbo gamit ang One Wire protocol at may isang natatanging address para sa bawat aparato - isang 64-bit code. Ang pagdaragdag ng mga utos sa paghahanap ng sensor sa sketch ay hindi ipinapayong. Hindi na kailangang mag-load ng mga sensor ng hiccup ng Arduino sa bawat oras.Samakatuwid, una, pinagsama ang lahat, punan ang sketch sa Arduino, na matatagpuan sa menu ng File - Mga Halimbawa - Dallas temperatura - OneWireSearch. Pagkatapos patakbuhin ang Mga tool - Monitor ng Port. Dapat mahanap ng Arduino ang aming mga sensor, isulat ang mga address at pagbabasa ng temperatura. Ang mga address na ito ay kailangang isulat o kinopya lamang sa kung saan. Buksan ngayon ang sketch Ard_Tic_Tak_WG12864B_2_x_Term_Serial, at hanapin ang mga linya:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // panloob na address
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // address ng panlabas na sensor


Pinalitan namin ang mga address na naaayon sa lokasyon ng mga sensor sa aming mga address.
Hindi ginagamit ng aming mga relo ang RTC module (real-time na orasan), kaya kailangan mong ayusin ang orasan. Para sa kaginhawahan, hindi makuha ang linya (mga segundo ay lilitaw sa screen):

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


Itakda ang tamang oras sa pamamagitan ng monitor ng port. Upang gawin ito, buksan ang monitor ng port, maghintay para matapos ang unang mga sukat ng temperatura, at ipasok ang kasalukuyang petsa at oras sa format na "araw, buwan, taon, oras, minuto, segundo." Nang walang mga puwang, hatiin ang mga numero sa mga kuwit o tagal.

Kung ang oras ay nagmamadali, baguhin ang halaga sa isang mas malaki, inirerekumenda ko ang pag-eksperimento sa mga pagtaas ng 100 mga yunit. Kung nahuli, bawasan ang halaga sa linya:

kung (micros () - prevmicros & gt; 494000) {// pagbabago sa iba pa para sa pagsasaayos ay 500,000


Malinaw na matukoy ang numero kung saan ang orasan ay napupunta nang tumpak. 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.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3.2 Kb] (mga pag-download: 90)

Pag-andar o Kagandahan?
Kabuuang Mga Botante: 19
8
8.3
7.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
3 komentaryo
Ang may-akda
Sa kasamaang palad, hindi ko alam ang mga analog ng pagpapakita ng mas mura.
At ang mas maraming badyet posible upang palitan ang display na ito, tumingin sila mula sa 500 rubles.?
Para sa mga denyushki maaari kang bumili ng isang yari na, talagang istasyon ng panahon, na may isang indikasyon ng hindi lamang temperatura, kundi pati na rin ang presyon at kahalumigmigan, at may isang indikasyon ng direksyon ng pagbabago ng mga sinusukat na halaga! ngiti
Magandang gabi At ang mas maraming badyet posible upang palitan ang display na ito, tumingin sila mula sa 500 rubles.?
Salamat!

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...