Mikrokontrolltimer for lastkontroll. Enkel timer på PIC16F628A. Ordning og beskrivelse. Visningsmodus for nåværende tid

La oss se hvordan du lager en gjør-det-selv-timer på ATmega8-mikrokontrolleren, selv om koden er ganske enkel å tilpasse også for andre serier AVR-er. En elektronisk tidtaker er riktig enhet på alle områder der det er nødvendig med visse handlinger etter en bestemt tidsperiode.

Timerkontrollen består av bare fire knapper:

- økning i verdien av tallet;

- reduksjon i verdien av tallet;

- start av tidtakeren;

- tilbakestill tidtakeren.

Som en indikator på driften av tidtakeren brukes en lydfrekvensgenerator med en høyttaler. Generatoren vil bli startet ved hjelp av en transistorbryter Q5, som igjen åpnes med et positivt potensial som kommer fra PC2-porten til mikrokontrolleren.

Forenklet timer fungerer som følger. "+" Og "-" knappene stiller inn ønsket antall sekunder; startknappen starter tidtakeren. Når tidtakeren teller ned til , vises et stort potensial på PC2-pinnen til ATmega8-mikrokontrolleren, som åpner Q5. Deretter vil transistorbryteren starte generatoren og en lyd blir hørt i høyttaleren. Timeren tilbakestilles ved å trykke på “reset” -knappen. Lydfrekvensgeneratoren er satt sammen på to transistorer Q6 og Q7 av forskjellige halvlederstrukturer. Du kan gjøre deg kjent med driftsprinsippet og en beskrivelse av kretsen til slike generatorer ved å klikke på.

Algoritmen til tidtakeren på mikrokontrolleren

Timeren vår teller nøyaktig ett sekund på omvendt tid, selv om du kan stille inn hvilken som helst annen tid, for eksempel minutter, timer, hundrelapper av et sekund osv.

For å danne et tidsintervall på ett sekund, bruker vi den første timer-telleren til ATmega8-mikrokontrolleren. Vi definerer alle dens innstillinger i funksjonen start. Først deler vi driftsfrekvensen til mikrokontrolleren 1.000.000 Hz med 64 og får en ny frekvens på 15.625 Hz. Bitene CS10, CS11 og CS12 i TCCR1B-registeret er ansvarlige for dette. Dernest muliggjør vi avbrudd ved en tilfeldighet og skriver det binære tallet som tilsvarer desimalt 15625 til sammenligningsregisteret (eldre og yngste). Deretter tilbakestiller vi telleregisteret TCNT1 og setter WGM12-biten i TCCR1B-registeret til et, noe som får telleregisteret til å tilbakestilles hvis dets nåværende verdi samsvarer med tallet skrevet i sammenligningsregistre.

ugyldig start (ugyldig)

TCCR1B & \u003d ~ (1<

TCCR1B | \u003d (1<

TIMSK | \u003d (1<

OCR1AH \u200b\u200b\u003d 0b00111101;

OCR1AL \u003d 0b000001001; // sammenligningsregister 15625

TCNT1 \u003d 0;

TCCR1B | \u003d (1<

Når tidtakeren teller nøyaktig ett sekund, ringes en avbrudd. I kroppen til avbruddsfunksjonen vil vi redusere verdien på variabelen med en. Når null når den andre utgangen fra port C på mikrokontrolleren, vil det dukke opp et stort potensial, som vil åpne transistorbryteren og starte generatoren, som et resultat av dette vil vi høre en lyd i høyttaleren.

ISR (TIMER1_COMPA_vect)

Z-;

I. KOTOV, Krasnoarmeysk, Donetsk-regionen, Ukraina
  Den foreslåtte enheten kan utføre funksjonene til en timer, termometer og temperaturregulator. Operativ justering lar deg konfigurere den til å utføre disse funksjonene, både i fellesskap og hver for seg. All nødvendig informasjon vises på en tresifret LED-indikator. Når du utviklet enheten, ble oppgavene satt til å minimere den elektriske kretsen, forenkle kontrollprosessen og utvide funksjonaliteten. De ble løst ved bruk av en mikrokontroller og en spesialisert temperatursensor.

Spesifikasjoner i termostatmodus
  Justerbar avstand
  temperatur, ° С .... -55 til +125 Oppløsning ved måling og regulering, ° С:
  i temperaturområdet -9,9 ...- 99,9 ° С ........... 0.1
  i temperaturområdet -55 ...- 10 ° С og + 100 ...
  +125 ° С ..................... 1
  Målefeil, ° С, ikke mer enn:
  i temperaturområdet -10 ... + 85 ° С ............. ± 1
  i temperaturområdet -55 ...- 10 ° С og + 85 ...
  +125 ° С .................... ± 2
  Intervall for innstilling av hysterese, ° С ................ ± 0 ... 50
  Den øvre grensen for installasjonen av reguleringsintervallet, ° C ................- 55 ... + 125
  Den nedre grensen for å stille reguleringsintervallet, ° C ................- 55 ... + 125
  Justeringsintervall
  termometeravlesninger, ° С ...... ± 2
  Temperaturkontrolleren fungerer både i varme- og kjølemodus. I tillegg kan du stille inn varigheten for å opprettholde temperaturen i området 1-999 minutter eller stoppe termostaten i samme tidsperiode. I prosessen beregnes den totale varigheten for å koble belastningen til nettverket. Enheten er designet for å fungere sammen med en DS18B20 temperatursensor og oppdager automatisk ID-koden.
  Spesifikasjoner i timermodus
  Tidsintervaller
  sekunder ................. 1 ... 999
  minutter .................. 1 ... 999
  timer .................. 1 ... 999
  Nedtellingsanvisninger ....................... direkte
  eller omvendt
  Timeren gir en forsinkelse av både å slå på og av lasten.
Enhetsdiagrammet er vist på fig. 1.


  Alle hovedfunksjoner tilordnes DD1-mikrokontrolleren, moduskontroll og datainnføring utføres ved hjelp av SB1-SB3-knappene, og informasjonen vises på en tresifret LED-indikator HG1. Strøm tilføres fra nettverket, som er koblet til terminalene 1 og 2 i ХТ1-blokken. En kraftnode er satt sammen på transformatoren T1, diodebroen VD1, stabilisatoren DA1 og utjevningskondensatorene C2 og C4. Motstand R1 øker påliteligheten til enheten ved høy linjespenning. Men hvis ønskelig kan det utelukkes ved å installere en trådhopper på brettet i stedet for det.
  Lasten slås på eller av ved hjelp av reléet K1, hvis kontakter K1.1 normalt er åpne og koblet til terminalene 3 og 4 i ХТ1-blokken. DS18B20 temperatursensor er koblet til terminalene 5 og 6. En to-leder sensortilkoblingskrets påføres: terminal 2 er koblet til terminal 6, terminalene 1 og 3 er koblet til terminal 5. Dynamisk indikasjon med en symboloppdateringsperiode på omtrent 20 ms brukes til å vise informasjon på HG1-indikatoren.
  Betjeningskontroll og parameterinnstilling utføres ved hjelp av tre knapper SB1 "<" (уменьшение), SB2 ">"(økning) og SB3" ˾ "(inngang). Avhengig av forhåndsinnstillingen, kan enheten fungere som en universell temperaturregulator eller fungere som en timer. For å velge et funksjonelt formål, trykk på SB3-knappen og hold den, bruk forsyningsspenningen. På indikatoren HG1 det gjeldende installasjonsnummeret vises (fig. 2).

  SB1 og SB2 knappene stiller inn driftsmodus: 1 - universell temperaturregulator (sett som standard), 2 - timer. For å bekrefte, trykk på SB3-knappen. Endringer trer i kraft etter neste inkludering.
  Når enheten fungerer som en termostat, er temperatursensoren plassert et sted der det er nødvendig å opprettholde en gitt temperatur. Etter at enheten er koblet til nettverket, løper HELLO-testmeldingen “på” på indikatoren - temperaturkontrolleren er klar til bruk. I driftsmodus vises kontinuerlig gjeldende temperaturverdi på HG1-indikatoren. At lasten for øyeblikket er slått på, indikeres med et blinkende punkt i lav rekkefølge.
Temperaturen stilles inn ved hjelp av knappene SB1 og SB2, som standard er den 30 ° C. I det øyeblikket du trykker på en av disse knappene, vises den blinkende verdien for den innstilte temperaturen på HG1-indikatoren, og etter 5 sekunder etter siste trykk, går termostaten tilbake til driftsmodus. Alle innlagte data lagres i ikke-flyktig minne på mikrokontrolleren. Når du trykker og holder inne SB1- og SB2-knappene, endres den valgte parameteren raskere. Avhengig av hvor lenge du trykker på, byttes tre av endringshastigheten suksessivt.


  For å stille inn andre termostatinnstillinger, må du gå inn i menyen. For å gjøre dette, trykk på SB3-knappen. Endre innstillingene i samsvar med fig. 3. 5 sekunder etter siste trykk på en knapp, går enheten i driftsmodus, og alle innstillinger lagres i ikke-flyktig minne. Følgende er en beskrivelse av tilgjengelige alternativer.

HGR - hysterese. Parameter der temperaturforskjellen mellom belastning av og på settes. Det innstilte nummeret legges til den innstilte temperaturen for å slå på og trekke fra for å slå av. Hvis for eksempel en temperatur på 30,0 ° C er innstilt, og en GGR er 4,5, vil lasten i varmemodus kobles fra ved en temperatur på 30,0 + 4,5 \u003d 34,5 ° C, og på på 30,0 - 4,5 \u003d 25,5 ° C Hvis termostaten er i avkjølingsmodus, vil avstengning skje ved en temperatur på 25,5 ° C, og slå på ved 34,5 ° C. Hvis du setter HGR til 0, vil indikatoren vises
  GR-inskripsjon og enheten vil fungere som et normalt termometer, den gjeldende temperaturen vises på indikatoren, og lasten kobles fra hele tiden. Som standard er verdien satt til 3.0.
  VLOOKUP - øvre temperaturgrense. Denne parameteren bestemmer den maksimale mulige verdien for den innstilte temperaturen. Hvis denne grensen overskrides, uavhengig av andre innstillinger, kobles belastningen fra. Som standard er VLOOKUP satt til 80,0.
  NPR - nedre temperaturgrense. Denne parameteren bestemmer minimumsverdien for den innstilte temperaturen. Hvis temperaturen synker under NPR, uavhengig av andre innstillinger, kobles også belastningen. Verdien av NPR er alltid mindre enn eller lik VLOOKUP. Som standard er NPR satt til 10,0.
  VRV - varigheten av tiden (i minutter). Denne parameteren angir tidsintervallet som den innstilte temperaturen opprettholdes. På slutten av lasten kobles fra. sign
utløpet av det innstilte tidsintervallet er en permanent lysende prikk i indikatorens laveste siffer. Timeren startes på nytt ved å trykke på SB3-knappen. Hvis VRV er satt til 0, vises “---” -bildet på indikatoren, og timeren deltar ikke i driften av termostaten. Som standard er tidtakeren deaktivert. VRO - varighet av avspasering. Parameteren stiller inn tidsintervallet (i minutter) hvor enheten er i av-tilstand, beregnet for bruk sammen med VRV-parameteren. På slutten av det innstilte tidsintervallet går enheten tilbake til. Hvis du for eksempel stiller inn verdien til VRV 90 og BPO 60, vil temperaturkontrolleren syklisk opprettholde temperaturen i 90 minutter, og deretter slå seg av i 60 minutter og slå på igjen i 90 minutter, osv. Hvis BPO er 0, vil bildet " --- ", og timeren deltar ikke i termostaten. Som standard er BPO satt til null (timer av).
  PAR - driftsparametere. PAR-verdien bestemmer termostatens driftsmodus: oppvarming eller kjøling. Når du arbeider i forbindelse med en varmeovn i en dampgenerator, er det nødvendig å installere ON, mens du arbeider i forbindelse med et kjøligere - OS. Som standard er PAR satt til ON (drift med en varmeapparat).
  POP - korreksjon av indikasjoner. Denne parameteren lar deg justere målingene av termometeret og om nødvendig oppnå (ved bruk av referansetermometeret) målefeil under 0,1 ° C. POP-verdien legges til gjeldende temperaturavlesning. Normalt er det ikke nødvendig å korrigere målingene, da temperatursensoren DS18B20 har en fabrikkkalibrering og veldig høy måle nøyaktighet. Som standard har EPP en verdi på 0,0 (ingen justering).
  RAB - driftstid for varmeren (eller kjøleren). I denne modusen vises tiden (i timer) der lasten er slått på. Dette lar deg estimere strømforbruket. For eksempel, hvis de månedlige RAB-målingene er 250, og effekten til varmeelementet er 0,5 kW, er energiforbruket 125 kW-h.
LEG - identifikasjonsnummer (ID-kode) til temperatursensoren. DS18B20 64-biters ID vises i heksadesimal format. For eksempel 28A2C86801000017. (det siste sifferet er merket med desimal). Visning av nummeret gjøres ved å trykke på knappene SB1, SB2 og kan være nødvendig for å bestemme hvilken av sensorene som er tilkoblet. Hvis tilkoblingen med sensoren er brutt, eller av en eller annen grunn ikke koden kunne leses, vises meldingen Err (feil).
  Enheten oppdager automatisk nærvær og brukbarhet av temperatursensoren. Hvis kretsen er ødelagt eller sensoren mangler, vises HI på indikatoren, og Lo hvis kretsen er kortsluttet eller feil tilkoblet. I tilfelle funksjonsfeil slås lasten automatisk av. Ledningen som kobler sensoren til enheten må ha et tverrsnitt på minst 0,5 mm2 og en lengde på ikke mer enn 10 m. Informasjon blir lest av temperatursensoren med en periode på 1 s og sammenlignet med den forrige verdien. Hvis temperaturen øker over 30 ° C / s eller temperaturen faller over 20 ° C / s, tolkes situasjonen som nødstilfelle og belastningen slås av.
  Hvis du vil se og endre innstillingene når du arbeider i timer-modus, må du gå inn i menyen. For å gjøre dette, trykk på SB3-knappen. Installasjonen utføres i samsvar med fig. 4

  5 sekunder etter siste trykk på en knapp, går enheten i driftsmodus, og alle innstillinger lagres i ikke-flyktig minne. Etter å ha kommet inn i menyen, vises gjeldende timerinnstilling (indikatoren blinker). SB1 og SB2 knappene setter tidsintervallet i området 000 ... 999 (standardverdien er 100). Hvis du stiller inn 000, blokkeres timeren, og i driftsmodus vil indikatoren vise meldingen “---”.
  Etter å ha stilt inn den digitale verdien, trykk på SB3-knappen, og så kan du gjøre det
  angi tidsenheter. Det kan være SEC sekunder (standard), Ml minutter eller HOU timer.
  Deretter angir du driftsmodusen til timeren. Når du velger OH, etter at det innstilte tidsintervallet er gått, vil lasten kobles til, ved å velge AV betyr at lasten vil være
deaktivert. Valget av retningen for telleren på timeren er det motsatte når du velger OBS (angitt som standard) og det direkte når du velger er ORS. Mens tidtakeren kjører, viser indikatoren klokkeslettet. Timeren startes ved å trykke på SB2-knappen. Hvis det er satt en direkte telling, endres avlesningene fra null til maksimalverdi, for eksempel 0, 1, 2 ... etc., og hvis det motsatte er fra maksimalverdien til , for eksempel 100, 99, 98 ... og t. d.
  Timeren stoppes ved å bruke SB1-knappen. Når du klikker på den igjen, vil den gå tilbake til sin opprinnelige tilstand. Hvis innstillingen for å slå på er valgt, vil slutten av innstilt intervall være tilkoblet, og meldingen OH vises på indikatoren, og hvis innstillingen for å slå av, AV og lasten vil bli koblet fra. Lastens nåværende tilstand kan bedømmes med desimaltegnet i indikatorens laveste siffer. Det lyser - lasten er på, av - av. Ved innstilling av minutter eller timer, blinker punktet hvert sekund hvis belastningen er av, og slukkes kort hvis den er slått på.
  For å øke påliteligheten til enheten brukes et antall programvaretriks. For det første gjelder det arbeidet med EEPROM til mikrokontrolleren. Hver parameter i ikke-flyktig minne er duplisert i fire celler. Lesing og skriving gjennomføres blokk for blokk. Etter hver lesing blir innholdet i de fire cellene sammenlignet med hverandre. Hvis det i en eller to av dem skiller seg fra de andre, gjenopprettes den ene verdien av alle cellene i blokken til de der den er identisk.
  De fleste deler er montert på to trykte kretskort laget av foliefiberglass, hvis tegninger er vist på fig. 5 og fig. 6.


  Permanente motstander for overflatemontering RN1-12 brukes, resten er MLT, C2-23. Oksidkondensatorer - K50-35 eller importert, resten - K10-17. Reléer - JZC-22F3SC20DDC12V, knapper - DTST-6. Transformatoren må sørge for en spenning på 12 V ved utgangen til likeretteren med en strøm på opptil 150 mA XT1 er en en-rads terminalblokk i 305-serien. Modul_v2.hex-filen er beregnet for programmering av mikrokontrolleren.
  Platene er installert i en plastkasse (fig. 7).

  Utseendet til den samlede anordning er vist på fig. 8.

  Resistor R2 ble designet for å beskytte mikrokontrolleren under utviklingen av strukturen, men etter å ha laget flere kopier av enhetene, ble den ekskludert og en trådhopper ble installert på brettet i stedet.
For å forenkle er det mulig å ekskludere strømbegrensende motstander R4-R11 i styresegmentene til HG1 indikatorsegmentene. I dette tilfellet erstattes de av ledningsstykker, modul_v1.hex-filen skal lastes inn i mikrokontrolleren. For å utelukke strømoverbelastningen til indikatoren og mikrokontrolleren, er spenningen for hver utladning av indikatoren 0,3 ms, slik at de fungerer med den nominelle gjennomsnittsstrømmen. Lysstyrken til indikatorene med et annet antall aktiverte elementer varierer litt på grunn av ujevn fordeling av strøm og forskjellige spenningsfall på utgangstransistorene til portene til mikrokontrolleren. Indikatoren med en felles katode kan erstattes med en lignende, men med en vanlig anode. For å gjøre dette, slett linjen i begynnelsen av programmet modul_v1 .asm (modul_v2.asm)
  #definere _COMMON_CATODE_ og kompilere programmet på nytt.
  Mikrokontroller-programmer nedlasting
  Ved programmering er følgende mikrokontrollkonfigurasjon angitt: BODLEVEL \u003d 1; BODEN \u003d 0; SUT1 \u003d 1; SUTO \u003d 1; CKSEL3 \u003d 1; CKSEL2 \u003d 1; CKSEL1 \u003d 1; CKSELO \u003d 1; RSTDISBL \u003d 1; WDTON \u003d 1; SPIEN \u003d 0; KORTE \u003d 0; EESAVE \u003d 0; BOOTSZ1 \u003d 1; BOOTSZO \u003d 1;
  BOOTRST \u003d 1.
  Fra redaksjonen. Teksten og kodene til mikrokontrollerprogrammene ligger på FTP-serveren vår på .
  Radio nr. 3 2012

Denne tidskretsen på mikrokontrolleren PIC16F628A er lånt fra et godt portugisisk elektronikksted. Mikrokontrolleren er klokket fra en intern generator, som kan betraktes som ganske nøyaktig i et gitt øyeblikk, siden pinnene 15 og 16 forblir fri, kan en ekstern kvartsresonator brukes for enda større nøyaktighet i drift.


Det er tre knapper i timeren for å kontrollere enheten: “START / STOP”, “MIN” og “SEC”

START / STOPP  - for å starte og pause tidtakeren.
«MIN»  - for å stille tidsintervallet i minutter. Du kan stille fra 0 til 99.
«SEC»  - også, men for innstilling av sekunder. Et sekund er også satt fra 0 til 59.
  Ved å trykke på “MIN” og “SEC” -knappene samtidig, tilbakestilles timer-kretsen under drift.

Når den innstilte tiden på tidtakeren er brukt opp, høres et pip, og lysdioden lyser. En elektromagnetisk summer brukes som lydutsender. Etter at når du trykker på knappen, blir tidtakeren tilbakestilt og LED-en slukker.

På det tidspunktet tidtakeren teller ned, er det et høyt nivå ved pinne 13, og når nedtellingstiden er slutt, vil timeren stille et lavt logisk nivå. Denne konklusjonen kan brukes til å kontrollere enhver aktuator. Kretsen drives via en stabilisert strømkilde.


Jumper J1 brukes til å kalibrere tidtakeren. Når den er låst, går den i programmeringsmodus. Ved å bruke "MIN" og "SEC" knappene, kan du endre verdien på den interne parameteren, som bremser timeren eller reduserer den. Denne verdien er lagret i EEPROM til mikrokontrolleren. Hvis du i programmeringsmodus, trykker du på "START / STOPP" -knappen, og denne parameteren tilbakestilles til standardinnstillingene.

Enkel timer på pic16f630

Timeren kan stilles til et tidsintervall fra ett minutt til 21 timer i diskrete trinn per minutt. Designet har 12 kontrollbrytere, som hver har sin egen eksponeringstid. Siden mikrokontrolleren fungerer fra sin egen generator, er feilen i nedtellingen ganske liten, ikke mer enn 30 sekunder i timen.

Ved blinking må MK Jp1 være deaktivert. Hvis du ikke planlegger å endre tidsinnstillingene ofte, kan du bruke hoppere i stedet for brytere. Firmware, kilde og prosjekt i Proteus kan tas på lenken over

  Del i:
Blant de mange automatiske enhetene som har blitt en del av vår hverdag, inntar tidtakere et viktig sted - enheter som gir et lyd- eller lyssignal eller slår på (slår av) et elektrisk apparat etter en spesifikk tidsperiode. I dag er de utstyrt med mange moderne husholdningsapparater - dampkomfyrer, mikrobølgeovner, vaskemaskiner, elektriske ovner, radioer, TV-apparater, etc. Vel, hvis du har apparater hjemme som ikke har en innebygd tidsur, men du vil slå dem av eller på etter en viss tid, spiller det ingen rolle, tidtakeren er ikke vanskelig å lage på egen hånd. Enheten som tilbys lesernes oppmerksomhet, lar deg telle tidsforsinkelsen fra 1 s til 99 t 59 min 59 s. Dens grunnlag (se diagrammet på figuren) er PIC16F84A (DD1) mikrokontroller, populær blant radioamatører. I tillegg til det inneholder tidtakeren en K176ID2 (DD2) -brikke - en binær kode til syv-element, firesifret digital LED-indikator HG1 og spenningsregulator for strømforsyning DA1. Etter å ha slått på strømmen, leser mikrokontrolleren informasjon om tidsinnstillingene (om hvordan det skriv til EEPROM, det vil bli sagt nedenfor) og starter nedtellingen. Når du slår på enheten for første gang, settes automatisk en tidsforsinkelse på 2 min 59 s (på HG1-indikatorskjermen - sifre 2.59; ubetydelige nuller vises ikke i de høyere sifrene). Den nødvendige lukkerhastigheten legges inn med SB1 og SB2 knappene. Dessuten, hvis det er mer enn 1 time, vises timene og minuttene på indikatorskjermen, og hvis det er mindre, minutter og sekunder. Element H i den andre kategorien av indikatoren blinker med en frekvens på 1 Hz, som en delende kolon på en vanlig elektronisk klokke (den slutter å blinke i siste øyeblikk av eksponeringen). Fra starten av nedtellingen setter timerutgangen (linjen til RA2-porten til mikrokontrolleren DD1) et lavt logisk nivå, og aktuatoren som er koblet til den på transistoren VT1 og det elektromagnetiske reléet K1 er i standby-modus. På slutten av en spesifikk tidsperiode erstattes det lave logiske nivået ved utgangen fra timeren med et høyt nivå, transistoren VT1 åpnes og reléet K1 med kontaktene (ikke vist i diagrammet) slås på eller av den kontrollerte enheten (lydfrekvensgenerator, elektrisk apparat, TV, etc.). Dette utgangsspenningsnivået opprettholdes til timerkraften er slått av eller SB2-knappen trykkes inn (den spiller rollen som en tilbakestillingsknapp i dette tilfellet). For å endre lukkerhastigheten, trykk på SB2-knappen under telling. Samtidig begynner timenes sifre å blinke. Etter å ha stilt inn ønsket tid ved å bruke SB1-knappen (fra 00 til 99 timer), trykker du på SB2-knappen igjen, fikser antall timer og setter tidtakeren i modus for minuttinnstilling. Den nødvendige verdien blir lagt inn av den samme knappen SB1, og trykk deretter på knappen SB2 igjen, til innstillingen av sekunder. I denne modusen begynner elementet H i den andre kategorien til indikatoren HG1 å blinke (når du innstiller antall timer og minutter den ikke tente). Neste trykk på SB2-knappen vil registrere alle innstillingene i EEPROM og starte mikrokontrolleren på nytt. Som et resultat vises timer, minutter og sekunder på indikatorskjermen, hvoretter timeren vil fungere. Timerdelene er montert på en brødplate eller et kretskort utviklet uavhengig. Motstand - MLT, kondensatorer C1, C4 - K50-35 eller lignende importert, C2, SZ - keramisk KD-1, KM med normalisert TKE, C5-KM, K10-17. Relé K1-REN34 av utførelse ХП4.500.030-01 (viklingsmotstand -60 ... .740 m, giftig arbeid - 100 mA). For å unngå skade på mikrokretsene DD1 og DD2 under lodding, anbefales det å installere stikkontakter med tilsvarende antall stikkontakter på brettet (18 for DD1 og 16 for DD2). En ustabilisert spenningskilde på 8-10 V med en utgangsstrøm på minst 200 mA brukes til å drive timeren. I tillegg til mikrokontrolleren PIC16F84A som er angitt i diagrammet, kan PIC16F84 brukes i enheten uten endringer i programmet. Det er tillatt å erstatte CA56-12GWA-indikatoren med en annen LED-indikator av dynamisk type med en felles anode og et antall utladninger på minst fire (det kan ha en annen pinneoppdrag, som bør tas i betraktning under installasjonen). Transistoren KT815A kan erstattes av en hvilken som helst silisium n-p-p-struktur med en grenseverdi for kollektorstrømmen på minst reléets driftsstrøm. I stedet for REN34-reléet, kan du bruke hvilken som helst annen som pålitelig fungerer med en spenning på 8-10 V, med kontakter designet for å skifte vekselstrøm på 220 V til strømforsyningen som forbrukes av belastningen. Programmet som mikrokontrolleren fungerer svarer til tilstanden til kontaktene på SB2-knappen i øyeblikket av åpningen, t dvs. etter utgivelsen. Denne logikken opprettholdes i alle driftsmodus. Programmet oppdager en endring i tilstanden til kontaktene på SB1-knappen når de stenges. I tidsinnstillingsmodus, vil du trykke på denne knappen en gang øke verdien på gjeldende utladning med en, og holde den inne i mer enn 1 sek, tvinger programmet til å bytte til modus for automatisk å øke utladningsverdien to ganger i sekundet. Ved å trykke på denne knappen i tellemodus og holde den i 1 sekund fører det til at uavhengig av tidsverdi i sifrene på timer, minutter og sekunder vises på indikatorskjermen. Etter å ha sluppet knappen gjenopprettes programmets operasjonslogikk, det vil si at den blir den samme som den var før den ble trykket. Det skal bemerkes at timeren “skynder” seg med omtrent 1 sekund i timen, så hvis du trenger økt nøyaktighet av "flyttingen", så når du angir lukkerhastigheten den nødvendige tidsverdien må økes med antall sekunder som tilsvarer antall timer. ARKIV: Last ned seksjon:

Bilde fra Novelty Kitchen Timers


I amatørradiopraksis er ofte en tidtaker nødvendig: eksponering for fotoresist, eksponering etter rulling, etter eksponering, matlaging, dumplings, egg (jeg koker ofte alt vannet). Alternativer fra Google passet meg ikke. Jeg ønsket å lage en tidtaker der det skulle være 12 knapper og en 4-bits LED-indikator - jeg brukte rødt for ikke å lyse opp fotoresisten. For dette designet brukte jeg mikrokontrolleren ATMEL AT89C2051 som lå i søppelkassene i lang tid. Drevet av ett batteri.

Og nå er designet klart. Møt: en brutal skin radio-timer med en holdetid på fra 1 sekund til 100 minutter og i trinn på 1 sekund eller fra 1 minutt til 100 timer i trinn på 1 minutt.

For rundt 10 år siden utviklet jeg en tidtaker på LCD-skjermen og den billige PIC12C508-mikrokontrolleren (Radio Journal No. 5, 2004). Han er god for alle, siden har han aldri en gang byttet batterier. Med mindre det ikke er bakgrunnsbelysning, og knappene i det designet ble klokket, fastkjøres de. Og jeg bestemte meg for ikke å oppgradere den gamle utviklingen, men å lage en ny.

Programmet bruker et avbrudd fra TIMER0, som er inkludert i "2" -modus, d.v.s. til 8-biters timer-modus med autoload. Når tidtakeren blir avbrutt, blir indikatorkatodene slått av og data blir sendt til serieporten for å sende ut neste indikatorbit.
Etter at overføringen er fullført, avbrytes den serielle porten, der den tilsvarende indikatorkatoden er slått på og tastaturet blir spurt.

Programmet tar litt mer enn en kilobyte, skrevet i KEIL-miljøet. Kildeteksten og firmwarefilen er vedlagt.

Hvis du holder "1" -knappen nede mens tidtakeren er på, vil timeren blinke på de to ekstreme punktene og slå på på timer og minutter. dvs. å sette klokken til 01.00 vil allerede bety en time. Det er bare nødvendig å ta hensyn til at når det drives av ett batteri, vil ladningen vare maksimalt 10 timer, følger det at for lange eksponeringer er det nødvendig å drive timeren enten fra kraftigere batterier eller fra nettverket.

Siden designet mitt ble satt sammen på knapper med Hall-sensorer, sjekket jeg ikke tilkoblingsskjemaet for de mekaniske knappene og indikatoren med en vanlig anode. Hvis du støter på problemer under implementeringen, skriv, så hjelper jeg det.

Foto av montert tidtaker.


Bakfra med et utskjæring for batteriet, dette tilfellet uten batterirom.

  video

En kort video, på den blinker indikatoren på alle måter - dette er hjerteslag for kamerasveip og dynamisk indikasjon, den er ikke synlig med øynene, oppdateringstiden for indikatoren er 20 ms.
Video med denne oppløsningen, fordi huset er en forstad og Internett er 3G.

  filer

KEIL kildekode og firmwarefil for indikatorer med en felles katode og en vanlig anode.
🕗 05/04/14 ⚖️ 7.15 Kb ⇣ 27 Hallo leser!  Jeg heter Igor, jeg er 45, jeg er en sibirsk og en ivrig amatørelektronikkingeniør. Jeg fant opp, opprettet og vedlikeholdt dette fantastiske nettstedet siden 2006.
I mer enn 10 år eksisterer magasinet bare for min regning.

Bra! Freebie er over. Hvis du vil ha filer og nyttige artikler, hjelp meg!