Animated na orasan sa pic16f628a. Orasan - alarm clock sa microcontroller PIC16F628A

Papayagan ka ng device na ito na magbilang ng oras, sukatin ang temperatura, gumamit ng stopwatch. Bukod pa rito, pinapanatili ng device na ito ang mga simpleng istatistika ng temperatura - minimum / maximum, ngunit kung hindi man ay kaunti lang ang pagkakaiba nito sa maraming katulad na device. Para sa indikasyon, ginagamit ang mga indicator ng LED na 7-segment na may decimal point, berdeng glow. Ang indikasyon ay dynamic.

Ang aparato ay may mga sumusunod na function:

  • Indikasyon ng kasalukuyang oras sa HH.MM na format sa loob ng 3 segundo, pagkatapos ay lumipat ang mga pagbabasa sa temperatura, ipinapakita na may katumpakan na 0.1 degrees. Ang pagwawasto ng orasan ay posible lamang sa display mode na ito.
  • Indikasyon ng napakababang temperatura para sa kasalukuyang araw, ang indicator ay nagpapakita ng maliit na L sa unang pamilyar at pagkatapos ay ang temperatura.
  • Indikasyon ng pinakamataas na mataas na temperatura para sa kasalukuyang araw, ang indicator ay nagpapakita ng maliit na h sa unang pamilyar.
  • Ang average na temperatura para sa kasalukuyang araw, ang indicator ay nagpapakita ng isang maliit na c.
  • Indikasyon ng napakababang temperatura para sa buong kasaysayan ng thermometer, sa unang pamilyar ay isang malaking titik L.
  • Indikasyon ng napakataas na temperatura para sa buong kasaysayan ng operasyon, sa unang pamilyar na isang malaking H.
  • Ang average na temperatura para sa buong kasaysayan, sa unang pamilyar ay isang malaking C.
  • Indikasyon ng oras sa MM.SS na format (ibig sabihin, minuto at segundo). Sa mode na ito, hindi posible ang pagwawasto.
  • Indikasyon ng bilang ng mga araw na lumipas mula noong naka-on ang device.
  • Stopwatch - pagkakaroon ng ilang limitasyon sa indikasyon (M.SS.D - MM.SS - H.MM.S - HH.MM). Ang limitasyon sa bilang ng stopwatch ay 100 oras. Pagkatapos ay huminto ang stopwatch at makikitang BUSY ang display.
  • Ang mga rekord ng temperatura (hindi araw-araw, ngunit kabuuan para sa buong kasaysayan) ay naka-imbak sa hindi pabagu-bagong memorya ng EEPROM
  • Upang sukatin ang temperatura, ginagamit ang DS18B20 sensor, ang sensor na ito ay malayo, na naka-install "sa labas ng bintana" upang sukatin ang temperatura ng kalye. Ang natitirang mga pag-andar ng device ay puro sa software. Ang output ng data sa indicator ay isinasagawa nang sunud-sunod sa pamamagitan ng 2 wires DATA at SYNCHRONIZATION. Matapos ang lahat ng 8 bits ay sunud-sunod na ibinaba sa shift register K1533IR24, ang isa sa mga transistor ay bubukas at iilaw ang nais na pamilyar. Dagdag pa, ang lahat ng pamilyar ay naka-off at ang isang bagong halaga para sa susunod na digit ay na-load sa rehistro at pagkatapos nito ay bubukas ang susunod na transistor, sa gayon ay nag-aapoy sa susunod na pamilyar. Nangyayari ito nang napakabilis, kaya nakikita na ang buong tagapagpahiwatig ay naiilawan, lahat ng pamilyar nito.

    2 button lang ang ginagamit para kontrolin ang device na ito. Ang Button S1 ay sunud-sunod na inililipat ang lahat ng mga mode ng display. At ang S2 button ay ginagamit para i-on ang clock correction mode o para simulan / ihinto ang stopwatch. Sa mode ng pagwawasto ng orasan, unang kumikislap ang mga digit ng oras, binabago ng pindutan ng S2 ang kanilang halaga sa 1, kung pinindot mo muli ang S1, ang mga digit ng minuto ay magkislap, ang pindutan ng S2 ay makakaapekto na sa kanila. Ang pagwawasto ng orasan ay posible lamang sa mode ng pagpapakita ng orasan/temperatura. Sa ibang mga mode (maliban sa stopwatch), walang ginagawa ang S1 button. Sa stopwatch mode, sinisimulan ng S1 button ang pagbilang, at ang pagpindot nito muli ay hihinto ito. Ire-reset ang stopwatch sa 0 sa pamamagitan ng pagpindot sa S2 button. Kung na-reset na ang stopwatch, ang pagpindot sa S2 ay ililipat ang device sa susunod na mode. Bilang karagdagan, kapag ang mga pindutan ay hindi pinindot sa loob ng 10 segundo, ang mga tagapagpahiwatig ay lumipat sa isang "muted" na mode (ang mode na ito ay naging medyo malamya, ang pagbaba sa liwanag ay halos hindi kapansin-pansin) upang mabawasan ang pagkonsumo ng kuryente at pag-init. ng stabilizer ng 7805. Ngunit sa sandaling pinindot ang anumang pindutan, anuman ang kasalukuyang mode ng pagpapakita - ang mga tagapagpahiwatig ay babalik sa buong liwanag muli at ang 10-segundong cycle ay mauulit.

    Ilang mga halimbawa ng indikasyon:
    - Temperatura.

    — Oras (HH.MM — dividing dot flashes).

    — Ang pinakamataas na temperatura para sa kasalukuyang araw.

    — Pinakamababang temperatura para sa kasalukuyang araw.

    - Ang pinakamataas na temperatura sa buong kasaysayan ng operasyon

    — Ang pinakamababang temperatura para sa buong kasaysayan ng operasyon.

    - Bilang ng mga araw na nagtrabaho.

    - Stopwatch.

    — minuto-segundo (MM.SS — hindi kumukurap ang naghihiwalay na tuldok).

    Maraming event ng device ang may naririnig na signal.

  • I-on / i-off / i-reset ang stopwatch - 1 maikli.
  • Ang temperatura ay bumaba sa ibaba ng zero, at mas maaga sa araw na ito ay hindi mas mababa sa zero (at iba pa, na may karagdagang pagbaba) - 1 maikli.
  • Ang temperatura ay tumaas sa itaas 30 at hindi sa itaas ng 30 bago (at iba pa na may karagdagang pagtaas) - 2 maikli.
  • Isang bagong record na minimum o maximum na temperatura ang nakuha - 3 maikli.
  • Stopwatch overflow - 1 mahaba at 2 maikli.
  • Pag-on sa device - 1 maikli.

    Ang aparato ay binuo sa isang naka-print na circuit board at makikita sa isang angkop na plastic case. Ang mga control button ay ipinapakita sa front panel, at ang mga butas na may diameter na 1.2 mm ay drilled sa lugar ng sound emitter. May bintana na para sa indicator sa kaso na bumungad sa akin. Ang sensor ay naka-mount sa isang plastic tube sa layo na mga 30 cm mula sa bintana, isang kahon na may mga butas ay ginawa sa paligid ng sensor upang mabawasan ang pag-init ng sensor sa pamamagitan ng direktang liwanag ng araw. Upang paganahin ang aparato mula sa mains, isang panlabas na supply ng kuryente ang ginagamit - isang adaptor na may output boltahe na 9 volts, wala itong stabilizer. Tanging isang transpormer, isang diode bridge at isang 470uF capacitor. Siyempre, mas mainam na gumamit ng backup na power supply para paganahin ang device na ito para hindi mag-reset ang orasan kapag nabigo ang mains voltage. Ang 7805 stabilizer chip ay dapat na nilagyan ng maliit na heat sink at tiyakin ang bentilasyon nito (maraming butas sa kaso). Ang microcontroller ay maaaring gamitin sa ganap na anumang bersyon ng temperatura.

    DOWNLOAD - I-archive ang mga file(56 kb)
    naglalaman ng isang proyekto para sa Proteus 7.5 SP3, isang handa na microcontroller firmware at isang diagram sa GIF na format. Sa firmware, ang mga temperatura ng rekord ay agad na ipinasok sa EEPROM: ang minimum ay +20, at ang maximum ay +30 degrees, ang mga halagang ito ay madaling iwasto mismo sa window ng programmer control program, dapat silang ginawang katumbas ng kasalukuyang temperatura na +100 upang mapanatili ng thermometer ang mga tamang istatistika. Yung. kung kailangan mong magpasok ng isang panimulang temperatura na katumbas ng 10 degrees, pagkatapos ay sa katunayan kailangan mong ipasok ang 110. Sa hexadecimal form, ito ay magiging 0x6E.

  • Sa MK. Ang puso nito ay ang PIC16F628A microcontroller. Gumagamit ang thermometer circuit ng 4-digit o 2 + 2 LED indicator na may karaniwang anode. Ang sensor ng temperatura ay nasa uri ng DS18B20, at sa aking kaso ang mga pagbabasa ng sensor ay ipinapakita na may katumpakan na 0.5*C. Ang thermometer ay may mga limitasyon sa pagsukat ng temperatura mula -55 hanggang + 125 * C, na sapat para sa lahat ng okasyon. Upang paganahin ang thermometer, ginamit ang isang maginoo na pagsingil mula sa isang mobile phone sa isang power supply na may transistor 13001.

    Schematic diagram ng thermometer sa PIC16F628A microcontroller:

    Upang i-flash ang PIC16F628A, ginamit ko ang ProgCode program, i-install ito sa isang computer at i-assemble ang ProgCode programmer ayon sa kilalang scheme:

    Ang pagtatalaga ng mga pin ng ginamit na microcontroller at ang pinout ng ilang iba pang katulad na MK:

    Ang programa ng ProgCode at mga tagubilin na may mga larawan ng step-by-step na firmware ay nasa archive sa forum. Sa parehong lugar at lahat ng mga file na kinakailangan para sa scheme na ito. Sa programa, buksan at i-click ang pindutang "itala ang lahat." Sa aking ginawang aparato, tulad ng makikita mula sa mga litrato, 2 thermometer ang pinagsama-sama sa isang kaso, ang itaas na tagapagpahiwatig ay nagpapakita ng temperatura sa bahay, ang mas mababang isa. - sa kalye. Ito ay inilalagay kahit saan sa silid at nakakonekta sa sensor flexible wire sa screen. Materyal na ibinigay ng ansel73. Firmware edited: [)eNiS

    Orasan sa PIC16F628A at temperatura sensor DS18B20.

    4-segment na LED indicator.

    Pagbabago ng animated na display.

    Isang variant ng isang simpleng orasan sa sikat at abot-kayang PIC16F628A microcontroller. Sa katunayan, ang proyekto sa AVR ay nagsimula sa kanila.

    Paglalarawan ng orasan.


    1. Mga Pag-andar.

    – oras, format ng pagpapakita ng oras 24 na oras, oras: minuto.

    – pagwawasto ng katumpakan ng digital. Posible ang pang-araw-araw na pagwawasto ±25 segundo. Ang itinakdang halaga na 1 oras 0 minuto 30 segundo ay idadagdag/babawas mula sa kasalukuyang oras.

    - thermometer.

    - indikasyon. kahalili.

    - Nako-customize na animation ng pagbabago ng mga pagbabasa.

    – paggamit ng non-volatile memory ng microcontroller para i-save ang mga setting kapag naka-off ang power.

    – kung pinindot mo ang pindutan sa pangunahing modePLUS , pagkatapos ay ipapakita ang oras sa mga indicator, kung mag-click ka saMINUS - temperatura. Kapag ang mga pindutan ay inilabas, awtomatikong pagbabago ng mga pagbabasa ay magpapatuloy.

    2. Setting.

    2.1. Kapag naka-on ang power, nasa main mode ang orasan.

    2.2. Push buttonITAKDA papasok sa settings mode at pipili ng parameter na itatakda. Sa turn, magagamit para sa pag-install:

    - minuto;

    - orasan;

    – segundo (i-reset sa zero kapag pinindot mo ang mga pindutanPLUS oMINUS );

    – dami ng pagwawasto. Sa pinaka makabuluhang digit, ang simbolo na "kasama ";

    – oras ng indikasyon ng kasalukuyang oras. Sa mga high-order na digit, ang mga simbolo na "tc ". Setting range 0÷99 sec. Kung nakatakda sa 0, hindi ipapakita ang oras;

    - oras ng indikasyon ng temperatura. Sa mga high-order na digit, ang mga simbolo na "tt ". Setting range 0÷99 sec. Kung nakatakda sa 0, hindi ipapakita ang temperatura;

    - pagpili ng epekto ng animation. Sa mga high-order na digit, ang mga simbolo na "EF ". Kung nakatakda sa 0, ang pagbabago ng impormasyon ay isasagawa nang walang epekto, kung napili ang awtomatikong mode (simboloPERO ), magbabago ang mga epekto sa pagkakasunud-sunod. Kung napili ang moder , pagkatapos ay random na magbabago ang mga epekto.

    - pagpili ng bilis ng animation. Sa pinaka makabuluhang digit, ang simbolo na "P ". Ang hanay ng setting ay 0÷99. Ang isang unit ay tumutugma sa humigit-kumulang 2 ms, mas mataas ang halaga, mas mabagal ang animation.

    2.3. Ang parameter na itatakda ay kumikislap.

    2.4. Hinahawakan ang mga pindutanPLUS / MINUS mabilis na naitakda ang parameter.

    3. Mga Tala.

    Kinakailangang sukatin ang bilis ng animation at ang oras ng pagpapakita ng impormasyon. Kung ang isang mabagal na animation at isang maikling oras ng pagpapakita ay napili, pagkatapos ay maaaring lumabas na ang impormasyon ay walang oras upang ganap na i-update bago ang susunod na shift.

    Kapag ang pangunahing kapangyarihan ay naka-off (+12V) ang indikasyon ay naka-off, ang orasan ay patuloy na tumatakbo. Ang MC ay pinapagana mula sa isang backup na pinagmulan.

    Sa firmware archive para sa mga tagapagpahiwatig na may isang karaniwang katod at anode, isang proyekto sa Proteus at isang paglalarawan.

    Mga tanong, kagustuhan sa forum.

    11.03.2015

    Nagdagdag ng na-update na firmware para sa karaniwang tagapagpahiwatig ng cathode. Ang bagong firmware ay may mas maraming animation effect at maliliit na pagbabago sa algorithm. Detalyadong paglalarawan sa archive.


    Ang mga elektronikong orasan na ito ang pinakasimple. Sila ay natipon sa loob ng ilang oras. Ang batayan ng PIC16F628A microcontroller, bilang karagdagan dito, ang orasan ay naglalaman ng maraming simple at murang mga elemento, ang impormasyon ay ipinapakita sa isang 4-digit (oras) na tagapagpahiwatig ng LED. Ang circuit ay pinapagana mula sa mga mains, at mayroon ding backup na power supply. Ang konstruksiyon na ito ay maaaring irekomenda sa mga nagsisimula, espesyal na ibinigay ko ang source program ng mga detalyadong komento upang mas madaling maunawaan kung ano at paano ito gumagana dito.

    Ang scheme ay napaka-simple, simple at ang algorithm ng kanilang trabaho (tingnan ang mga komento sa pinagmulan). Ang mga pindutan na kn1 at kn2 ay ginagamit upang itama ang oras - oras at minuto, ayon sa pagkakabanggit. Ang orasan ay may 24 na oras na format ng pagpapakita. Sa 1st digit ng orasan, tapos na ang blanking ng isang hindi gaanong halaga. Ang katumpakan ng orasan ay ganap na nakasalalay sa dalas ng quartz resonator. Ngunit kahit na walang mga espesyal na seleksyon ng kuwarts at capacitors sa generator ng orasan, ang orasan ay napaka-tumpak.

    Ang orasan ay binuo sa 2 naka-print na circuit board, naka-dock isa hanggang isa sa isang anggulo ng 90 degrees. Ang buong indicator ay inilalagay sa isang board, at lahat ng iba pa sa isa. Nasira ang backup na baterya mula sa isang Chinese lighter na may LED flashlight. Inalis namin ang LED, at i-install ang lalagyan ng baterya sa board. Ang larawan ay nagpapakita na ang trimmed risistor lead ay konektado sa mga baterya - pagkatapos ay hawak nila ang buong istraktura. Siyempre, ang kapasidad ng naturang mga baterya ay maliit, ngunit kapag ang relo ay pinalakas ng mga mains, walang kasalukuyang natupok mula sa mga baterya. Pinapakain lamang nila ang circuit kapag walang kapangyarihan ng mains. Sa kasong ito, ang microcontroller lamang ang pinapagana, ang indicator ay hindi pinapagana ng mga baterya, kaya lumabas ito, at ang orasan ay patuloy na tumatakbo. Ang mga control button ay inililipat mula sa board patungo sa anumang maginhawang lugar sa case. Ang disenyo ng mga pindutan ay maaaring maging anuman. Para sa mains power, ginamit ang isang Chinese PSU adapter, kung saan idinagdag ang isang board na may 7805 microcircuit (5-volt stabilizer). Gawin lamang ang anumang power supply, na may output na boltahe na 5V at isang kasalukuyang 150mA.

    Ang programa ay isinulat sa isang paraan na maaari itong magamit para sa paunang pag-aaral ng PIC microcontroller, ang aksyon ng halos bawat utos ay nagkomento. Kung ninanais, madali kang magdagdag ng mga karagdagang function dito, tulad ng kalendaryo, timer, stopwatch, atbp.



    file:
    Ang sukat:
    Nilalaman:

    Ang mga orasan ng mesa at dingding na may mga thermometer ay ginawa sa mga kaso mula sa mga analog na orasan. Ang orasan at ang thermometer ay ginawa bilang hiwalay, independiyenteng mga aparato.

    Hindi ko ilalarawan ang thermometer, ito ay naka-post sa parehong site. Ang circuit, naka-print na circuit board at firmware ay naroroon, lahat ay hindi nagbabago.

    Ang sensor ng temperatura na DS18B20 ng desktop clock ay inilalagay sa labas ng bintana patungo sa kalye. Insulated wires 0.35mm, haba humigit-kumulang 10 metro

    Ang orasan ay binuo sa isang solong 7-segment na berdeng LED indicator. Ang sukat ng figure ay 14x25.4mm - malinaw na nakikita ito mula sa anumang sulok ng silid. Mangyaring tandaan na ang tagapagpahiwatig ay konektado nang walang pagsusubo ng mga resistor. Ito ay dahil sa ang katunayan na ang bawat segment ay binubuo ng dalawang LED na konektado sa serye at isang nominal na boltahe na 3.8 volts. Sa dynamic na indikasyon, ang mga alon ay hindi lalampas sa pinahihintulutan.

    Ang boltahe stabilizer ay matatagpuan sa plug - adapter. Ito ay binuo sa isang 3 watt transformer at isang high-frequency converter - ang LM2575T-5.0 stabilizer ayon sa karaniwang pamamaraan. Ang microcircuit na walang radiator, halos hindi uminit. Connector para sa power supply 3.5mm. Quartz 4 MHz.

    Transistors n-p-n anumang mababang kapangyarihan. Pindutan 6x6 H=14/10mm soldered sa gilid ng conductors . Ang haba ng button pusher ay pinili batay sa mga kinakailangan ng disenyo. Sa bawat oras na ang pindutan ay pinindot, isa ay idinagdag. Kapag gaganapin, ang iskor ay bumibilis sa isang makatwirang bilis.

    MLT resistors - 0.25. R3 - R6 1-3 kOhm.

    Mga Baterya: 4 na piraso mula sa GP-170 o katulad nito. Kapag ang boltahe ng mains ay naka-off, pinapakain lamang nila ang microcontroller.

    Ito ay kanais-nais na pumili ng mga diode na may pinakamaliit na pagbagsak ng boltahe sa direksyon ng pasulong.
    Ang mga board ay gawa sa one-sided foil fiberglass.
    HEX file, scheme, seal sa folder No. 1.

    Opsyon 2: sa isang board

    Dalawang board ang hindi magkasya sa kasong ito: isang orasan at isang thermometer. Hindi ko nais na bawasan ang laki ng tagapagpahiwatig ng orasan.

    Hindi ko gustong magpakita ng oras at temperatura gamit ang isang indicator sa isang desktop clock.
    Kinailangan kong kumuha ng isa pang mas maliit na indicator para sa thermometer at gumuhit ng bagong naka-print na circuit board. Samakatuwid, ang circuit at firmware para sa thermometer ay iba.

    HEX file at thermometer diagram sa folder No. 2. Naka-print na circuit board sa parehong lugar.
    Ang scheme ng orasan na walang anumang pagbabago ay kinuha mula sa unang seksyon.

    Sa ibaba maaari kang mag-download ng firmware at mga naka-print na circuit board sa HEX na format

    Listahan ng mga elemento ng radyo

    Pagtatalaga Uri Denominasyon Dami TandaanpuntosNotepad ko
    Pagpipilian 1
    MK PIC 8-bit

    PIC16F628A

    1 Sa notepad
    VR1 DC/DC switching converter

    LM2575

    1 5V Sa notepad
    VT1-VT4 bipolar transistor

    KT3102

    4 Sa notepad
    VD1, VD2, VD4 Diode

    D310

    3 Sa notepad
    VD3 Schottky diode

    1N5819

    1 Sa notepad
    VS1 Diode tulay

    DB157

    1 Sa notepad
    C1, C2 Kapasitor20 pF2 Sa notepad
    C3, C5 Kapasitor0.1uF2 Sa notepad
    C4 330uF 16V1 Sa notepad
    C6 electrolytic kapasitor100uF 35V1 Sa notepad
    R1, R2 Resistor

    10 kOhm

    2 Sa notepad
    R3-R6 Resistor

    1 kOhm

    4 Sa notepad
    R7, R10 Resistor

    100 ohm

    2 Sa notepad
    L1 Inductor330 uH1 Sa notepad
    Tr1 Transformer 1 Sa notepad
    F1 piyus100 mA1 Sa notepad
    Baterya4.8V1 Sa notepad
    HL1, HL2 Light-emitting diode 2 Sa notepad
    S1, S2 Pindutan 2 Sa notepad
    Z1 Kuwarts4 MHz1 Sa notepad
    TagapagpahiwatigFYS10012BG211 Sa notepad
    Opsyon 2
    MK PIC 8-bit

    PIC16F628A

    1 Sa notepad
    VT1-VT4 bipolar transistor

    KT3102

    1 Sa notepad
    C1, C2 Kapasitor20 pF2 Sa notepad
    C3 Kapasitor0.1uF1 Sa notepad
    R1 Resistor

    4.7 kOhm

    1 Sa notepad
    R2, R3, R5, R6 Resistor