Do-it-yourself na malaking orasan sa isang avr microcontroller. Multifunctional digital clock sa Attmega8 microcontroller. Diagram at paglalarawan. Pagtatakda ng kasalukuyang oras, mga alarma at oras-oras na chime

Ang alarm clock na ito ay batay sa isang real-time na clock chip, na nagbibigay-daan dito upang gumana backup na mapagkukunan pagkain sa kawalan ng pangunahing pagkain. Itakda ang oras alarm clock at operating mode ay naka-imbak sa non-volatile memory ng microcontroller. Display mode - 24 na oras. Naglalaman ng imitasyon na "ticking" at mga mode ng pagpapatakbo gamit ang mga LED indicator.

Prinsipyo ng pagpapatakbo

Ang batayan ng orasan na ito ay ang DS1307 microcircuit - isang real-time na orasan na nakikipagpalitan ng impormasyon sa control controller sa pamamagitan ng isang I2C interface. Isinasagawa ang indikasyon ng oras sa pamamagitan ng 4 na 7-segment na indicator na tumatakbo sa dynamic na mode. Ang pagpasok at pagsasaayos ng oras ay isinasagawa gamit ang 5 mga pindutan: "+ minuto", "+ oras", "itakda", "alarm" at "i-reset". Ang signal ng tunog ng alarm clock ay output sa pamamagitan ng isang karaniwang piezo emitter at ito ay isang signal na may dalas na 1 kHz na may mga pangalawang pag-pause.

Napili ang Atmega48 bilang control microcontroller dahil sa pagkakaroon nito at pagkakaroon ng mga kinakailangang peripheral sa board (kahit na labis). Ang DS1307 real-time na orasan ay konektado sa I2C hardware output ng control microcontroller. Upang patakbuhin ang DS1307 sa stand-alone na mode (sa kaganapan ng power failure ng pangunahing controller), gamitin baterya ng lithium 3V backup power supply, na tatagal ng ilang taon dahil sa mababang pagkonsumo ng kuryente microcircuits.

Tingnan natin ang control program:

Ang programa ay gumagana sa prinsipyo ng isang flag-timer machine: ang lahat ng mga estado at kaganapan ay kinakatawan sa anyo ng kaukulang mga flag, na isinasagawa sa mga interrupts ng kaukulang timer 1s, 1ms at 263.17ms. Gumagamit ang programa ng 2 timer ng hardware.

Sinusuri ang clock chip at pinindot ang mga button sa pagitan ng 263.17ms. Ang 1ms interval ay ginagamit upang bumuo tunog signal tawag, at 1s - para sa modulasyon nito. Kinokontrol din ng pangalawang agwat ang pagkislap ng tuldok sa 2nd digit ng indicator, na naghihiwalay sa mga oras at minuto at nagsisilbi rin bilang pagbuo ng isang "tik".
Isaalang-alang natin diagram ng eskematiko oras.

Mga pagtatalaga at denominasyon:
S4 - Pagtaas ng orasan
S3 - Dagdagan ang minuto
S2 - Pag-install
S1 - I-on ang alarma
S5 - I-reset

R6-R10 - 10k
R1-R5 - 510ohm

Supply boltahe - 5 volts.

I-setup at gamitin

Tamang pinagsama-samang mga relo karagdagang mga setting hindi kailangan nito. Kailangan mo lang i-install kasalukuyang panahon at isang alarm clock.
Ang pagtatakda ng kasalukuyang oras ay ang mga sumusunod:
1) Gamitin ang mga pindutan S1 at S2 upang itakda ang kasalukuyang oras (ang tuldok sa pagitan ng mga digit ay hindi kumukurap)
2) Simulan ang orasan gamit ang button na S3
Pagtatakda ng alarma:
1) Pindutin ang S3 at tiyaking kumikinang ang tuldok sa 1st digit
2) Itakda ang oras ng tawag gamit ang mga pindutan ng S1 at S2
3) I-on ang tawag gamit ang S4 button
Mga karagdagang tampok:
I-on ang pag-tick - hawakan ang S4 at pindutin ang S2 hanggang lumitaw ang mga katangiang tunog. Ito ay naka-off sa parehong paraan.
Ipakita ang mga minuto at segundo - pindutin nang matagal ang S4 at pindutin ang S1. Kung pinindot mo ang S3 pagkatapos nito, ang mga segundo ay mai-reset sa 00. Bumalik - ang parehong kumbinasyon.

Mga larawan at video ng mga relo

Ang relo ay binuo sa isang case na ginawa mula sa hindi gumaganang "electronics".


Iminumungkahi kong ulitin ang electronic clock circuit sa ATmega 8 microcontroller, na may impormasyong ipinapakita ng malalaking LED. Gumaganang relo, nasubok. Firmware para sa sa ngayon ay tinatapos na. Ang isang mas malaking board ay ginagawa, na kung saan ay nasa layo na 5 metro mula sa pangunahing bloke Magkakaroon din ng isang indikasyon sa pangunahing bloke - upang ma-duplicate ang malaking board. Diagram ng eskematiko humantong orasan ipinapakita sa figure - i-click upang palakihin.

Paglalarawan ng device

1. Mga Pag-andar.
1.1 Orasan. Ang format ng pagpapakita ng oras ay 24 na oras. Digital na pagwawasto ng katumpakan ng stroke.


1.2 Thermometer. Pagsusukat ng temperatura mula sa dalawang sensor sa hanay na -55.0 oC - 125.0 oC.


1.3 Kahaliling pagpapakita ng impormasyon sa indicator.
1.4 Kontrol ng pangunahing pinagmumulan ng kuryente.
1.5 Paggamit ng non-volatile memory ng microcontroller upang i-save ang mga setting at setting kapag naka-off ang power.
1.6 Tatlong pindutan para sa pag-install at pagsasaayos: PLUS, MINUS, SET.

Pagpapatakbo ng device

Kapag na-on mo ito sa unang pagkakataon, may lalabas na screensaver ng advertising sa display sa loob ng 1 segundo. Pagkatapos ay ang pagpapakita ng oras.
Mag-click sa SET_TIME inililipat ang indicator sa isang bilog mula sa pangunahing mode ng panonood (ipinapakita ang kasalukuyang oras):
- display mode para sa mga minuto at segundo. Sa mode na ito, kung sabay mong pindutin ang pindutan PLUS At MINUS, pagkatapos ay ire-reset ang mga segundo sa zero.
– pagtatakda ng mga minuto ng kasalukuyang oras.
– pagtatakda ng kasalukuyang orasan ng oras.
– ang halaga ng pang-araw-araw na pagwawasto ng katumpakan ng orasan. Simbolo c at halaga ng pagwawasto. Pagtatakda ng mga limitasyon -25?25 seg. Ang napiling halaga ay idadagdag/babawas mula sa kasalukuyang oras araw-araw sa 0 oras 0 minuto at 30 segundo.
- simbolo t. Itakda ang tagal ng display ng orasan.
- simbolo i. Oras ng pagpapakita para sa mga simbolo ng pagpapakita ng panloob na temperatura ( int).
- simbolo d. pagtatakda ng oras ng indikasyon ng temperatura mula sa panloob na sensor.
- simbolo o. Oras ng pagpapakita ng mga simbolo ng indikasyon ng panlabas na temperatura ( palabas).
- simbolo u. pagtatakda ng oras ng pagpapakita ng temperatura mula sa panlabas na sensor.
- simbolo P. pagtatakda ng oras ng pagpapakita ng screensaver ng advertising.
Pagtatakda ng mga limitasyon para sa oras ng pagpapakita na 0-60 segundo. Kung nakatakda sa 0, ang parameter na ito ay hindi ipinapakita sa indicator. Kung ang lahat ng mga parameter ay nakatakda sa 0, ang indicator ay magpapakita ng orasan.

Pagtatakda ng orasan

3.1 Sa lahat ng mga mode, hawakan ang mga pindutan PLUS/MINUS Ang mabilis na pag-install ay isinasagawa.
3.2 Kung nabago ang mga setting, pagkatapos ng 10 segundo mula sa huling pagbabago ang mga bagong halaga ay isusulat sa non-volatile memory (EEPROM) at babasahin mula doon kapag i-restart nutrisyon. Lilipat ang indicator sa main time mode.
3.3 Nagkakabisa ang mga bagong setting sa panahon ng pag-install.

Kontrol ng kapangyarihan

Sinusubaybayan ng microcontroller ang pagkakaroon ng pangunahing kapangyarihan. Kapag naka-off ito, pinapagana ang device mula sa panloob na pinagmulan. Upang bawasan ang kasalukuyang pagkonsumo, ang indicator, mga sensor at mga button ay naka-off. Ang orasan ay patuloy na nagbibilang ng oras. Kapag ang kapangyarihan ay ibinibigay mula sa pangunahing pinagmumulan, ang lahat ng mga pag-andar ay naibalik.


Sa ngayon, ang mga naka-print na circuit board ay binuo, ang circuit ay itinatama, at ito ay maaaring gawin nang sama-sama. Kung mayroon kang mga ideya at mungkahi para sa pagpapabuti ng relo, sumulat sa forum. Mga may-akda ng disenyo: Aleksandrovich & SOIR (Soir&C.E.A)

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- Sign ng sound 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 ayon sa laki ng panloob na diameter ng kaso wristwatch. 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 natitirang 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

Diagram ng electrical circuit

Pinagsasama ng isang device ang dalawang function: ang aktwal na pagsukat ng temperatura at oras (orasan). Ang display ay ginagawa nang salit-salit, nagbabago bawat sampung segundo. Upang itakda ang orasan, dalawang pindutan ang ginagamit, katulad ng mga simpleng Chinese elektronikong relo: ang isa ay responsable para sa pagpili ng isang parameter, ang pangalawa para sa pagbabago nito. Ang aparato ay pinapagana mula sa network gamit ang isang patuloy na nagpapatatag na kasalukuyang mapagkukunan na may boltahe na limang volts (board mula sa charger telepono).

Ang sensor ng temperatura ay isang DS18B20 chip. Dahil ang Clock-Thermometer device ay walang sariling baterya, kung mawawala ang power, natural na mawawala ang mga reading. At upang hindi ito maging sanhi ng pagkahuli ng isang tao para sa mahahalagang bagay, mayroong isang kawili-wiling "panlilinlang" - kapag inilapat ang kapangyarihan, ang mga gitling ay ipapakita sa display sa halip na oras hanggang sa pindutin mo ang isa sa dalawang mga pindutan ng setting.

Ang katawan ng homemade temperature meter ay isang angkop na cufflink box. Ang clock-thermometer board mismo at ang board na kinuha mula sa charger ng telepono ay inilagay sa loob nito. Ang DS18B20 sensor ay ginawang remote at nakakonekta sa pamamagitan ng isang connector.

Listahan ng mga kinakailangang bahagi

  • Atmega8 microcontroller - 1 pc.
  • Quartz 32768 Hz - 1 pc.
  • Sensor ng temperatura DS18B20 - 1 pc.
  • Seven segment indicator (4 na digit) - 1 pc.
  • SMD resistors laki 0805:
  • 620 Ohm - 8 mga PC.
  • 0 Ohm (jumper) - 1 pc.
  • 4.7 kOhm - 1 pc.
  • Mga pindutan ng taktika - 2 mga PC.

Video ng device sa YouTube channel

Ang alarm clock na ito ay nakabatay sa isang real-time na clock chip, na nagbibigay-daan dito na gumana mula sa isang backup na pinagmumulan ng kuryente sa kawalan ng pangunahing isa. Ang nakatakdang oras ng alarma at operating mode ay nakaimbak sa hindi pabagu-bagong memorya ng microcontroller. Display mode - 24 na oras. Naglalaman ng imitasyon na "ticking" at mga mode ng pagpapatakbo gamit ang mga LED indicator.

Prinsipyo ng pagpapatakbo

Ang batayan ng orasan na ito ay ang DS1307 microcircuit - isang real-time na orasan na nakikipagpalitan ng impormasyon sa control controller sa pamamagitan ng isang I2C interface. Isinasagawa ang indikasyon ng oras sa pamamagitan ng 4 na 7-segment na indicator na tumatakbo sa dynamic na mode. Ang pagpasok at pagsasaayos ng oras ay isinasagawa gamit ang 5 mga pindutan: "+ minuto", "+ oras", "itakda", "alarm" at "i-reset". Ang signal ng tunog ng alarm clock ay output sa pamamagitan ng isang karaniwang piezo emitter at ito ay isang signal na may dalas na 1 kHz na may mga pangalawang pag-pause.

Napili ang Atmega48 bilang control microcontroller dahil sa pagkakaroon nito at pagkakaroon ng mga kinakailangang peripheral sa board (kahit na labis). Ang DS1307 real-time na orasan ay konektado sa I2C hardware output ng control microcontroller. Upang patakbuhin ang DS1307 sa stand-alone na mode (sa kaganapan ng power failure sa pangunahing controller), isang 3V lithium na baterya ang ginagamit para sa backup na kapangyarihan, na tatagal ng ilang taon dahil sa mababang paggamit ng kuryente ng chip.

Tingnan natin ang control program:

Ang programa ay gumagana sa prinsipyo ng isang flag-timer machine: ang lahat ng mga estado at kaganapan ay kinakatawan sa anyo ng kaukulang mga flag, na isinasagawa sa mga interrupts ng kaukulang timer 1s, 1ms at 263.17ms. Gumagamit ang programa ng 2 timer ng hardware.

Sinusuri ang clock chip at pinindot ang mga button sa pagitan ng 263.17ms. Ang 1ms interval ay ginagamit upang makabuo ng bell sound signal, at 1s ay ginagamit upang baguhin ito. Kinokontrol din ng pangalawang agwat ang pagkislap ng tuldok sa 2nd digit ng indicator, na naghihiwalay sa mga oras at minuto at nagsisilbi rin bilang pagbuo ng isang "tik".
Tingnan natin ang schematic diagram ng orasan.

Mga pagtatalaga at denominasyon:
S4 - Pagtaas ng orasan
S3 - Dagdagan ang minuto
S2 - Pag-install
S1 - I-on ang alarma
S5 - I-reset

R6-R10 - 10k
R1-R5 - 510ohm

Supply boltahe - 5 volts.

I-setup at gamitin

Ang isang wastong pinagsama-samang relo ay hindi nangangailangan ng karagdagang pagsasaayos. Kailangan mo lang itakda ang kasalukuyang oras at alarma.
Ang pagtatakda ng kasalukuyang oras ay ang mga sumusunod:
1) Gamitin ang mga pindutan S1 at S2 upang itakda ang kasalukuyang oras (ang tuldok sa pagitan ng mga digit ay hindi kumukurap)
2) Simulan ang orasan gamit ang button na S3
Pagtatakda ng alarma:
1) Pindutin ang S3 at tiyaking kumikinang ang tuldok sa 1st digit
2) Itakda ang oras ng tawag gamit ang mga pindutan ng S1 at S2
3) I-on ang tawag gamit ang S4 button
Mga karagdagang tampok:
I-on ang pag-tick - hawakan ang S4 at pindutin ang S2 hanggang lumitaw ang mga katangiang tunog. Ito ay naka-off sa parehong paraan.
Ipakita ang mga minuto at segundo - pindutin nang matagal ang S4 at pindutin ang S1. Kung pinindot mo ang S3 pagkatapos nito, ang mga segundo ay mai-reset sa 00. Bumalik - ang parehong kumbinasyon.

Mga larawan at video ng mga relo

Ang relo ay binuo sa isang case na ginawa mula sa hindi gumaganang "electronics".