DIY electronic watch diagram. DIY na relo na may LED display

Gamit ang dynamic na display. Walang mga reklamo tungkol sa pagpapatakbo ng relo: tumpak na paggalaw, maginhawang mga setting. Ngunit ang isang malaking kawalan ay ang mga LED indicator ay mahirap makita sa araw. Upang malutas ang problema, lumipat ako sa static na display at higit pa maliwanag na mga LED. Gaya ng lagi sa software Maraming salamat Soir. Sa pangkalahatan, dinadala ko sa iyong pansin ang isang malaking panlabas na orasan na may static na display ang mga function ng mga setting ay nananatiling pareho sa mga nakaraang orasan.

Mayroon silang dalawang display - ang pangunahing isa (sa labas sa kalye) at ang auxiliary isa sa mga indicator - sa loob ng bahay, sa katawan ng device. Nakakamit ang mataas na liwanag sa pamamagitan ng paggamit ng mga ultra-bright na LED na may operating current na 50mA at driver chips.

Scheme elektronikong relo panlabas na may maliwanag na LEDs

Upang i-flash ang controller firmware na may mga file at gamitin ang mga sumusunod na setting ng fuse:

Mga naka-print na circuit board ng orasan, control unit at panlabas na modyul, sa LAY na format, .


Mga tampok ng circuit ng orasan na ito:

- 24 na oras na format ng pagpapakita ng oras.
- Digital na pagwawasto ng katumpakan ng stroke.
- Built-in na kontrol ng pangunahing supply ng kuryente.
- Non-volatile microcontroller memory.
- May thermometer na sumusukat sa temperatura sa hanay na -55 - 125 degrees.
- Posibleng salit-salit na ipakita ang impormasyon tungkol sa oras at temperatura sa indicator.


Ang pagpindot sa button na SET_TIME ay gumagalaw sa indicator sa isang bilog mula sa pangunahing mode ng orasan (ipinapakita ang kasalukuyang oras). Sa lahat ng mga mode, ang pagpindot sa mga button na PLUS/MINUS ay nagsasagawa ng pinabilis na pag-install. Nagbabago ang mga setting pagkatapos ng 10 segundo mula sa huling pagbabago ang mga halaga ay isusulat sa non-volatile memory (EEPROM) at babasahin mula doon kapag i-restart nutrisyon.


Ang isa pang malaking plus ng iminungkahing opsyon ay ang liwanag ay nagbago, ngayon sa maaraw na panahon ang liwanag ay napakahusay. Ang bilang ng mga wire ay bumaba mula 14 hanggang 5. Ang haba ng wire hanggang sa pangunahing (panlabas) na display ay 20 metro. Nasiyahan ako sa pagganap ng elektronikong relo na ito ay naging ganap na gumaganang relo - parehong araw at gabi. Taos-puso, Soir-Alexandrovich.

Orasan mula sa LED backlight at isang tumitibok na minutong kamay Arduino microcontroller
Ang kakaibang relo na ito na may LED backlight at pulsating minute hand ay ginawa gamit ang TLC5940 PWM controller chip. Ang kanyang pangunahing gawain ay upang palawakin ang bilang ng mga contact na may PWM modulation. Ang isa pang tampok ng relo na ito ay na-convert nito ang isang analog voltmeter sa isang aparato na sumusukat ng mga minuto. Upang gawin ito, isang bagong sukat ay naka-print sa isang karaniwang printer at i-paste sa ibabaw ng luma. Dahil dito, hindi binibilang ang ika-5 minuto, kaya lang sa ikalimang minuto ay ipinapakita ng time counter ang arrow na tumuturo sa dulo ng scale (off scale). Ang pangunahing kontrol ay ipinatupad sa Arduino Uno microcontroller.

Upang matiyak na ang backlight ng orasan ay hindi masyadong kumikinang sa isang madilim na silid, isang circuit ang ipinatupad upang awtomatikong ayusin ang liwanag depende sa pag-iilaw (isang photoresistor ang ginamit).

Hakbang 1: Mga Kinakailangang Bahagi



Narito ang kakailanganin mo:

  • 5V DC analog voltmeter module;
  • Microcontroller Arduino UNO o isa pang angkop na Arduino;
  • Assembly Arduino board(proto board);
  • DS1307 Real Time Clock (RTC) module;
  • Module na may PWM controller TLC5940;
  • Petal LED backlights - 12 mga PC.;
  • Mga bahagi para sa pag-assemble ng circuit awtomatikong regulasyon ningning (LDR).

Gayundin, para sa produksyon ng ilang iba pang mga bahagi ng proyekto, ito ay kanais-nais na magkaroon ng access sa isang 3D printer at isang laser cutting machine. Ipinapalagay na mayroon kang ganitong access, kaya ang mga tagubilin ay magsasama ng mga guhit sa pagmamanupaktura sa naaangkop na mga yugto.

Hakbang 2: I-dial




Ang dial ay binubuo ng tatlong bahagi (mga layer) na gupitin sa isang laser cutting machine mula sa 3 mm MDF sheet, na ikinakabit kasama ng mga bolts. Ang isang plato na walang mga puwang (sa kanan sa ibaba sa larawan) ay inilalagay sa ilalim ng isa pang plato upang iposisyon ang mga LED (kaliwa sa ibaba). Pagkatapos, ang mga indibidwal na LED ay inilalagay sa naaangkop na mga puwang, at ang front panel(itaas sa larawan). Apat na butas ang binaril sa gilid ng dial, kung saan ang lahat ng tatlong bahagi ay pinagsama-sama.

  • Upang subukan ang pagganap ng mga LED sa yugtong ito, ginamit ang isang CR2032 coin cell na baterya;
  • Upang ma-secure ang mga LED, ginamit ang maliliit na piraso ng adhesive tape, na nakadikit sa likod ng mga LED;
  • Ang lahat ng LED legs ay pre-bent nang naaayon;
  • Ang mga butas sa kahabaan ng mga gilid ay muling na-drill, kung saan ang bolting ay isinasagawa. Ito ay naging mas maginhawa.

Ang teknikal na pagguhit ng mga bahagi ng dial ay makukuha sa:

Hakbang 3: Idisenyo ang circuit



Sa yugtong ito ito ay binuo electrical diagram. Iba't ibang aklat at gabay ang ginamit para sa layuning ito. Hindi namin tatalakayin nang malalim ang prosesong ito; ipinapakita ng dalawang file sa ibaba ang natapos na electrical circuit na ginamit sa proyektong ito.

Hakbang 4: Pagkonekta sa Arduino Circuit Board





  1. Ang unang hakbang ay i-unsolder ang lahat ng mga contact ng karayom ​​sa mga circuit board at section board;
  2. Dagdag pa, dahil sa ang katunayan na ang 5V power at GND ay ginagamit ng napakaraming board at mga aparatong paligid, para sa pagiging maaasahan, dalawang wire para sa 5V at GND ay ibinebenta sa circuit board;
  3. Susunod, isang TLC5940 PWM controller ang na-install sa tabi ng ginamit na mga contact;
  4. Pagkatapos ang TLC5940 controller ay konektado ayon sa diagram ng koneksyon;
  5. Upang magamit ang baterya, isang RTC module ang na-install sa gilid ng circuit board. Kung ihinang mo ito sa gitna ng board, ang mga marka ng pin ay hindi makikita;
  6. Ang RTC module ay konektado ayon sa diagram ng koneksyon;
  7. Isang automatic brightness control (LDR) circuit ang na-assemble, maaari mo itong tingnan sa link
  8. Ang mga wire para sa voltmeter ay konektado sa pamamagitan ng pagkonekta sa mga wire sa pin 6 at GND.
  9. Sa dulo, 13 mga wire para sa mga LED ang na-soldered (Sa pagsasagawa, ito ay naging mas mahusay na gawin ito bago magpatuloy sa hakbang 3).

Hakbang 5: Code

Ang code sa ibaba ay pinagsama-sama mula sa iba't ibang piraso ng mga bahagi ng orasan na matatagpuan sa Internet. Ito ay ganap na na-debug at ngayon ay ganap na gumagana, at ilang medyo detalyadong komento ang naidagdag. Ngunit bago i-load sa microcontroller, isaalang-alang ang mga sumusunod na punto:

  • dati Arduino firmware, kailangan mong alisin sa komento ang linyang nagtatakda ng oras:
    rtc.adjust(DateTime(__DATE__, __TIME__))
    Pagkatapos i-flash ang controller gamit ang linyang ito (nakatakda ang oras), kailangan mong magkomento muli at i-flash muli ang controller. Ito ay nagpapahintulot RTC module Gamitin ang baterya para matandaan ang oras kung mawawala ang pangunahing kuryente.
  • Sa tuwing gagamitin mo ang "Tlc.set()" kailangan mong gamitin ang "Tlc.update"

Hakbang 6: Panlabas na Singsing

Ang panlabas na singsing ng relo ay 3D na naka-print gamit ang isang Replicator Z18 printer. Nakakabit ito sa relo gamit ang mga turnilyo sa mukha ng relo. Nasa ibaba ang isang file na may 3D na modelo ng singsing para sa pagpi-print sa isang 3D printer.

Hakbang 7: Pagtitipon ng Orasan


Ang Arduino microcontroller kasama ang lahat ng iba pang electronics ay inilagay sa likod ng orasan gamit ang mga turnilyo at nuts bilang mga spacer. Pagkatapos ay ikinonekta ko ang lahat ng mga LED, analog voltmeter at LDR sa mga wire na dati nang na-solder sa circuit board. Ang lahat ng mga LED ay magkakaugnay sa pamamagitan ng isang binti at konektado sa VCC pin sa TLC5940 controller (isang piraso ng wire ay ibinebenta lamang sa isang bilog).

Habang ang lahat ng ito ay hindi masyadong mahusay na nakahiwalay mula sa mga short circuit, ngunit magpapatuloy ito sa mga susunod na bersyon.

Ipinakita ko sa iyong pansin electronic microcontroller na orasan. Ang circuit ng orasan ay napaka-simple, naglalaman ng isang minimum na bahagi, at maaaring ulitin sa pamamagitan ng pagsisimula ng mga amateur sa radyo.

Ang disenyo ay binuo sa isang microcontroller at isang DS1307 real-time na orasan. Ang isang apat na digit na pitong-segment na tagapagpahiwatig ay ginagamit bilang kasalukuyang tagapagpahiwatig ng oras. LED indicator(sobrang liwanag, kulay asul kumikinang, na mukhang maganda sa dilim, at, sa parehong oras, gumaganap ang orasan bilang isang ilaw sa gabi). Ang orasan ay kinokontrol ng dalawang mga pindutan. Salamat sa paggamit ng DS1307 real-time clock chip, ang algorithm ng programa ay naging medyo simple. Nakikipag-ugnayan ang microcontroller sa real-time na orasan sa pamamagitan ng I2C bus, at inayos ayon sa software.

Diagram ng orasan:

Sa kasamaang palad, mayroong isang error sa diagram:
— ang mga terminal ng MK ay kailangang konektado sa mga base ng transistor:
РВ0 hanggang Т4, РВ1 hanggang Т3, РВ2 hanggang Т2, РВ3 hanggang Т1
o baguhin ang koneksyon ng mga kolektor ng transistor sa mga digit ng tagapagpahiwatig:
T1 hanggang DP1…..T4 hanggang DP4

Mga bahagi na ginamit sa circuit ng orasan:

♦ ATTiny26 microcontroller:

♦ real time na orasan DS1307:

♦ 4-digit na seven-segment na LED indicator – FYQ-5641UB-21 na may karaniwang cathode (ultra-bright, asul):

♦ quartz 32.768 kHz, na may input capacitance na 12.5 pF (maaaring kunin mula sa motherboard computer), ang katumpakan ng orasan ay nakasalalay sa kuwarts na ito:

♦ lahat ng transistor ay mga istruktura ng NPN, maaari mong gamitin ang anuman (KT3102, KT315 at ang kanilang mga dayuhang analogue), ginamit ko ang BC547S
♦ uri ng microcircuit voltage stabilizer 7805
♦ lahat ng resistors na may lakas na 0.125 watts
mga polar capacitor sa operating boltahe hindi mas mababa sa supply boltahe
♦ backup power DS1307 – 3 volt lithium cell CR2032

Maaari kang gumamit ng anumang hindi kinakailangang charger para paganahin ang iyong relo. cellphone(sa kasong ito, kung ang output boltahe charger sa loob ng 5 volts ± 0.5 volts, bahagi ng circuit ay isang voltage stabilizer sa isang 7805 type microcircuit, maaaring hindi kasama)
Ang kasalukuyang pagkonsumo ng aparato ay 30 mA.
Baterya backup na kapangyarihan Hindi mo kailangang itakda ang DS1307 na orasan, ngunit pagkatapos, kung ang kapangyarihan ng mains ay mawawala, kasalukuyang panahon ay kailangang mai-install muli.
Ang naka-print na circuit board ng aparato ay hindi ipinapakita ang disenyo ay binuo sa isang pabahay mula sa may sira mekanikal na relo. Ang LED (na may dalas ng blinking na 1 Hz, mula sa SQW DS1307 pin) ay nagsisilbing paghiwalayin ang mga oras at minuto sa indicator.

Mga setting ng factory microcontroller: dalas ng orasan— 1 MHz, ang mga FUSE bit ay hindi kailangang hawakan.

Algoritmo ng pagpapatakbo ng orasan(sa Algorithm Builder):

1. Pagtatakda ng stack pointer
2. Pagse-set ng timer T0:
— dalas SK/8
- overflow interrupts (sa preset frequency na ito, ang interrupt ay tinatawag tuwing 2 milliseconds)
3. Pagsisimula ng mga port (pins PA0-6 at PB0-3 ay naka-configure bilang output, PA7 at PB6 bilang input)
4. Pagsisimula ng I2C bus (pins PB4 at PB5)
5. Sinusuri ang 7th bit (CH) ng DS1307 register zero
6. Paganahin ang global interrupt
7. Pagpasok ng isang loop at pagsuri kung ang isang pindutan ay pinindot

Kapag naka-on sa unang pagkakataon, o naka-on muli sa kawalan ng backup na kapangyarihan, ang DS307 ay napupunta sa paunang pag-install kasalukuyang panahon. Sa kasong ito: pindutan S1 - upang itakda ang oras, pindutan S2 - paglipat sa susunod na digit. Itakda ang oras– ang mga oras at minuto ay isinusulat sa DS1307 (mga segundo ay nakatakda sa zero), at ang SQW/OUT pin (7th pin) ay naka-configure upang makabuo hugis-parihaba na pulso na may dalas na 1 Hz.
Kapag pinindot mo ang pindutan ng S2 (S4 - sa programa), ang isang pandaigdigang pagkagambala ay hindi pinagana, ang programa ay napupunta sa subroutine sa pagwawasto ng oras. Sa kasong ito, gamit ang mga pindutan ng S1 at S2, sampu at mga yunit ng minuto ay nakatakda, pagkatapos, mula sa 0 segundo, ang pagpindot sa pindutan ng S2 ay nagtatala ng na-update na oras sa DS1307, niresolba ang pandaigdigang pagkagambala at bumalik sa pangunahing programa.

Nagpakita ang orasan mahusay na katumpakan pag-unlad, pagkawala ng oras bawat buwan - 3 segundo.
Upang mapabuti ang katumpakan, inirerekumenda na ikonekta ang kuwarts sa DS1307, tulad ng ipinahiwatig sa datasheet:

Ang programa ay nakasulat sa kapaligiran ng Algorithm Builder.
Gamit ang programa ng orasan bilang isang halimbawa, maaari mong gawing pamilyar ang iyong sarili sa algorithm para sa pakikipag-usap sa pagitan ng microcontroller at iba pang mga aparato sa pamamagitan ng I2C bus (bawat linya ay nagkomento nang detalyado sa algorithm).

Larawan naka-assemble na aparato at isang naka-print na circuit board sa .lay na format mula sa site reader na si Anatoly Pilguk, kung saan maraming salamat sa kanya!

Ang aparato ay gumagamit ng: Transistors - SMD BC847 at CHIP resistors

Mga kalakip sa artikulo:

(42.9 KiB, 3,038 hits)

(6.3 KiB, 4,058 hits)

(3.1 KiB, 2,500 hits)

(312.1 KiB, 5,833 hits)


Ang pangalawang bersyon ng programa ng orasan sa AB (para sa mga hindi ma-download ang itaas)

(11.4 KiB, 1,842 hits)

LED simpleng orasan maaaring gawin sa isang murang PIC16F628A controller. Siyempre, ang mga tindahan ay puno ng iba't ibang mga elektronikong relo, ngunit ang kanilang mga function ay maaaring kulang ng thermometer o alarm clock, o maaaring hindi sila kumikinang sa dilim. At sa pangkalahatan, kung minsan gusto mo lang maghinang ng isang bagay sa iyong sarili, sa halip na bumili ng mga yari. I-click upang palakihin ang diagram.

May kalendaryo ang mga inaalok na relo. Mayroon itong dalawang mga pagpipilian para sa pagpapakita ng petsa - ang buwan bilang isang numero o isang pantig, ang lahat ng ito ay na-configure pagkatapos ipasok ang petsa sa pamamagitan ng paglipat ng karagdagang gamit ang pindutan S1 habang ipinapakita kinakailangang parameter, thermometer. may mga firmware para sa iba't ibang mga sensor. Tingnan ang device sa loob ng case:


Alam ng lahat na ang mga quartz resonator ay hindi perpekto sa katumpakan, at sa loob ng ilang linggo ang error ay naipon. Upang labanan ang isyung ito, ang relo ay may rate correction, na itinakda ng mga parameter SH At SL. Higit pang mga detalye:

Ang SH=42 at SL=40 ay pasulong ng 5 minuto bawat araw;
Ang SH=46 at SL=40 ay paurong ng 3 minuto bawat araw;
Ang SH=40 at SL=40 ay pasulong ng 2 minuto bawat araw;
Ang SH=45 at SL=40 ay paurong ng 1 minuto bawat araw;
SH=44 at SL=С0 - ito ay pasulong ng 1 minuto bawat araw;
SH=45 at SL=00 - hindi pinagana ang pagwawasto na ito.

Sa ganitong paraan makakamit mo ang perpektong katumpakan. Bagaman kakailanganin mong ayusin ang pagwawasto nang maraming beses hanggang sa ito ay maitakda nang perpekto. At ngayon ang pagpapatakbo ng isang elektronikong orasan ay malinaw na ipinapakita:

temperatura 29 degrees Celsius

Bilang mga tagapagpahiwatig, maaari mong gamitin ang alinman sa mga LED dial assemblies, na ipinahiwatig sa mismong diagram, o palitan ang mga ito ng ordinaryong bilog na sobrang maliwanag na mga LED - kung gayon ang mga orasan na ito ay makikita mula sa malayo at maaaring i-hang kahit sa kalye.

Gaya ng ipinahihiwatig ng pangalan, ang pangunahing layunin ng device na ito- alamin ang kasalukuyang oras at petsa. Ngunit marami pa ito kapaki-pakinabang na mga function. Ang ideya ng paglikha nito ay lumitaw pagkatapos kong makita ang isang kalahating basag na relo na may medyo malaki (para sa isang pulso) katawan ng metal. Akala ko mailalagay ko doon gawang bahay na relo, ang mga posibilidad na limitado lamang sa iyong sariling imahinasyon at kasanayan. Ang resulta ay isang device na may mga sumusunod na function:

1. Orasan - kalendaryo:

    Pagbibilang at pagpapakita ng mga oras, minuto, segundo, araw ng linggo, petsa, buwan, taon.

    Availability ng awtomatikong pagsasaayos ng kasalukuyang oras, na ginagawa bawat oras ( maximum na mga halaga+/-9999 unit, 1 unit. = 3.90625 ms.)

    Pagkalkula ng araw ng linggo mula sa isang petsa (para sa kasalukuyang siglo)

    Awtomatikong paglipat para sa panahon ng tag-init at taglamig (maaaring patayin)

  • Ang mga taon ng paglukso ay isinasaalang-alang

2. Dalawang independiyenteng alarm clock (tunog ang isang melody kapag na-trigger)
3. Timer na may 1 segundong pagdaragdag. (Maximum na oras ng pagbibilang 99h 59m 59s)
4. Dalawang-channel na stopwatch na may resolution ng pagbibilang na 0.01 sec. ( maximum na oras nagbibilang ng 99h 59m 59s)
5. Stopwatch na may resolution ng pagbibilang na 1 segundo. (maximum na oras ng pagbibilang 99 araw)
6. Thermometer sa hanay mula -5°C. hanggang 55°C (limitado ng hanay ng temperatura normal na operasyon mga device) sa mga pagtaas ng 0.1°C.
7. Reader at emulator mga electronic key- mga tablet ng uri ng DS1990 gamit ang Dallas 1-Wire protocol (memorya para sa 50 piraso, na naglalaman na ng ilang unibersal na "all-terrain key") na may kakayahang tingnan ang key code byte byte.
8. Remote control kontrol sa IR rays (ang "Kumuha ng larawan" na utos lamang ang ipinatupad) para sa mga digital camera"Pentax", "Nikon", "Canon"
9. LED flashlight
10. 7 himig
11. Sound signal sa simula ng bawat oras (maaaring patayin)
12. Pagkumpirma ng tunog ng mga pagpindot sa pindutan (maaaring patayin)
13. Pagsubaybay sa boltahe ng baterya na may function ng pagkakalibrate
14. Pagsasaayos ng liwanag ng digital indicator

Marahil ang gayong pag-andar ay kalabisan, ngunit gusto ko ang mga unibersal na bagay, at kasama ang moral na kasiyahan na ang relo na ito ay gagawin gamit ang aking sariling mga kamay.

Schematic diagram ng orasan

Ang aparato ay binuo sa ATmega168PA-AU microcontroller. Ang orasan ay ticks ayon sa timer T2, na tumatakbo sa asynchronous mode mula sa isang clock quartz sa 32768 Hz. Ang microcontroller ay nasa sleep mode halos sa lahat ng oras (ang indicator ay naka-off), paggising ng isang beses sa isang segundo upang idagdag ito sa pinaka-segundo sa kasalukuyang oras at matutulog muli. Sa aktibong mode, ang MK ay na-clock mula sa panloob na RC oscillator sa 8 MHz, ngunit ang panloob na prescaler ay hinahati ito ng 2, bilang isang resulta, ang core ay na-clock sa 4 MHz. Para sa indikasyon, ginagamit ang apat na single-digit na LED digital seven-segment indicator na may karaniwang anode at decimal point. Mayroon ding 7 status LEDs, ang layunin nito ay ang mga sumusunod:
D1- Sign ng negatibong halaga (minus)
D2- Tanda ng tumatakbong stopwatch (flashing)
D3- Sign ng unang alarma na naka-on
D4- Sign ng ikalawang alarma na naka-on
D5- Tagapagpahiwatig ng feed tunog signal sa simula ng bawat oras
D6- Tanda ng tumatakbong timer (flashing)
D7- Lagda mababang boltahe mga baterya ng kuryente

R1-R8 - kasalukuyang naglilimita sa mga resistor ng mga segment ng mga digital na tagapagpahiwatig HG1-HG4 at LEDs D1-D7. R12,R13 – divider para sa pagsubaybay sa boltahe ng baterya. Dahil ang boltahe ng supply ng orasan ay 3V, at puting LED Ang D9 ay nangangailangan ng tungkol sa 3.4-3.8V sa rate ng kasalukuyang pagkonsumo, pagkatapos ay hindi ito kumikinang sa buong lakas (ngunit ito ay sapat na upang hindi matisod sa dilim) at samakatuwid ay konektado nang walang kasalukuyang-paglilimita ng risistor. Ang mga Elemento R14, Q1, R10 ay idinisenyo upang kontrolin ang infrared LED D8 (pagpapatupad remote control para sa mga digital camera). Ginagamit ang R19, ​​R20, R21 para sa pagpapares kapag nakikipag-usap sa mga device na may 1-Wire interface. Ang kontrol ay isinasagawa sa pamamagitan ng tatlong mga pindutan, na karaniwang tinatawag kong: MODE (mode), UP (pataas), DOWN (pababa). Ang una sa kanila ay idinisenyo din upang gisingin ang MK sa pamamagitan ng isang panlabas na pagkagambala (sa kasong ito ang indikasyon ay naka-on), kaya ito ay konektado nang hiwalay sa input ng PD3. Ang pagpindot sa natitirang mga pindutan ay tinutukoy gamit ang isang ADC at resistors R16, R18. Kung hindi pinindot ang mga button sa loob ng 16 na segundo, matutulog ang MK at mawawala ang indicator. Kapag nasa mode "Remote control para sa mga camera" ang pagitan na ito ay 32 segundo, at kapag ang flashlight ay naka-on - 1 minuto. Maaari ding manu-manong patulugin ang MK gamit ang mga control button. Kapag ang stopwatch ay tumatakbo na may count resolution na 0.01 sec. Hindi pumupunta sa sleep mode ang device.

PCB

Ang aparato ay binuo sa isang double-sided na naka-print na circuit board ng isang bilog na hugis sa laki ng panloob na diameter ng wristwatch case. Ngunit sa produksyon gumamit ako ng dalawang single-sided board na may kapal na 0.35 mm. Ang kapal na ito ay muling nakuha sa pamamagitan ng pagbabalat nito mula sa double-sided fiberglass laminate na may kapal na 1.5 mm. Pagkatapos ay pinagdikit ang mga tabla. Ang lahat ng ito ay ginawa dahil wala akong manipis na double-sided fiberglass, at ang bawat milimetro ng kapal na na-save sa limitadong panloob na espasyo ng relo ay napakahalaga, at hindi na kailangan ng alignment sa paggawa ng mga naka-print na conductor gamit ang LUT paraan. Pagguhit naka-print na circuit board at ang lokasyon ng mga bahagi ay nasa nakalakip na mga file. Sa isang gilid mayroong mga tagapagpahiwatig at kasalukuyang naglilimita sa mga resistor na R1-R8. Nasa likod ang lahat ng iba pang detalye. Mayroong dalawang butas para sa puti at infrared na mga LED.

Ang mga contact ng button at may hawak ng baterya ay gawa sa flexible spring sheet steel na may kapal na 0.2...0.3 mm. at tinned. Nasa ibaba ang mga larawan ng board mula sa magkabilang panig:

Disenyo, mga bahagi at ang kanilang posibleng kapalit

Ang ATmega168PA-AU microcontroller ay maaaring palitan ng ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Mga digital na tagapagpahiwatig- 4 na piraso KPSA02-105 super-bright red glow na may taas na digit na 5.08mm. Maaaring ibigay mula sa parehong serye na KPSA02-xxx o KCSA02-xxx. (hindi lamang mga berde - sila ay kumikinang nang mahina) Hindi ko alam ang iba pang mga analogue ng magkatulad na laki na may disenteng ningning. Sa HG1, HG3, ang koneksyon ng mga segment ng cathode ay naiiba sa HG2, HG4, dahil ito ay mas maginhawa para sa akin para sa mga kable ng naka-print na circuit board. Sa pagsasaalang-alang na ito, ang ibang character generator table ay ginagamit para sa kanila sa programa. Ginamit na resistors at capacitors SMD para sa ibabaw mounting ng karaniwang laki 0805 at 1206, LEDs D1-D7 ng karaniwang laki 0805. White at infrared LEDs na may diameter na 3 mm. Ang board ay may 13 through hole kung saan dapat i-install ang mga jumper. Bilang sensor ng temperatura Ginagamit ang DS18B20 na may 1-Wire interface. Ang LS1 ay isang regular na piezoelectric tweeter, na ipinasok sa takip. Sa isang contact ito ay konektado sa board gamit ang isang spring na naka-install dito, sa isa pang ito ay konektado sa katawan ng relo sa pamamagitan ng takip mismo. Quartz resonator mula sa isang wristwatch.

Programming, firmware, piyus

Para sa in-circuit programming, ang board ay mayroon lamang 6 na round contact spot (J1), dahil ang isang buong connector ay hindi magkasya sa taas. Ikinonekta ko ang mga ito sa programmer gamit ang isang contact device na ginawa mula sa isang PLD2x3 pin plug at mga spring na ibinebenta sa kanila, na pinindot ang mga ito gamit ang isang kamay sa mga spot. Nasa ibaba ang isang larawan ng device.

Ginamit ko ito dahil sa panahon ng proseso ng pag-debug kailangan kong i-reflash ang MK ng maraming beses. Kapag nag-flash ng isang beses na firmware, mas madaling maghinang ng mga manipis na wire na konektado sa programmer sa mga patch, at pagkatapos ay i-unsolder muli ang mga ito. Ito ay mas maginhawa upang i-flash ang MK nang walang baterya, ngunit upang ang kapangyarihan ay nagmula sa alinman panlabas na pinagmulan+3V, o mula sa isang programmer na may parehong supply boltahe. Ang programa ay nakasulat sa assembler sa VMLAB 3.15 na kapaligiran. Mga source code, firmware para sa FLASH at EEPROM sa application.

Ang FUSE bits ng DD1 microcontroller ay dapat na naka-program tulad ng sumusunod:
CKSEL3...0 = 0010 - clocking mula sa panloob na RC oscillator 8 MHz;
SUT1...0 =10 - Oras ng pagsisimula: 6 CK + 64 ms;
CKDIV8 = 1 - ang frequency divider ng 8 ay hindi pinagana;
CKOUT = 1 - Na-disable ang Output Clock sa CKOUT;
BODLEVEL2…0 = 111 - hindi pinagana ang kontrol ng boltahe ng supply;
EESAVE = 0 - binubura ang EEPROM kapag ipinagbabawal ang pagprograma ng kristal;
WDTON = 1 - Hindi laging on Watchdog Timer;
Ang natitirang mga FUSE bit ay pinakamahusay na hindi nagalaw. Ang FUSE bit ay naka-program kung nakatakda sa "0".

Ang pag-flash ng EEPROM na may dump na kasama sa archive ay kinakailangan.

Ang unang EEPROM cell ay naglalaman ng mga paunang parameter mga device. Inilalarawan ng talahanayan sa ibaba ang layunin ng ilan sa mga ito, na maaaring baguhin sa loob ng mga makatwirang limitasyon.

Cell address

Layunin

Parameter

Tandaan

Ang dami ng boltahe ng baterya kung saan nangyayari ang isang mababang antas ng signal

260 ($104) (2.6V)

koepisyent para sa pagwawasto ng halaga ng sinusukat na boltahe ng baterya

agwat ng oras para lumipat sa sleep mode

1 unit = 1 seg

agwat ng oras para lumipat sa sleep mode kapag naka-on ang flashlight

1 unit = 1 seg

agwat ng oras para sa paglipat sa sleep mode kapag nasa remote control mode para sa mga camera

1 unit = 1 seg

Ang mga pangunahing numero ng IButton ay naka-imbak dito

Maliit na paliwanag sa mga punto:

1 puntos. Ipinapahiwatig nito ang antas ng boltahe sa baterya kung saan sisindi ang LED, na nagpapahiwatig ng mababang halaga nito. Itinakda ko ito sa 2.6V (parameter - 260). Kung kailangan mo ng iba pa, halimbawa 2.4V, kailangan mong magsulat ng 240 ($00F0). Ang mababang byte ay nakaimbak sa cell sa address na $0000, at ang mataas na byte ay nakaimbak sa $0001.

2 puntos. Dahil hindi ako nag-install ng isang variable na risistor sa board upang ayusin ang katumpakan ng pagsukat ng boltahe ng baterya dahil sa kakulangan ng espasyo, ipinakilala ko ang pagkakalibrate ng software. Pamamaraan ng pagkakalibrate para sa tumpak na pagsukat susunod: sa una, ang coefficient 1024 ($400) ay nakasulat sa EEPROM cell na ito, kailangan mong ilipat ang device sa active mode at tingnan ang boltahe sa indicator, at pagkatapos ay sukatin ang totoong boltahe sa baterya gamit ang voltmeter. Ang correction factor (K), na dapat itakda, ay kinakalkula ng formula: K=Uр/Ui*1024 kung saan ang Uр ay ang tunay na boltahe na sinusukat ng voltmeter, ang Ui ay ang boltahe na sinukat ng device mismo. Matapos kalkulahin ang koepisyent ng "K", ito ay ipinasok sa aparato (tulad ng nakasaad sa mga tagubilin sa pagpapatakbo). Pagkatapos ng pagkakalibrate, ang aking error ay hindi lalampas sa 3%.

3 puntos. Dito maaari mong itakda ang oras kung kailan mapupunta ang device sa sleep mode kung walang pinindot na mga button. Ang akin ay nagkakahalaga ng 16 segundo. Kung, halimbawa, kailangan mong makatulog sa loob ng 30 segundo, pagkatapos ay kailangan mong isulat ang 30 ($26).

Sa puntos 4 at 5 pareho.

6 na puntos. Sa address na $0030 ang zero key family code (Dallas 1-Wire) ay naka-store, pagkatapos ay ang 48-bit na numero nito at CRC. At kaya 50 key sa pagkakasunud-sunod.

Pag-setup, mga tampok sa pagpapatakbo

Ang pag-set up ng device ay bumababa sa pag-calibrate ng pagsukat ng boltahe ng baterya, gaya ng inilarawan sa itaas. Kinakailangan din na makita ang paglihis ng rate ng orasan sa loob ng 1 oras, kalkulahin at ipasok ang naaangkop na halaga ng pagwawasto (ang pamamaraan ay inilarawan sa mga tagubilin sa pagpapatakbo).

Ang aparato ay pinapagana ng baterya ng lithium CR2032 (3V) at kumokonsumo ng humigit-kumulang 4 µA sa sleep mode, at 5...20 mA sa active mode, depende sa liwanag ng indicator. Sa pang-araw-araw na limang minutong paggamit aktibong mode Ang baterya ay dapat tumagal ng humigit-kumulang 2...8 buwan depende sa liwanag. Nakakonekta ang case ng relo sa negatibong baterya.

Ang pangunahing pagbabasa ay sinubukan sa DS1990. Ang pagtulad ay nasubok sa METAKOM intercom. Sa ilalim mga serial number mula 46 hanggang 49 (huling 4) ay naka-flash (lahat ng mga susi ay naka-imbak sa EEPROM, maaari silang baguhin bago mag-flash) mga unibersal na susi para sa mga intercom. Ang susi na nakarehistro sa ilalim ng numero 49 ay nagbukas ng lahat ng mga intercom ng METAKOM na nakita ko, wala akong pagkakataon na subukan ang iba pang mga unibersal na susi, kinuha ko ang kanilang mga code mula sa network.

Ang remote control para sa mga camera ay sinubukan sa mga modelong Pentax optio L20 at Nikon D3000. Hindi makuha ang Canon para sa pagsusuri.

Ang manwal ng gumagamit ay tumatagal ng hanggang 13 mga pahina, kaya hindi ko ito isinama sa artikulo, ngunit isinama ito sa isang apendiks sa format na PDF.

Ang archive ay naglalaman ng:
Scheme sa at GIF;
Pagguhit ng naka-print na circuit board at pag-aayos ng mga elemento sa format;
Firmware at source code sa assembler;

Listahan ng mga radioelement

Pagtatalaga Uri Denominasyon Dami TandaanMamiliNotepad ko
DD1 MK AVR 8-bit

ATMega168PA

1 PA-AU Sa notepad
U2 Sensor ng temperatura

DS18B20

1 Sa notepad
Q1 MOSFET transistor

2N7002

1 Sa notepad
C1, C2 Kapasitor30 pF2 Sa notepad
C3, C4 Kapasitor0.1 µF2 Sa notepad
C5 Electrolytic kapasitor47 µF1 Sa notepad
R1-R8, R17 Resistor

100 Ohm

9 Sa notepad
R9 Resistor

10 kOhm

1 Sa notepad
R10 Resistor

8.2 Ohm

1 Sa notepad
R11 Resistor

300 Ohm

1 Sa notepad
R12 Resistor

2 MOhm

1 Sa notepad
R13 Resistor

220 kOhm

1 Sa notepad
R14 Resistor

30 kOhm

1 Sa notepad
R15, R19 Resistor

4.7 kOhm

2 Sa notepad
R16 Resistor

20 kOhm

1