Klokcircuit op de avr-microcontroller. LED-klok op een microcontroller. Elektronisch klokcircuit op een microcontroller

Deze versie van het horloge is zo gemaakt dat het circuit zoveel mogelijk wordt vereenvoudigd, het stroomverbruik wordt verminderd en uiteindelijk een apparaat wordt verkregen dat gemakkelijk in je zak past. Door miniatuurbatterijen te kiezen om het circuit van stroom te voorzien, SMD-montage en een miniatuurluidspreker (bijvoorbeeld van een niet-werkende mobiele telefoon), kunt u een ontwerp krijgen dat iets groter is dan een luciferdoosje.
Door het gebruik van een superheldere indicator kunt u de stroom die door het circuit wordt verbruikt, verminderen. Een vermindering van het stroomverbruik wordt ook bereikt in de "LoFF" -modus - de indicator is uit en alleen de knipperende stip van het lage cijfer van de klok is ingeschakeld.

Indicatie
Dankzij de instelbare helderheid van de indicatoren kunt u de meest comfortabele weergave van meetwaarden kiezen (en opnieuw het energieverbruik verminderen).
Het horloge heeft 9 weergavemodi. Het schakelen tussen modi gebeurt met behulp van de “plus”- en “min”-knoppen. Voordat de meetwaarden zelf worden weergegeven, wordt op de indicatoren een korte hint over de naam van de modus weergegeven. De duur van de hintweergave bedraagt ​​één seconde. Het gebruik van kortetermijnaanwijzingen maakte het mogelijk een goede ergonomie van het horloge te bereiken. Bij het schakelen tussen weergavemodi (waarvan er best veel zijn voor zo'n eenvoudig apparaat als een gewoon horloge) is er geen verwarring en is het altijd duidelijk welke waarden op de indicator worden weergegeven.

Correctie van de op de indicator weergegeven waarden wordt geactiveerd door op de knop "Correctie" te drukken. In dit geval wordt gedurende 1/4 seconde een kortetermijnmelding weergegeven, waarna de aangepaste waarde begint te knipperen met een frequentie van 2 Hz. Met de plus- en minknoppen worden de meetwaarden gecorrigeerd. Wanneer u de knop lang ingedrukt houdt, wordt de automatische herhaalmodus geactiveerd op de opgegeven frequentie. De automatische herhaalfrequenties voor het indrukken van een knop zijn: voor uren, maanden en dag van de week - 4 Hz; voor minuten, jaar en indicatorhelderheid - 10 Hz; voor de correctiewaarde - 100 Hz.
Alle aangepaste waarden, behalve uren, minuten en seconden, worden naar EEPROM geschreven en hersteld na het uit- en inschakelen van de stroom. De seconden tijdens de correctie worden op nul gezet. Alle modi behalve uren-minuten, minuten-seconden en LoFF worden automatisch geretourneerd. Als er binnen 10 seconden geen knop wordt ingedrukt, schakelt de klok over naar de weergave van uren en minuten.
Door op de knop "Aan/Uit alarm" te drukken. De wekker gaat aan/uit. De activering van het alarm wordt bevestigd door een kort tweetonig geluid. Als de wekker is ingeschakeld, licht de punt in het lage cijfer van de indicator op.
In de "Corr" -modus wordt op de indicator een correctieconstante weergegeven, waarvan de beginwaarde 5000 microseconden per seconde is. Wanneer de klok achterloopt, verhogen we de constante met de hoeveelheid vertraging, berekend in microseconden per seconde. Als de klok haast heeft, verlagen we de constante volgens hetzelfde principe.

Schema

Dit artikel beschrijft het ontwerp van digitaal uur op de Attmega8-microcontroller, die zijn uitgerust met een stopwatch, wekker en countdown-timer. Het horloge beschikt over een dag- en datumweergavefunctie met de mogelijkheid om de datum en tijd gecombineerd weer te geven. Beschikbaar automatisch schakelen voor zomer- en wintertijd, en rekening houdend met schrikkeljaren.

Het display is gebouwd op zes 7-segmenten LED-indicatoren met aanpassing van de helderheid. Het horloge is ook uitgerust met een batterijback-up.

Beschrijving van het klokontwerp van de microcontroller

Zoals hierboven vermeld, heeft het horloge een zescijferig display, bestaande uit twee driecijferige T-5631BUY-11-displays, die in multiplexmodus werken. De indicatoranodes zijn per categorie gegroepeerd en worden geschakeld met behulp van transistoren T1...T6.

De kathodes zijn gegroepeerd in segmenten en worden rechtstreeks gevoed door de IO1 Attmega8-microcontroller. De multiplexfrequentie is 100 Hz.

De klok wordt bestuurd door een laagfrequent kwartskristal X1 met een frequentie van 32768 Hz. Door het activeren van de CKOPT-bit, die het gebruik van interne 36pF-condensatoren voor kwarts mogelijk maakt, is het niet nodig om externe condensatoren te gebruiken.

Als u problemen ondervindt bij het starten van de generator, kunt u proberen 2 condensatoren van 22pf aan te sluiten. Voor een nog grotere kloknauwkeurigheid kunt u de interne condensatoren volledig uitschakelen (de CKOPT-bit resetten) en alleen de externe overlaten.

De piëzo-emitter REP1 geeft een alarmgeluid en signaleert het einde van de timer. Tijdens geluidssignaal Logica 1 verschijnt op pin 16 (poort PB2). Dit signaal kan worden gebruikt om elke belasting te regelen.

Het horloge wordt bestuurd door drie knoppen: minuten, uren en modus. De knoppen zijn verbonden via weerstanden die de poorten van de Attmega8-microcontroller beschermen. Het circuit wordt gevoed door een 5 volt bron (7805). Het stroomverbruik hangt voornamelijk af van het aantal actieve indicatoren, evenals van de mate van aanpassing van de helderheid.

Bij maximale helderheid bereikt het stroomverbruik 60 mA. Het horloge is uitgerust reservebatterij voeding. Terwijl het horloge op batterijvoeding werkt, gaat het naar een spaarmodus waarin het display is uitgeschakeld. Ook in deze modus zijn de knoppen niet actief, behalve wanneer het nodig is om het geluidssignaal uit te schakelen.

Spanning reservestroom van 3 tot 4,5 V. Dit kan één 3V-batterij zijn, drie 1,2V NiMH of NiCd, of één Li-Pol-batterij of Li-Ion (3,6 tot 3,7 V). Het stroomverbruik van een 3V-batterij bedraagt ​​slechts 5...12mA. Tijd levensduur van de batterij Uren in de spaarmodus van een 3V CR2032-batterij met een standaardcapaciteit van 200 mAh zouden theoretisch ongeveer 2,5 - 3 jaar moeten meegaan.

De software voor de microcontroller staat aan het einde van het artikel. De configuratiebits moeten als volgt worden ingesteld:

Klokbeheer

De klok wordt bestuurd via de TL1-minuten-, uur-TL2- en TL3-modus. De uren- en minutenknoppen worden in de klokmodus gebruikt om uren en minuten toe te wijzen. In andere modi hebben ze dat wel verschillende functies. De modusknop schakelt tussen verschillende modi, waarvan er in totaal 8 zijn:

Modus 1 - Klok

In deze modus wordt op het display weergegeven huidige tijd in het formaat "UU.MM.SS". De klokknop wordt gebruikt om de klok in te stellen. Minutenknop om de minuten in te stellen. Wanneer u hierop drukt, worden de seconden gereset.

Modus 2 - Zomertijd inschakelen en het jaar instellen

Hier kunt u de automatische omschakeling tussen zomer- en wintertijd in- of uitschakelen en het jaar instellen. Gegevens volgende formaat"AC 'RR" (AC - automatische tijd, spatie, laatste twee cijfers van het jaartal).

Modus 3 - Afteltimer

Met deze modus kunt u een aftelling organiseren vanaf ingestelde waarde naar nul. Nadat deze tijd is verstreken, klinkt er een pieptoon en gaat LED1 branden. De pieptoon kan worden gestopt door op de Mode-knop te drukken. De gegevens hebben het volgende formaat: "UU.MM.SS". De maximaal mogelijke waarde is 99.59.59 (bijna 100 uur).

Modus 4 – Gecombineerde informatie-uitvoer

In deze modus wordt afwisselend het volgende weergegeven:

  1. huidige tijd in het formaat "UU.MM.SS"
  2. datum in het formaat “AA.DD.MM.”

Elk formaat wordt gedurende 1 seconde weergegeven. In deze modus worden de knoppen Uur en Minuut gebruikt om de helderheid van het display aan te passen (Uren-, Minuten+). De helderheid verandert logaritmisch in 6 stappen: 1/1, 1/2, 1/4, 1/8, 1/16 en 1/32. Standaard is 1/2

Modus 5 - Instellen van de dag van de week en alarmmodus

In deze modus kunt u de dag van de week instellen - van maandag tot en met zondag (weergegeven als ma, di, wo, do, vr, za, zo), het alarm inschakelen en de bedrijfsmodus selecteren. De gegevens hebben het volgende formaat: “AA AL._” (dag van de week, ruimte, AL., alarminstelling).

Met de klokknop wordt de dag van de week ingesteld. De minutenknop wordt gebruikt om het alarmgeluid in/uit te schakelen en de bedrijfsmodus te selecteren: “AL._” = alarm is niet actief, “AL.1” = alarm piept 1 keer (schakelt vervolgens automatisch over naar “AL._” positie), “ AL.5" = alarm klinkt alleen op weekdagen (ma-vr, behalve za-zo), "AL.7" = alarm gaat elke dag af

Modus 6 – Instellen van de dag van de week en de datum

Met de klokknop kunt u de dag van de maand instellen. Met de minutenknop kunt u de maand instellen.

Modus 7 - Stopwatch

Met de stopwatch meet je de tijd met een nauwkeurigheid van 0,1 seconde. De maximale meettijd is 9.59.59.9 (bijna 10 uur). De gegevens hebben het volgende formaat "H.MM.SS.X". De minutenknop wordt gebruikt om de stopwatch te starten en te stoppen. De klokknop wordt gebruikt om te resetten.

Modus 8 - Wekker

Deze modus wordt gebruikt om de alarmtijd (ALARM) weer te geven en in te stellen. De gegevens hebben het volgende formaat "HH.MM.AL". Met de knop Minuten stelt u de alarmminuten in, met de knop Klok stelt u het alarmuur in.

Hieronder ziet u een diagram van een soortgelijk horloge met een indicator met een gemeenschappelijke kathode

(downloads: 765)

Deze wekker is gebaseerd op een real-time klokchip, waardoor hij kan werken vanuit een back-upstroombron als de hoofdstroombron ontbreekt. Tijd instellen wekker en bedrijfsmodus worden opgeslagen in het niet-vluchtige geheugen van de microcontroller. Weergavemodus - 24 uur. Bevat “tikkende” imitatie. Tijd en bedrijfsmodi worden aangegeven met LED-indicatoren.

Werkingsprincipe

De basis van deze klok is de DS1307-microschakeling: een real-time klok die via een I2C-interface informatie uitwisselt met de besturingscontroller. De tijdsaanduiding vindt plaats via 4 7-segmentindicatoren die in dynamische modus werken. Het invoeren en aanpassen van de tijd gebeurt via 5 knoppen: “+ minuten”, “+ uren”, “set”, “alarm” en “reset”. Het geluidssignaal van de wekker wordt uitgevoerd via een standaard piëzo-emitter en is een signaal met een frequentie van 1 kHz met secondepauzes.

Als besturingsmicrocontroller werd voor Atmega48 gekozen vanwege de beschikbaarheid en de aanwezigheid van de benodigde randapparatuur aan boord (zelfs in overmaat). De DS1307 real-time klok is aangesloten op de I2C hardware-uitgangen van de besturingsmicrocontroller. Om de DS1307 in stand-alone modus te gebruiken (in het geval van een stroomstoring van de hoofdcontroller), gebruikt u lithiumbatterij 3V back-upvoeding, die meerdere jaren meegaat dankzij laag stroomverbruik microschakelingen.

Laten we het besturingsprogramma eens nader bekijken:

Het programma werkt volgens het principe van een vlagtimermachine: alle toestanden en gebeurtenissen worden weergegeven in de vorm van overeenkomstige vlaggen, uitgevoerd in interrupts van de overeenkomstige timer 1s, 1ms en 263,17ms. Het programma maakt gebruik van 2 hardwaretimers.

De klokchip wordt ondervraagd en de knoppen worden ingedrukt met een interval van 263,17 ms. Het interval van 1 ms wordt gebruikt om het belgeluidssignaal te genereren, en 1s wordt gebruikt om het te moduleren. Het tweede interval regelt ook het knipperen van de punt in het tweede cijfer van de indicator, waarbij uren en minuten worden gescheiden en ook dient als de vorming van een "tik".
Laten we eens overwegen schematisch diagram uur.

Benamingen en denominaties:
S4 - Klokverhoging
S3 - Minuten verhogen
S2 - Installatie
S1 - Schakel het alarm in
S5 - Opnieuw instellen

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

Voedingsspanning - 5 volt.

Installatie en gebruik

Goed gemonteerde horloges aanvullende instellingen heb het niet nodig. U hoeft alleen maar de huidige tijd en het alarm in te stellen.
Het instellen van de huidige tijd gaat als volgt:
1) Gebruik de knoppen S1 en S2 om de huidige tijd in te stellen (de punt tussen de cijfers knippert niet)
2) Start de klok met knop S3
Het alarm instellen:
1) Druk op S3 en zorg ervoor dat de punt in het eerste cijfer oplicht
2) Stel de gesprekstijd in met de knoppen S1 en S2
3) Schakel het gesprek in met de S4-knop
Extra functies:
Schakel het tikken in - houd S4 ingedrukt en druk op S2 totdat karakteristieke geluiden verschijnen. Het wordt op dezelfde manier uitgeschakeld.
Minuten en seconden weergeven - houd S4 ingedrukt en druk op S1. Als u vervolgens op S3 drukt, worden de seconden teruggezet op 00. Return - dezelfde combinatie.

Foto's en video's van horloges

Het horloge is gemonteerd in een kast gemaakt van niet werkende “elektronica”.


Zoals de naam al doet vermoeden, het hoofddoel van dit apparaat- Ontdek de huidige tijd en datum. Maar het heeft nog veel meer nuttige functies. Het idee van de creatie ervan verscheen nadat ik een half kapot horloge tegenkwam met een relatief grote (voor een pols) metalen lichaam. Ik dacht dat ik het daar kon plaatsen zelfgemaakte horloge, waarvan de mogelijkheden alleen worden beperkt door je eigen verbeeldingskracht en vaardigheid. Het resultaat was een apparaat met de volgende functies:

1. Klok - kalender:

    Uren, minuten, seconden, dag van de week, datum, maand, jaar tellen en weergeven.

    Beschikbaarheid van automatische aanpassing van de huidige tijd, die elk uur wordt uitgevoerd ( maximale waarden+/-9999 eenheden, 1 eenheid. = 3,90625 ms.)

    De dag van de week berekenen op basis van een datum (voor de huidige eeuw)

    Automatische overgang voor zomer- en wintertijd (uitschakelbaar)

  • Er wordt rekening gehouden met schrikkeljaren

2. Twee onafhankelijke wekkers (er klinkt een melodie wanneer deze wordt geactiveerd)
3. Timer met stappen van 1 seconde. (Maximale teltijd 99u 59m 59s)
4. Tweekanaals stopwatch met telresolutie van 0,01 sec. ( maximale tijd telt 99u 59m 59s)
5. Stopwatch met telresolutie van 1 seconde. (maximale teltijd 99 dagen)
6. Thermometer in het bereik van -5°C. tot 55°C (beperkt door temperatuurbereik normale werking apparaten) in stappen van 0,1°C.
7. Lezer en emulator elektronische sleutels- tablets van het type DS1990 die gebruikmaken van het Dallas 1-Wire-protocol (geheugen voor 50 stuks, dat al verschillende universele "all-terrain-sleutels" bevat) met de mogelijkheid om de sleutelcode byte voor byte te bekijken.
8. Afstandsbediening controle op IR-stralen (alleen het commando "Neem foto" is geïmplementeerd) voor digitale camera's"Pentax", "Nikon", "Canon"
9. LED-zaklamp
10. 7 melodieën
11. Geluidssignaal aan het begin van ieder uur (kan worden uitgeschakeld)
12. Geluidsbevestiging bij het indrukken van knoppen (kan worden uitgeschakeld)
13. Accuspanningsbewaking met kalibratiefunctie
14. Aanpassing van de helderheid van de digitale indicator

Misschien is dergelijke functionaliteit overbodig, maar ik hou van universele dingen, en van de morele voldoening dat dit horloge met mijn eigen handen zal worden gemaakt.

Schematisch diagram van de klok

Het apparaat is gebouwd op de ATmega168PA-AU-microcontroller. De klok tikt volgens timer T2 en werkt in asynchrone modus vanaf een klokkwarts op 32768 Hz. De microcontroller bevindt zich bijna de hele tijd in de slaapmodus (de indicator is uit), wordt één keer per seconde wakker om deze seconde bij de huidige tijd op te tellen en valt weer in slaap. In de actieve modus wordt de MK geklokt vanaf de interne RC-oscillator op 8 MHz, maar de interne prescaler deelt deze door 2, waardoor de kern wordt geklokt op 4 MHz. Voor indicatie worden vier digitale LED-indicatoren met zeven segmenten met één cijfer, een gemeenschappelijke anode en een decimaalpunt gebruikt. Er zijn ook 7 status-LED's, waarvan het doel als volgt is:
D1- Negatief waardeteken (min)
D2- Teken van een lopende stopwatch (knipperend)
D3- Teken dat de eerste wekker wordt ingeschakeld
D4- Teken dat het tweede alarm is ingeschakeld
D5- Teken van geluidssignaal aan het begin van elk uur
D6- Teken van een lopende timer (knipperend)
D7- Teken lage spanning batterijvermogen

R1-R8 - stroombegrenzende weerstanden van segmenten van digitale indicatoren HG1-HG4 en LED's D1-D7. R12,R13 – verdeler voor het bewaken van de accuspanning. Omdat de voedingsspanning van de klok 3V is, en witte LED D9 heeft bij het nominale stroomverbruik ongeveer 3,4-3,8V nodig, gloeit niet op volle sterkte (maar is voldoende om niet te struikelen in het donker) en is daarom aangesloten zonder stroombegrenzende weerstand. Elementen R14, Q1, R10 zijn ontworpen om de infrarood-LED D8 te besturen (implementatie afstandsbediening voor digitale camera's). R19, ​​​​R20, R21 worden gebruikt voor koppeling bij communicatie met apparaten die een 1-Wire-interface hebben. De bediening wordt uitgevoerd door drie knoppen, die ik gewoonlijk noemde: MODE (modus), UP (omhoog), DOWN (omlaag). De eerste is ook ontworpen om de MK te wekken door een externe interrupt (in dit geval gaat de indicatie aan), dus wordt hij apart op de PD3-ingang aangesloten. Het indrukken van de overige knoppen wordt bepaald met behulp van een ADC en weerstanden R16, R18. Als de knoppen niet binnen 16 seconden worden ingedrukt, gaat de MK in de slaapstand en gaat de indicator uit. Wanneer in de modus “Afstandsbediening voor camera’s” dit interval is 32 seconden en met de zaklamp aan - 1 minuut. MK kan ook handmatig in slaap worden gebracht met behulp van de bedieningsknoppen. Wanneer de stopwatch loopt met een telresolutie van 0,01 sec. Het apparaat gaat niet in de slaapmodus.

PCB

Het apparaat is gemonteerd op een dubbelzijdige printplaat met een ronde vorm, afhankelijk van de grootte van de interne diameter van de behuizing polshorloge. Maar in de productie gebruikte ik twee enkelzijdige platen met een dikte van 0,35 mm. Deze dikte werd opnieuw verkregen door het af te pellen van dubbelzijdig glasvezellaminaat met een dikte van 1,5 mm. Vervolgens werden de planken aan elkaar gelijmd. Dit alles werd gedaan omdat ik geen dunne dubbelzijdige glasvezel had, en elke millimeter dikte die werd bespaard in de beperkte interne ruimte van de horlogekast is zeer waardevol, en er was geen noodzaak voor uitlijning bij de vervaardiging van gedrukte geleiders met behulp van de LUT methode. Tekening printplaat en de locatie van de onderdelen staan ​​in de bijgevoegde bestanden. Aan de ene kant bevinden zich indicatoren en stroombegrenzende weerstanden R1-R8. Op de achterkant staan ​​alle overige details. Er zijn twee doorlopende gaten voor witte en infrarood-LED's.

De knopcontacten en batterijhouder zijn gemaakt van flexibel verenstaal met een dikte van 0,2...0,3 mm. en vertind. Hieronder staan ​​foto's van het bord van beide kanten:

Ontwerp, onderdelen en hun mogelijke vervanging

De ATmega168PA-AU-microcontroller kan worden vervangen door ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Digitale indicatoren- 4 stuks KPSA02-105 superheldere rode gloed met een cijferhoogte van 5,08 mm. Leverbaar uit dezelfde serie KPSA02-xxx of KCSA02-xxx. (alleen geen groene - ze zullen zwak gloeien) Ik ken geen andere analogen van vergelijkbare grootte met behoorlijke helderheid. In HG1, HG3 is de aansluiting van de kathodesegmenten anders dan in HG2, HG4, omdat het voor mij handiger was om de printplaat te bedraden. In dit opzicht wordt er in het programma een andere tekengeneratortabel voor gebruikt. Gebruikte weerstanden en condensatoren SMD voor opbouwmontage van standaard maten 0805 en 1206, LED's D1-D7 van standaard maat 0805. Witte en infrarood LED's met een diameter van 3 mm. Het bord heeft 13 gaten waarin jumpers moeten worden geïnstalleerd. Als temperatuur sensor Er wordt DS18B20 met een 1-Wire-interface gebruikt. LS1 is een gewone piëzo-elektrische tweeter, ingebracht in het deksel. Met één contact is het verbonden met het bord met behulp van een erop geïnstalleerde veer, met het andere is het via de kap zelf verbonden met de horlogekast. Kwartsresonator van een polshorloge.

Programmering, firmware, zekeringen

Voor in-circuit programmering heeft het bord slechts 6 ronde contactpunten (J1), aangezien een volledige connector niet in de hoogte past. Ik verbond ze met de programmeur met behulp van een contactapparaat gemaakt van een PLD2x3-pins stekker en veren erop gesoldeerd, waardoor ze met één hand op de plekken werden gedrukt. Hieronder ziet u een foto van het apparaat.

Ik heb het gebruikt omdat ik tijdens het foutopsporingsproces de MK vele malen opnieuw moest flashen. Bij het flashen van eenmalige firmware is het gemakkelijker om dunne draden die op de programmeur zijn aangesloten aan de patches te solderen en ze vervolgens weer los te maken. Handiger is om de MK te flitsen zonder accu, maar wel zo dat er wel stroom uit komt externe bron+3V, of van een programmeur met dezelfde voedingsspanning. Het programma is geschreven in assembler in de VMLAB 3.15-omgeving. Broncodes, firmware voor FLASH en EEPROM in de applicatie.

De FUSE-bits van de DD1-microcontroller moeten als volgt worden geprogrammeerd:
CKSEL3...0 = 0010 - klokken vanaf interne RC-oscillator 8 MHz;
SUT1...0 =10 - Opstarttijd: 6 CK + 64 ms;
CKDIV8 = 1 - frequentiedeler door 8 is uitgeschakeld;
CKOUT = 1 - Uitgangsklok op CKOUT uitgeschakeld;
BODLEVEL2…0 = 111 - voedingsspanningsregeling is uitgeschakeld;
EESAVE = 0 - het wissen van EEPROM tijdens het programmeren van het kristal is verboden;
WDTON = 1 - Nee altijd aan Waakhond-timer;
De overige FUSE-bits kunnen het beste onaangeroerd blijven. De FUSE-bit wordt geprogrammeerd als deze op “0” staat.

Het flashen van de EEPROM met de dump in het archief is vereist.

De eerste EEPROM-cellen bevatten initiële parameters apparaten. In de onderstaande tabel wordt het doel van enkele ervan beschreven, dat binnen redelijke grenzen kan worden gewijzigd.

Mobiel adres

Doel

Parameter

Opmerking

De hoeveelheid accuspanning waarbij een laag niveau-signaal optreedt

260 ($ 104) (2,6 V)

coëfficiënt voor het corrigeren van de waarde van de gemeten accuspanning

tijdsinterval voor het overschakelen naar de slaapmodus

1 eenheid = 1 sec

tijdsinterval voor het overschakelen naar de slaapmodus wanneer de zaklamp aan is

1 eenheid = 1 sec

tijdsinterval voor het overschakelen naar de slaapmodus in de afstandsbedieningsmodus voor camera's

1 eenheid = 1 sec

Hier worden de IButton-sleutelnummers opgeslagen

Kleine toelichting op punten:

1 punt. Dit geeft het spanningsniveau op de batterij aan waarbij de LED gaat branden, wat de lage waarde aangeeft. Ik heb het ingesteld op 2,6V (parameter - 260). Als je iets anders nodig hebt, bijvoorbeeld 2,4 V, dan moet je 240 ($00F0) schrijven. De lage byte wordt opgeslagen in de cel op adres $0000, en de hoge byte wordt opgeslagen in $0001.

2 punt. Omdat ik vanwege ruimtegebrek geen variabele weerstand op het bord heb geïnstalleerd om de nauwkeurigheid van de accuspanningsmeting aan te passen, heb ik softwarekalibratie geïntroduceerd. Kalibratieprocedure voor nauwkeurige meting volgende: aanvankelijk wordt de coëfficiënt 1024 ($400) in deze EEPROM-cel geschreven, je moet het apparaat in de actieve modus zetten en naar de spanning op de indicator kijken, en vervolgens de werkelijke spanning op de batterij meten met een voltmeter. De correctiefactor (K), die moet worden ingesteld, wordt berekend met de formule: K=Uр/Ui*1024 waarbij Uр de werkelijke spanning is gemeten door de voltmeter, Ui de spanning is die door het apparaat zelf is gemeten. Na het berekenen van de “K”-coëfficiënt wordt deze in het apparaat ingevoerd (zoals vermeld in de gebruiksaanwijzing). Na kalibratie was mijn fout niet groter dan 3%.

3 punt. Hier kun je instellen na hoeveel tijd het apparaat in de slaapmodus gaat als er geen knoppen worden ingedrukt. De mijne kost 16 seconden. Als je bijvoorbeeld binnen 30 seconden in slaap moet vallen, dan moet je 30 ($26) opschrijven.

In punt 4 en 5 hetzelfde.

6 punt. Op adres $0030 wordt de nulsleutelfamiliecode (Dallas 1-Wire) opgeslagen, gevolgd door het 48-bits nummer en CRC. En dus 50 toetsen achter elkaar.

Installatie, bedieningsfuncties

Het instellen van het apparaat komt neer op het kalibreren van de accuspanningsmeting, zoals hierboven beschreven. Het is ook noodzakelijk om de afwijking van de kloksnelheid gedurende 1 uur te detecteren, de juiste correctiewaarde te berekenen en in te voeren (de procedure wordt beschreven in de bedieningsinstructies).

Het apparaat wordt aangedreven door lithiumbatterij CR2032 (3V) en verbruikt ongeveer 4 µA in de slaapmodus en 5...20 mA in de actieve modus, afhankelijk van de helderheid van de indicator. Bij dagelijks gebruik van vijf minuten actieve modus De batterij gaat ongeveer 2...8 maanden mee, afhankelijk van de helderheid. De horlogekast is verbonden met de minpool van de batterij.

Sleuteluitlezing is getest op de DS1990. Emulatie is getest op METAKOM-intercoms. Onder serienummers van 46 tot 49 (laatste 4) knipperen (alle sleutels worden opgeslagen in EEPROM, ze kunnen worden gewijzigd voordat ze knipperen) universele sleutels voor intercoms. De sleutel geregistreerd onder nummer 49 opende alle METAKOM-intercoms die ik tegenkwam, ik had geen kans om de rest van de universele sleutels te testen, ik nam hun codes van het netwerk.

Afstandsbediening voor camera's is getest op Pentax optio L20- en Nikon D3000-modellen. Canon kon niet ter beoordeling worden verkregen.

De gebruikershandleiding beslaat 13 pagina's en heb ik daarom niet in het artikel opgenomen, maar in een bijlage in pdf-formaat.

Het archief bevat:
Schema in en GIF;
Printplaattekening en rangschikking van elementen in het formaat;
Firmware en broncode in assembler;

Lijst met radio-elementen

Aanduiding Type Denominatie Hoeveelheid OpmerkingWinkelMijn notitieblok
DD1 MK-AVR 8-bits

ATmega168PA

1 PA-AU Naar notitieblok
U2 Temperatuursensor

DS18B20

1 Naar notitieblok
Q1 MOSFET-transistor

2N7002

1 Naar notitieblok
C1, C2 Condensator30 pF2 Naar notitieblok
C3, C4 Condensator0,1 µF2 Naar notitieblok
C5 Elektrolytische condensator47 µF1 Naar notitieblok
R1-R8, R17 Weerstand

100 Ohm

9 Naar notitieblok
R9 Weerstand

10 kOhm

1 Naar notitieblok
R10 Weerstand

8,2 Ohm

1 Naar notitieblok
R11 Weerstand

300 Ohm

1 Naar notitieblok
R12 Weerstand

2 MOhm

1 Naar notitieblok
R13 Weerstand

220 kOhm

1 Naar notitieblok
R14 Weerstand

30 kOhm

1 Naar notitieblok
R15, R19 Weerstand

4,7 kOhm

2 Naar notitieblok
R16 Weerstand

20 kOhm

1

Elektrisch schakelschema

Eén apparaat combineert twee functies: het daadwerkelijk meten van temperatuur en tijd (klok). De weergave wordt afwisselend uitgevoerd en verandert elke tien seconden. Om de klok in te stellen worden twee knoppen gebruikt, vergelijkbaar met een eenvoudige Chinese elektronische klok: de ene is verantwoordelijk voor het selecteren van een parameter, de tweede voor het wijzigen ervan. Het apparaat wordt gevoed vanuit het netwerk met behulp van een constante gestabiliseerde stroombron met een spanning van vijf volt (bord van oplader telefoon).

De temperatuursensor is een DS18B20-chip. Omdat het klokthermometerapparaat geen eigen batterij heeft, zullen de metingen uiteraard verloren gaan als de stroom uitvalt. En zodat dit er niet voor zorgt dat iemand te laat komt voor vitale zaken, is er een interessante "truc": wanneer de stroom wordt ingeschakeld, worden er streepjes op het display weergegeven in plaats van de tijd totdat u op een van de twee instelknoppen drukt.

Het lichaam van de zelfgemaakte temperatuurmeter was een geschikte manchetknopendoos. Het klokthermometerbord zelf en het bord dat uit de telefoonoplader was gehaald, werden erin geplaatst. De DS18B20 sensor wordt op afstand gemaakt en aangesloten via een connector.

Lijst met benodigde onderdelen

  • Atmega8-microcontroller - 1 st.
  • Kwarts 32768 Hz - 1 st.
  • Temperatuursensor DS18B20 - 1 st.
  • Zevensegmentindicator (4 cijfers) - 1 st.
  • SMD-weerstanden maat 0805:
  • 620 Ohm - 8 st.
  • 0 Ohm (jumper) - 1 st.
  • 4,7 kOhm - 1 st.
  • Tactknoppen - 2 st.

Video van het apparaat op YouTube-kanaal