Lek med håndveggklokke: 14 trinn
Lek med håndveggklokke: 14 trinn
Anonim
Image
Image
Arbeidsprinsipp
Arbeidsprinsipp

Elektronisk håndveggklokke (kommersiell merkekvarts) er i dag ikke noe spesielt. Den kan kjøpes i mange butikker. I noen av dem er de ekstremt billige; med pris ca € 2 (50CZK). Den lave prisen kan være motivasjon til å se nærmere på dem. Da kjente jeg igjen, de kan være interessante leker for nybegynnere innen elektronikk, som ikke har så mange ressurser og som hovedsakelig er interessert i programmering. Men vil gjerne presentere egen utvikling for andre. Fordi billig veggklokke er veldig tolerant overfor eksperimenter og nybegynnerforsøk, bestemte jeg meg for å skrive denne artikkelen, der jeg vil presentere grunnleggende ideer.

Trinn 1: Arbeidsprinsipp

Arbeidsprinsipp
Arbeidsprinsipp
Arbeidsprinsipp
Arbeidsprinsipp

Det er lett å kjenne igjen den klokken ved bruk av en slags trinnmotor for bevegelse. Den som allerede bryter fra hverandre noen klokker innså at det bare er en spole i stedet for to i vanlig trinnmotor. I dette tilfellet snakker vi om "enfaset" eller "enpolet" trinnmotor. (Dette navnet brukes ikke så ofte, det er stort sett analog avledning for merking som brukes for andre fullstap stepper motorer). Den som allerede begynner å tenke på arbeidsprinsippet må stille spørsmål, hvordan det er mulig, at motoren alltid roterer i riktig retning. For arbeidsprinsippbeskrivelse er nyttig følgende bilde, som viser eldre typer motorer.

På det første bildet er en spole med terminaler A og B, grå stator og rødblå rotor synlig. Rotor er laget av permanent magnet, det er grunnen til at den er fargemerket, for å være synlig, i hvilken retning magnetiseres (den er ikke så avgjørende, hvilken pol er nord og hva er sør). På stator kan du se to "spor" nær rotoren. De er svært avgjørende for arbeidsprinsippet. Motoren fungerer i fire trinn. Vi vil beskrive hvert trinn ved hjelp av fire bilder.

Under første trinn (andre bilde) blir motoren aktivert, at terminal A er koblet til positiv pol og terminal B er koblet til negativ pol. Det lager magnetisk fluks, for eksempel i pilens retning. Rotoren stopper i posisjon, at posisjonen tilsvarer magnetisk flux.

Andre trinn følger etter at strømmen er frakoblet. Deretter stoppes magnetfluksen i statoren, og magneten har en tendens til å rotere til posisjon, polarisasjonen er i retning av maksimalt volum magnetisk mykt materiale av statoren. Og her er avgjørende de to sporene. De peker på liten avvik for maksimal volum. Deretter roteres rotoren litt med klokken. Som vist på bilde 3.

Neste trinn (fjerde bilde) er med spenning koblet omvendt polaritet (terminal A til negativ pol, terminal B til positiv pol). Det betyr at magneten i rotoren vil rotere i retning av magnetfeltet med spole. Rotor bruker korteste retning, det vil si igjen med klokken.

Siste (fjerde) trinn (femte bilde) er det samme som andre. Motoren er uten spenning igjen. Bare en forskjell er at magnetens utgangsposisjon er motsatt, men rotoren vil igjen bevege seg i retning av maksimalt materialvolum. Det er igjen posisjon litt med klokken.

Det er hele syklusen, første trinn følger igjen. For motorisk bevegelse er trinn to og fire forstått som stabile. Deretter overføres den mekanisk til overføringshastigheten med girkasse 1:30 til posisjonen til den andre klokken.

Trinn 2: Arbeidsprinsipp Forts

Arbeidsprinsipp Forts
Arbeidsprinsipp Forts
Arbeidsprinsipp Forts
Arbeidsprinsipp Forts
Arbeidsprinsipp Forts
Arbeidsprinsipp Forts
Arbeidsprinsipp Forts
Arbeidsprinsipp Forts

Figurene viser spenningsbølgeform på motorklemmer. Tall betyr alle sekunder. I virkeligheten er pulser mye mindre sammenlignet med mellomrom. De handler om millisekunder.

Trinn 3: Praktisk demontering 1

Praktisk demontering 1
Praktisk demontering 1

Jeg brukte en av de billigste veggklokkene på markedet for praktisk demontering. De har få fordeler. Den ene er at prisen er så lav at vi kan kjøpe få av dem til eksperimenter. Fordi produksjonen er sterkt prisorientert, inneholder den ingen kompliserte smarte løsninger, så vel som ingen kompliserte skruer. I virkeligheten inneholder de ingen skruer, bare plastikklåser. Vi trenger bare minimumsverktøy. For eksempel trenger vi bare skrutrekker for å stikke ut disse låsene.

For demontering av veggklokke trenger vi en flat skrutrekker (eller annen stikkpinne), klesklype og arbeidsmatte med hevede kanter (det er ikke obligatorisk, men gjør letingen etter hjul og andre små deler lettere).

Trinn 4: Praktisk demontering 2

Praktisk demontering 2
Praktisk demontering 2
Praktisk demontering 2
Praktisk demontering 2
Praktisk demontering 2
Praktisk demontering 2
Praktisk demontering 2
Praktisk demontering 2

På baksiden av veggklokken finner du tre låser. To øvre i posisjon nummer 2 og 10 kan låses opp og dekkglass kan åpnes Når glasset er åpent, er det mulig å trekke av klokkehender. Det er ikke nødvendig å markere posisjonen til dem. Vi vil alltid sette dem tilbake til posisjon 12:00:00 Når klokkeviserne er av, kan vi demontere klokkebevegelsen. Den har to låser (i posisjon 6 og 12). Det anbefales å trekke bevegelsen ut så rett som mulig, ellers kan bevegelsen sette seg fast.

Trinn 5: Praktisk demontering 3

Praktisk demontering 3
Praktisk demontering 3
Praktisk demontering 3
Praktisk demontering 3
Praktisk demontering 3
Praktisk demontering 3

Da er det mulig å åpne bevegelse. Den har tre låser. to på stillinger 3 og 9 timer og deretter tredje på 6 timer. Når den åpnes, er det nok å fjerne gjennomsiktig tannhjul mellom motor og girkasse og deretter tannhjul, som er forbundet med motorens rotor.

Trinn 6: Praktisk demontering 4

Praktisk demontering 4
Praktisk demontering 4
Praktisk demontering 4
Praktisk demontering 4

Motorspole og stator holder bare på en lås (etter 12 timer). Den holder ikke på noen strømskinner, den gjelder kun for strømskinner ved å trykke, så er fjerning ikke komplisert. Spolen er gjenget på statoren uten noen holder. Det kan lett tas av.

Trinn 7: Praktisk demontering 5

Praktisk demontering 5
Praktisk demontering 5
Praktisk demontering 5
Praktisk demontering 5
Praktisk demontering 5
Praktisk demontering 5
Praktisk demontering 5
Praktisk demontering 5

På undersiden av spolen er limt et lite kretskort som inneholder en COB (Chip on Board) med seks utganger. To er for strøm, og de avsluttes på større firkantputer ombord for påføring av strømskinner. to utganger er koblet til krystall. Forresten, krystallet er 32768Hz og kan avloddes for fremtidig bruk. De to siste utgangene er koblet til spolen. Jeg fant det som mer trygt å kutte av spor om bord og loddetråder til eksisterende pads om bord. Når jeg prøvde å løsne spolen og koble ledningen direkte til spolen, river jeg alltid av spoletråden eller ødelegger spolen. Lodding av nye ledninger til bord er en av mulighetene. La oss si det mer primitivt. Mer kreativ metode er å koble spolen til strømputer og beholde strømskinner for tilkobling til batteriboks. Deretter kan elektronikk legges inne i batteriboksen.

Trinn 8: Praktisk demontering 6

Praktisk demontering 6
Praktisk demontering 6
Praktisk demontering 6
Praktisk demontering 6

Kvaliteten på lodding kan kontrolleres ved hjelp av ohmmeter. Spole har resistivitet på omtrent 200Ω. Når alt er i orden, monterer vi veggklokken tilbake. Jeg kaster vanligvis ut strømskinner, så har jeg mer plass til de nye ledningene mine. Bilder tas før strømskinner kastes. Jeg glemmer å ta neste bilde når de er fjernet.

Når jeg er ferdig med å fullføre bevegelsen, tester jeg den ved å bruke sekundviseren. Jeg legger hånden til akselen og kobler til litt strøm (jeg brukte CR2032 myntbatteri, men AA 1, 5V kan også brukes). Bare koble strømmen i en polaritet til ledninger og deretter igjen med motsatt polaritet. Klokken må krysse, og hånden skal bevege seg med ett sekund. Når du har problemer med å fullføre bevegelsen tilbake, fordi ledninger tar mer plass, roterer du bare spolemyren på motsatt side. Når den ikke har brukt strømskinner, har den ingen effekt på å klokke bevegelse. Som det allerede ble sagt, må du sette dem til å peke til 12:00:00 når du legger hendene tilbake. Den skal ha riktig avstand mellom time- og minuttviseren.

Trinn 9: Eksempel på bruk av veggklokke

Flertallet av enkle eksempler som fokuserer på visning av tid, men med forskjellige modifikasjoner. Veldig populær er modifikasjon som kalles "Vetinari Clock". Peker på Terry Pratchett -boken, hvor herren Vetinari har veggklokke i venterommet sitt, den tikkende uregelmessige. Denne uregelmessigheten forstyrrer ventende mennesker. Den andre populære applikasjonen er "sinusklokke". Det betyr klokke, som akselererer og bremser ut fra sinuskurven, da har folk følelsen, de seiler på bølger. en av mine favoritter er "lunsjtid". Denne endringen betyr at klokken går litt raskere i tid mellom 11 til 12 timer (0,8 sek), for å spise lunsj tidligere; og litt tregere i lunsjtiden mellom 12 til 13 timer (1, 2 sek), for å ha litt mer tid til lunsj og gjøre opp for tapt tid.

For de fleste av disse modifikasjonene er nok til å bruke den enkleste prosessoren, ved bruk av arbeidsfrekvens 32768Hz. Denne frekvensen er veldig populær blant klokkemakere, fordi det er lett å lage krystall med denne frekvensen, og det kan være enkelt binært delt til komplette sekunder. Det har to fordeler med å bruke denne frekvensen for prosessor: vi kan enkelt resirkulere krystall fra klokke; og prosessorer har vanligvis minimalt forbruk på denne frekvensen. Forbruk er noe vi løser så ofte når vi spiller med veggklokke. Spesielt for å kunne slå strøm fra det minste batteriet, så lenge som mulig. Som det allerede ble nevnt, har spolen resistivitet 200Ω og er designet for cca 1, 5V (ett AA -batteri). De billigste prosessorene jobber vanligvis med litt større spenning, men med to batterier (3V) som fungerer alle sammen. En av de billigste prosessorene på markedet vårt er Microchip PIC12F629, eller veldig populære Arduino -moduler. Deretter vil vi vise hvordan du bruker begge plattformene.

Trinn 10: Eksempel på bruk av veggklokke PIC

Eksempel på bruk av veggklokke PIC
Eksempel på bruk av veggklokke PIC
Eksempel på bruk av veggklokke PIC
Eksempel på bruk av veggklokke PIC

Prosessor PIC12F629 har driftsspenning 2.0V - 5.5V. Bruk av to "mignonbatterier" = AA -celler (cca 3V) eller to AA -oppladbare AA -akkumulatorer (cca 2, 4V) er tilstrekkelig. Men for klokkespole er den dobbelt så mye som designet. Det forårsaker minst uønsket forbruksøkning. Da er det godt å legge til minimum seriemotstand, som vil skape en passende spenningsdeler. Motstandsverdi må være omtrent 120Ω for akkumulatoreffekt eller 200Ω for batteristrøm beregnet for ren resistiv belastning. I praksis kan verdien være litt mindre om 100Ω. I teorien er en motstand i serie med spole nok. Jeg har fortsatt en eller annen grunn en tendens til å se motoren som symmetrisk enhet og deretter sette motstand med halv motstand (47Ω eller 51Ω) ved siden av hver spoleterminal. Noen konstruksjoner legger til beskyttelsesdioder for å unngå negativ spenning til prosessoren når spolen kobles fra. Fra den andre siden er utgangseffekten til prosessorutganger nok til å koble spolen direkte til prosessoren uten forsterker. Komplett skjematisk for prosessor PIC12F629 vil se ut som beskrevet på figur 15. Denne skjemaet er gyldig for klokker uten ekstra kontrollelementer. Vi har fremdeles tilgjengelig en inngangs-/utgangspinne GP0 og en inngang bare GP3.

Trinn 11: Eksempler på bruk av veggklokke Arduino

Veggklokke Bruk Eksempler Arduino
Veggklokke Bruk Eksempler Arduino
Veggklokke Bruk Eksempler Arduino
Veggklokke Bruk Eksempler Arduino
Veggklokke Bruk Eksempler Arduino
Veggklokke Bruk Eksempler Arduino

Når vi ønsker å bruke Arduino, kan vi se på databladet for prosessoren ATmega328. At prosessoren har arbeidsspenning definert som 1.8V - 5.5V for frekvens opp til 4MHz og 2.7V - 5, 5V for frekvens opptil 10MHz. Vi må være forsiktige med en mangel på Arduino -plater. Den mangelen er tilstedeværelse av spenningsregulator om bord. Store mengder spenningsregulatorer har problemer med revers spenning. Dette problemet er bredt og best beskrevet for regulator 7805. For våre behov må vi bruke brett merket som 3V3 (designet for å drive 3,3V), spesielt fordi dette kortet inneholder krystall 8MHz og kan drives med start på 2, 7V (det betyr to AA batterier). Da vil ikke brukt stabilisator være 7805, men dens 3,3V ekvivalent. Når vi har lyst til å slå av brettet uten å bruke stabilisator, har vi to alternativer. Det første alternativet er å koble spenningen til pinnene "RAW" (eller "Vin") og +3V3 (eller Vcc) sammen og tro at stabilisatoren som brukes på brettet ikke har noen underspenningsbeskyttelse. Det andre alternativet er ganske enkelt å eliminere stabilisator. For dette er bra å bruke Arduino Pro Mini, etter referanseskjema. Den skjematiske inneholder jumper SJ1 (på figur 16 i rød sirkel) designet for å koble fra intern stabilisator. Dessverre inneholder ikke flertallet av kloner denne genseren.

En annen fordel med Arduino Pro Mini er at den ikke inneholder noen ekstra omformere som kan forbruke strøm under normal drift (det er liten komplikasjon under programmeringen). Arduino -kort er utstyrt med flere og mer komfortable prosessorer som ikke har nok strøm til enkelt utgang. Da er det godt å legge til en liten forsterker med et par transistorer. Grunnleggende skjema for batteristrøm ser ut som vist på figuren.

Fordi Arduino -miljøet ("Wiring" -språket) har attributter for moderne operativsystemer (da har problemer med nøyaktig timing), er det godt å tenke på bruk av ekstern klokkilde for Timer0 eller Timer1. Det betyr innganger T0 og T1, de er merket som 4 (T0) og 4 (T1). Enkel oscillator som bruker krystall fra veggklokke kan kobles til hvilken som helst av disse inngangene. Det avhenger av hvor nøyaktig klokken du vil produsere. Figur 18 viser tre grunnleggende muligheter. Første skjematisk er veldig økonomisk i betydningen av brukte komponenter. Det gir mer mindre trekantet utgang, men i fullt spenningsområde, så er det bra for å drive CMOS -innganger. Andre skjematisk ved hjelp av omformere, de kan være CMOS 4096 eller TTL 74HC04. Skjemaer er mer like hverandre, de er i grunnform. Tredje skjematisk bruk av brikke CMOS 4060, som tillater direkte tilkobling av krystall (ekvivalent 74HC4060 ved bruk av samme skjematiske, men forskjellige verdier av motstander). Fordelen med denne kretsen er at den inneholder 14 bit divider, så er det mulig å bestemme hvilken frekvens som brukes som timerinngang.

Utgangen til denne kretsen kan brukes for inngang T0 (pin 4 med Arduino -merking) og deretter bruke Timer0 med ekstern inngang. Det er ikke så praktisk, fordi Timer0 brukes til funksjoner som delay (), milis () eller micros (). Det andre alternativet er å koble den til inngang T1 (pin 5 med Arduino -merking) og bruk Timer1 med ekstra inngang. Neste alternativ er å koble den til å avbryte inngang INT0 (pin 2 i Arduino -merking) eller INT1 (pin 3) og bruke funksjonen attachInterrupt () og registerfunksjonen, som kalles med jevne mellomrom. Her er nyttig divider som tilbys av chips 4060, da må samtalen ikke være så ofte.

Trinn 12: Hurtigklokke for modelljernbaner

Rask klokke for modelljernbaner
Rask klokke for modelljernbaner
Rask klokke for modelljernbaner
Rask klokke for modelljernbaner
Rask klokke for modelljernbaner
Rask klokke for modelljernbaner

Av interesse vil jeg presentere en nyttig skjema. Jeg må koble flere veggklokker til vanlig kontroll. Veggklokker er langt unna hverandre, og på toppen av det er miljøkarakteristikken mer industriell med større elektromagnetisk støy. Så kom jeg tilbake til gamle bussystemer som brukte større spenning for kommunikasjon. Selvfølgelig løste jeg ikke arbeidet med batteri, men jeg brukte stabilisert strømforsyning 12V. Jeg forsterket signalet fra prosessoren ved hjelp av driver TC4427 (den har god tilgjengelighet og god pris). Da bærer jeg signal 12V med mulig belastning opp til 0,5A. Jeg la til enkle motstandsdelere til slaveklokker (på figur 18 merket som R101 og R102; Igjen forstår jeg motor som symmetrisk, det er ikke nødvendig). Jeg vil øke støyreduksjonen ved å bære mer strøm, så brukte jeg to motstander 100Ω. For å begrense spenningen på motorspolen er broen likeretter B101 koblet parallelt med spolen. Broen har kortsluttet DC side, så representerer den to par anti-parallelle dioder. To dioder betyr at spenningen faller ut omtrent 1,4V, det er veldig nær normal arbeidsspenning for motoren. Vi trenger antiparallell fordi strømmen veksler i en og motsatt polaritet. Total strøm brukt av en slaveveggklokke er da (12V - 1.5V) / (100Ω + 100Ω) = 53mA. Det er en akseptabel verdi for å unngå støy.

Her er to brytere på skjemaer, de er for å kontrollere tilleggsfunksjoner til veggklokke (hastighetsmultiplikator i tilfelle modellbaner). Datterklokke har en annen interessant funksjon. De er koblet sammen med to 4 mm banankontakter. De holder veggklokke på veggen. Det er nyttig, spesielt når du ønsker å angi et bestemt tidspunkt før du begynner å bruke. Du kan bare koble fra dem og deretter koble til igjen (treblokk er festet til veggen). Hvis du vil lage "Big Ben", trenger du en trekasse med fire par stikkontakter. Den boksen kan brukes som lagring for klokker når de ikke brukes.

Trinn 13: Programvare

Fra software synspunkt er situasjonen relativt enkel. La oss beskrive realisering på chip PIC12F629 ved hjelp av krystall 32768Hz (resirkulert fra original klokke). Prosessoren har en instruksjonssyklus på fire oscillatorsykluser. Når vi først vil bruke intern klokkekilde for en hvilken som helst tidtaker, betyr det instruksjonssykluser (kalt fosc/4). Vi har tilgjengelig for eksempel Timer0. Tidsinngangsfrekvens vil være 32768 /4 = 8192Hz. Timeren er åtte bit (256 trinn), og vi holder den overfylt uten noen hindringer. Vi fokuserer bare på timeroverløpshendelse. Hendelsen vil skje med frekvens 8192 /256 = 32Hz. Når vi så vil ha pulser ett sekund, må vi lage puls hver 32 overløp av Timer0. En vi ønsker at klokken skal gå for eksempel fire ganger raskere, så trenger vi 32/4 = 8 overløp for puls. For tilfeller vi er interessert i å designe ur med uregelmessig, men nøyaktig, må vi ha summen av overløp for få pulser det samme som 32 × antall pulser. Da kan vi finne i uregelmessige klokker matrise slik: [20, 40, 30, 38]. Da er summen 128, det er det samme som 32 × 4. For sinusklokke for eksempel [37, 42, 47, 51, 55, 58, 60, 61, 62, 61, 60, 58, 55, 51, 47, 42, 37, 32, 27, 22, 17, 13, 9, 6, 4, 3, 2, 3, 4, 6, 9, 13, 17, 22, 27, 32] = 1152 = 36*32). For klokken vår vil vi bruke to gratis innganger som definisjon av divider for rask kjøring. Tabelldeler for hastigheter lagres i EEPROM -minne. Hoveddelen av programmet kan se slik ut:

MainLoop:

btfss INTCON, T0IF til MainLoop; vent på Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; hvis STOP -bryteren er aktiv, clrf CLKCNT; klar teller hver gang btfsc SW_FAST; hvis du ikke trykker på hurtigknappen, gå til NormalTime; beregne bare normal tid movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; hvis FCLK og CLKCNT er de samme gå til SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bits 7, 6, 5 btfsc STATUS, Z; hvis CLKCNT> = 32 gå til MainLoop gå til SendPulse

Program ved hjelp av funksjonen SendPulse, den funksjonen skaper motorpuls selv. Funksjonstall oddetall/partall og basert på det oppretter puls på en eller annen utgang. Funksjon ved bruk av konstant ENERGISE_TIME. Den konstante definisjonstiden i løpet av det er motorisert spole. Dermed har det stor innvirkning på forbruket. Når den er så liten, klarer ikke motoren å fullføre trinnet, og noen ganger skjer det at den andre går seg vill (vanligvis når annenhånd går rundt nummer 9, når den går "oppover").

SendPulse:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 gå til SendPulseB SendPulseA: bsf OUT_A gå til SendPulseE SendPulseB: bsf OUT_B; gå til SendPulseE SendPulseE: movlw 0x50 movwf ECNT SendPulseLoop

Full kildekoder kan lastes ned på slutten av siden www.fucik.name. Situasjonen med Arduino er lite komplisert, fordi Arduino bruker høyere programmeringsspråk og bruker eget krystall 8MHz, må vi være forsiktige med hvilke funksjoner vi bruker. Bruk av klassisk forsinkelse () er lite risikabelt (det beregner tid fra funksjonsstart). Bedre resultater vil ha bruk av biblioteker som Timer1. Mange Arduino -prosjekter teller på eksterne RTC -enheter som PCF8563, DS1302, etc.

Trinn 14: Nysgjerrigheter

Dette systemet for bruk av veggklokke motor er forstått som veldig grunnleggende. Det finnes mange forbedringer. For eksempel basert på måling av Back EMF (elektrisk energi produsert ved bevegelse av rotormagnet). Da er elektronisk i stand til å gjenkjenne, når hånden er flyttet og hvis ikke, så gjenta pulsen raskt eller oppdater verdien av "ENERGISE_TIME". mer nyttig nysgjerrighet er "omvendt trinn". Basert på beskrivelsen ser det ut til at motoren kun er designet for en rotasjonsretning, og den kan ikke endres. Men som vist på vedlagte videoer er retningsendring mulig. Prinsippet er enkelt. La oss gå tilbake til motorprinsippet. Tenk deg at motoren er i stabil tilstand i andre trinn (figur 3). Når vi kobler til spenning som presentert i første trinn (figur 2), starter motoren logisk rotasjonen i motsatt retning. Når pulsen er kort nok og vil ende opp litt før motoren hever stabil tilstand, vil den logisk flimre litt. En gang i tiden for at flimmeren kommer til neste spenningspuls som beskrevet på tredje tilstand (figur 4), så fortsetter motoren med retningen som den startet, det betyr i motsatt retning. Et lite problem er hvordan du bestemmer varigheten av den første pulsen og en gang for å skape en viss avstand mellom første og andre puls. Og det verste er at disse konstantene varierer for hver klokkebevegelse og noen ganger varierer for tilfeller, at hendene går "ned" (rundt nummer 3) eller opp (rundt nummer 9) og også i nøytrale posisjoner (rundt tall 12 og 6). For saken presentert på video brukte jeg verdier og algoritme som presentert i følgende kode:

#define OUT_A_SET 0x02; config for out a set out b klart

#define OUT_B_SET 0x04; config for out b sette ut en klar #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 gå til SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT movwf ECNT movwf start med puls B movwf GPIO RevPulseLoopA:; kort tid vent decfsz ECNT, for å gå til RevPulseLoopA movlw OUT_A_SET; deretter puls A movwf GPIO til SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; start med puls A movwf GPIO RevPulseLoopB:; kort tid vent decfsz ECNT, for å gå til RevPulseLoopB movlw OUT_B_SET; deretter puls B movwf GPIO; gå til SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, for å gå til SendPulseLoop bcf OUT_A bcf OUT_B gå til MainLoop

Bruk av omvendte trinn øker muligheten for å leke med veggklokke. Noen ganger kan vi finne veggklokke som har jevn bevegelse i andre hånd. Vi har ingen skremming for klokken, de bruker et enkelt triks. Selve motoren er den samme som motoren som er beskrevet her, bare girforholdet er større (vanligvis 8: 1 mer) og motoren snurrer raskere (vanligvis 8x raskere) som gir jevn bevegelse. Når du bestemmer deg for å endre veggklokken, ikke glem å beregne forespurt multiplikator.

Anbefalt: