Inhoudsopgave:

Spelen met de hand-wandklok: 14 stappen
Spelen met de hand-wandklok: 14 stappen

Video: Spelen met de hand-wandklok: 14 stappen

Video: Spelen met de hand-wandklok: 14 stappen
Video: Dit ging niet zoals ik had verwacht..😳 2024, November
Anonim
Image
Image
Werkend principe
Werkend principe

Elektronische hand wandklokken (commerciële markering kwarts) zijn tegenwoordig niets bijzonders. Het kan in veel winkels worden gekocht. In sommige zijn ze extreem goedkoop; met een prijs van ongeveer €2 (50CZK). Die lage prijs kan een motivatie zijn om ze eens nader te bekijken. Toen besefte ik dat ze interessant speelgoed kunnen zijn voor nieuwelingen in de elektronica, die niet zoveel middelen hebben en die vooral geïnteresseerd zijn in programmeren. Maar wil graag de eigen ontwikkeling aan anderen presenteren. Omdat goedkope wandklokken zeer tolerant zijn voor experimenten en beginnersproeven, heb ik besloten dit artikel te schrijven, waar ik basisideeën wil presenteren.

Stap 1: Werkingsprincipe

Werkend principe
Werkend principe
Werkend principe
Werkend principe

Het is gemakkelijk te herkennen dat die klok een soort stappenmotor gebruikt voor beweging. Degene, die al enkele klokken uit elkaar haalde, herkende dat het slechts één spoel is in plaats van twee in de gebruikelijke stappenmotor. In dit geval hebben we het over "eenfase" of "enkelpolige" stappenmotor. (Deze naam wordt niet zo vaak gebruikt, het is meestal een analoge afleiding voor markering die wordt gebruikt voor andere full-stack stappenmotoren). Degene die al begint na te denken over het werkingsprincipe moet zich afvragen, hoe het mogelijk is dat die motor altijd in de goede richting draait. Voor het werkingsprincipe is de beschrijving handig in de volgende afbeelding, die oudere soorten motoren laat zien.

Op de eerste afbeelding is één spoel zichtbaar met klemmen A en B, grijze stator en rood-blauwe rotor. Rotor is gemaakt van permanente magneet, dat is de reden waarom het met een kleur gemarkeerd is, om zichtbaar te zijn, in welke richting wordt gemagnetiseerd (het is niet zo cruciaal, welke pool is noord en wat is zuid). Op de stator zie je twee "groeven" dichtbij de rotor. Ze zijn erg cruciaal voor het werkingsprincipe. Motor werkt in vier stappen. We zullen elke stap beschrijven aan de hand van vier afbeeldingen.

Tijdens de eerste stap (tweede afbeelding) wordt de motor bekrachtigd, die klem A is verbonden met de positieve pool en klem B is verbonden met de negatieve pool. Het maakt magnetische flux, bijvoorbeeld in de richting van de pijl. Rotor zal op zijn plaats stoppen, zodat zijn positie overeenkomt met magnetische flux.

De tweede stap volgt na het uitschakelen van de stroom. Dan wordt de magnetische flux in de stator gestopt en heeft de magneet de neiging om naar positie te draaien, de polarisatie is in de richting van het maximale volume magnetische zachte materiaal van de stator. En hier zijn cruciaal die twee groeven. Ze wijzen op een kleine afwijking van het maximale volume. Dan draait de rotor een beetje met de klok mee. Zoals te zien op afbeelding 3.

De volgende stap (vierde afbeelding) is met de spanning die is aangesloten op omgekeerde polariteit (klem A op de negatieve pool, klem B op de positieve pool). Het betekent dat de magneet in de rotor per spoel in de richting van het magnetisch veld zal draaien. Rotor gebruik kortste richting, dat is weer met de klok mee.

Laatste (vierde) stap (vijfde afbeelding) is hetzelfde als tweede. Motor zit weer zonder spanning. Slechts één verschil is dat de startpositie van de magneet tegenovergesteld is, maar dat de rotor weer in de richting van het maximale materiaalvolume zal bewegen. Dat is weer een beetje met de klok mee.

Dat is allemaal cyclus, eerste stap volgt weer. Voor motorische beweging is stap twee en vier te begrijpen als stabiel. Vervolgens wordt het mechanisch overgebracht naar de 1:30-overdrachtsnelheid van de versnellingsbak naar de positie van de secondewijzer van het horloge.

Stap 2: Werkingsprincipe Vervolg

Werkingsprincipe Vervolg
Werkingsprincipe Vervolg
Werkingsprincipe Vervolg
Werkingsprincipe Vervolg
Werkingsprincipe Vervolg
Werkingsprincipe Vervolg
Werkingsprincipe Vervolg
Werkingsprincipe Vervolg

Cijfers tonen spanningsgolfvorm op motorklemmen. Cijfers betekent alle seconden. In werkelijkheid zijn pulsen veel kleiner in vergelijking met ruimtes. Ze zijn ongeveer milliseconden.

Stap 3: Praktische Demonteer 1

Praktisch demonteren 1
Praktisch demonteren 1

Ik gebruikte een van de goedkoopste wandklokken op de markt voor praktische demontage. Ze hebben weinig pluspunten. Een daarvan is dat die prijs zo laag is dat we er maar een paar kunnen kopen voor experimenten. Omdat de fabricage sterk op prijs is gericht, bevatten ze geen ingewikkelde slimme oplossingen en geen ingewikkelde schroeven. In werkelijkheid bevatten ze geen schroeven, alleen plastic kliksloten. We hebben alleen minimale hulpmiddelen nodig. We hebben bijvoorbeeld alleen een schroevendraaier nodig om die sloten uit te gutsen.

Voor het demonteren van de wandklok hebben we een platte schroevendraaier (of een andere poke stick), wasknijper en werkmat met opstaande randen nodig (dat is niet verplicht, maar maakt het zoeken naar wielen en andere kleine onderdelen gemakkelijker).

Stap 4: Praktische Demonteer 2

Praktisch demonteren 2
Praktisch demonteren 2
Praktisch demonteren 2
Praktisch demonteren 2
Praktisch demonteren 2
Praktisch demonteren 2
Praktisch demonteren 2
Praktisch demonteren 2

Aan de achterkant van de wandklok bevinden zich drie vergrendelingen. Twee bovenste op de positie van de nummers 2 en 10 kunnen worden ontgrendeld en het dekglas kan worden geopend. Wanneer het glas open is, is het mogelijk om de wijzers van de wijzers te trekken. Het is niet nodig om de positie ervan te markeren. We zullen ze altijd terugzetten naar positie 12:00:00 Als de wijzers uit zijn, kunnen we de klokbeweging ontkoppelen. Het heeft twee vergrendelingen (op positie 6 en 12). Het wordt aanbevolen om de beweging zo recht mogelijk uit te trekken, anders kan de beweging vast komen te zitten.

Stap 5: Praktische Demonteer 3

Praktisch demonteren 3
Praktisch demonteren 3
Praktisch demonteren 3
Praktisch demonteren 3
Praktisch demonteren 3
Praktisch demonteren 3

Dan is het mogelijk om beweging te openen. Het heeft drie vergrendelingen. twee op posities 3 en 9 uur en dan derde op 6 uur. Wanneer geopend, volstaat het om het transparante tandwiel tussen de motor en de versnellingsbak te verwijderen en vervolgens het rondsel, dat is verbonden met de rotor van de motor.

Stap 6: Praktische Demonteer 4"

Praktisch demonteren 4
Praktisch demonteren 4
Praktisch demonteren 4
Praktisch demonteren 4

Motorspoel en stator houden slechts op één grendel vast (na 12 uur). Het houdt niet vast aan stroomrails, het is alleen van toepassing op stroomrails door op te drukken, dan is verwijderen niet ingewikkeld. De spoel is op de stator geschroefd zonder enige houder. Het kan gemakkelijk worden opstijgen.

Stap 7: Praktische Demonteer 5"

Praktisch demonteren 5
Praktisch demonteren 5
Praktisch demonteren 5
Praktisch demonteren 5
Praktisch demonteren 5
Praktisch demonteren 5
Praktisch demonteren 5
Praktisch demonteren 5

Aan de onderkant van de spoel is een kleine printplaat gelijmd, die één CoB (Chip on Board) met zes uitgangen bevat. Twee zijn voor stroom en ze eindigen op grotere vierkante pads aan boord voor het aanbrengen van stroomrails. twee uitgangen zijn aangesloten op kristal. Trouwens, het kristal is 32768Hz en kan worden gedesoldeerd voor toekomstig gebruik. De laatste twee uitgangen zijn aangesloten op de spoel. Ik vond het veiliger om sporen aan boord af te snijden en draden aan bestaande pads aan boord te solderen. Toen ik probeerde de spoel los te solderen en de draad rechtstreeks op de spoel aan te sluiten, scheur ik altijd de spoeldraad af of beschadigde de spoel. Het solderen van nieuwe draden aan boord behoort tot de mogelijkheden. Laten we zeggen, dat primitiever. Een creatievere methode is om de spoel aan te sluiten op de voedingspads en de voedingsrails te behouden voor aansluiting op de accubak. Dan kan de elektronica in de accubak worden geplaatst.

Stap 8: Praktische Demonteer 6"

Praktisch demonteren 6
Praktisch demonteren 6
Praktisch demonteren 6
Praktisch demonteren 6

De kwaliteit van het solderen kan worden gecontroleerd met een ohmmeter. De spoel heeft een soortelijke weerstand van ongeveer 200Ω. Zodra alles in orde is, monteren we de wandklok terug. Ik gooi stroomrails meestal weg, dan heb ik meer plaats voor mijn nieuwe draden. Foto's worden gemaakt voordat stroomrails worden gegooid. Ik vergeet de volgende foto te maken als ze verwijderd zijn.

Als ik klaar ben met het voltooien van het uurwerk, test ik het door de secondewijzer te gebruiken. Ik leg de hand op de as en sluit wat stroom aan (ik gebruikte CR2032-knoopbatterij, maar AA 1, 5V kan ook worden gebruikt). Sluit de stroom eenvoudig in één polariteit aan op draden en dan opnieuw met tegenovergestelde polariteit. De klok moet tikken en de wijzer gaat een seconde vooruit. Als je eenmaal problemen hebt om de beweging terug te voltooien, omdat draden meer plaats innemen, draai je gewoon de spoel en plaats je hem aan de andere kant. Als u geen stroomrails gebruikt, heeft dit geen effect op de klokbeweging. Zoals al vermeld, moet je bij het terugzetten van de handen ze naar 12:00:00 wijzen. Het is om de juiste afstand tussen de uren- en minutenwijzer te hebben.

Stap 9: Gebruiksvoorbeelden voor wandklokken

Meerderheid van eenvoudige voorbeelden gericht op het weergeven van tijd, maar met verschillende aanpassingen. Zeer populair is modificatie genaamd "Vetinari Clock". Wijzend naar het boek van Terry Pratchett, waar heer Vetinari een wandklok in zijn wachtkamer heeft, die onregelmatig tikken. Die onregelmatigheid maakt wachtende mensen onrustig. Tweede populaire toepassing is "sinusklok". Het betekent klok, die versnellen en vertragen op basis van sinuscurve, dan hebben mensen gevoel, ze varen op golven. een van mijn favorieten is "lunchtijd". Die wijziging houdt in dat de klok iets sneller gaat tussen 11 en 12 uur (0,8 sec), om eerder te lunchen; en iets langzamer tijdens de lunch tussen 12 en 13 uur (1, 2 sec), om wat meer tijd te hebben voor de lunch en om de verloren tijd in te halen.

Voor de meeste van die wijzigingen is het voldoende om de eenvoudigste processor te gebruiken, met een werkfrequentie van 32768Hz. Deze frequentie is erg populair bij klokkenmakers, omdat het gemakkelijk is om kristal te maken met deze frequentie, en het verbiedt gemakkelijk binair te verdelen in volledige seconden. Het heeft twee voordelen om deze frequentie voor de processor te gebruiken: we kunnen het kristal gemakkelijk van de klok recyclen; en processors hebben meestal een minimaal verbruik op deze frequentie. Verbruik is iets dat we zo vaak oplossen als we met een wandklok spelen. Vooral om de klok zo lang mogelijk van de kleinste batterij te kunnen voorzien. Zoals reeds vermeld, heeft de spoel een weerstand van 200Ω en is ontworpen voor ca 1,5 V (één AA-batterij). Goedkoopste processors werken meestal met een iets grotere spanning, maar met twee batterijen (3V) die allemaal werken. Een van de goedkoopste processors op onze markt is Microchip PIC12F629, of zeer populaire Arduino-modules. Vervolgens laten we zien hoe u beide platforms kunt gebruiken.

Stap 10: Gebruiksvoorbeelden van wandklokken PIC

Voorbeelden van gebruik van wandklokken PIC
Voorbeelden van gebruik van wandklokken PIC
Voorbeelden van gebruik van wandklokken PIC
Voorbeelden van gebruik van wandklokken PIC

Processor PIC12F629 heeft een bedrijfsspanning van 2,0 V - 5,5 V. Het gebruik van twee "mignon-batterijen" = AA-cellen (cca 3V) of twee AA-oplaadbare AA-accu's (cca 2, 4V) is voldoende. Maar voor klokspoel is het twee keer meer dan ontworpen. Het veroorzaakt minimaal een ongewenste toename van het verbruik. Dan is het goed om een minimale serieweerstand toe te voegen, zodat er een geschikte spanningsdeler ontstaat. De weerstandswaarde moet ongeveer 120 zijn voor accuvermogen of 200 Ω voor batterijvermogen berekend voor pure resistieve belasting. In de praktijk kan de waarde iets kleiner zijn rond de 100Ω. In de theorie is één weerstand in serie met spoel voldoende. Ik heb nog steeds de neiging, om de een of andere reden, om de motor als een symmetrisch apparaat te zien en dan een weerstand met halve weerstand (47Ω of 51Ω) naast elke spoelterminal te plaatsen. Sommige constructies voegen beschermingsdiodes toe om negatieve spanning naar de processor te voorkomen wanneer de spoel is losgekoppeld. Aan de andere kant is het uitgangsvermogen van de processoruitgangen voldoende om de spoel rechtstreeks op de processor aan te sluiten zonder enige versterker. Het volledige schema voor processor PIC12F629 ziet eruit zoals beschreven in figuur 15. Dit schema is geldig voor horloges zonder extra bedieningselementen. We hebben nog één input/output pin GP0 en één input alleen GP3.

Stap 11: Gebruiksvoorbeelden wandklok Arduino

Gebruiksvoorbeelden van wandklokken Arduino
Gebruiksvoorbeelden van wandklokken Arduino
Gebruiksvoorbeelden van wandklokken Arduino
Gebruiksvoorbeelden van wandklokken Arduino
Gebruiksvoorbeelden van wandklokken Arduino
Gebruiksvoorbeelden van wandklokken Arduino

Zodra we Arduino willen gebruiken, kunnen we de datasheet voor processor ATmega328 bekijken. Die processor heeft een werkspanning gedefinieerd als 1,8 V - 5,5 V voor frequenties tot 4 MHz en 2,7 V - 5,5 V voor frequenties tot 10 MHz. We moeten voorzichtig zijn met één tekortkoming van Arduino-boards. Die tekortkoming is de aanwezigheid van een spanningsregelaar aan boord. Veel spanningsregelaars hebben problemen met sperspanning. Dit probleem wordt algemeen en het best beschreven voor regulator 7805. Voor onze behoeften moeten we een bord gebruiken dat is gemarkeerd als 3V3 (ontworpen voor het voeden van 3,3 V), vooral omdat dit bord kristal 8 MHz bevat en kan worden gevoed vanaf 2, 7 V (het betekent twee AA batterijen). De gebruikte stabilisator zal dan geen 7805 zijn, maar zijn 3.3V-equivalent. Zodra we het bord van stroom willen voorzien zonder stabilisator te gebruiken, hebben we twee opties. De eerste optie is, sluit de spanning aan op de pinnen "RAW" (of "Vin") en +3V3 (of Vcc) samen en geloof dat de stabilisator die op uw bord wordt gebruikt geen bescherming tegen onderspanning heeft. De tweede optie is simpelweg de stabilisator elimineren. Hiervoor is het goed om Arduino Pro Mini te gebruiken, volgens het referentieschema. Dat schema bevat jumper SJ1 (op figuur 16 in rode cirkel) ontworpen voor het loskoppelen van de interne stabilisator. Helaas bevat de meerderheid van de klonen deze jumper niet.

Een ander voordeel van Arduino Pro Mini is dat het geen extra converters bevat, die tijdens normaal gebruik elektriciteit kunnen verbruiken (dat is een kleine complicatie tijdens het programmeren). Arduino-boards zijn uitgerust met steeds meer comfortabele processors, die niet genoeg vermogen hebben voor een enkele output. Dan is het goed om minimaal een kleine uitgangsversterker toe te voegen met behulp van een paar transistors. Het basisschema voor batterijvoeding ziet eruit zoals weergegeven in de afbeelding.

Omdat de Arduino-omgeving (de "Wiring"-taal) kenmerken heeft van moderne besturingssystemen (dan problemen hebben met nauwkeurige timing), is het goed om na te denken over het gebruik van een externe klokbron voor Timer0 of Timer1. Het betekent ingangen T0 en T1, ze zijn gemarkeerd als 4 (T0) en 4 (T1). Een eenvoudige oscillator die kristal van een wandklok gebruikt, kan op elk van deze ingangen worden aangesloten. Het hangt ervan af hoe nauwkeurig u de klok wilt produceren. Figuur 18 toont drie basismogelijkheden. Het eerste schema is zeer zuinig in de betekenis van gebruikte componenten. Het biedt meer minder driehoekige output, maar in het volledige spanningsbereik is het goed voor het voeden van CMOS-ingangen. Tweede schema met omvormers, dit kunnen CMOS 4096 of TTL 74HC04 zijn. Schema's lijken minder op elkaar, ze zijn in basisvorm. Derde schema met chip CMOS 4060, die directe verbinding van kristal mogelijk maakt (equivalent 74HC4060 met hetzelfde schema, maar verschillende waarden van weerstanden). Voordeel van deze schakeling is dat deze een 14 bit deler bevat, dan is het mogelijk om te beslissen welke frequentie als timer ingang wordt gebruikt.

Uitgang van deze schakeling kan worden gebruikt voor ingang T0 (pin 4 met Arduino-markering) en vervolgens Timer0 gebruiken met externe ingang. Dat is niet zo praktisch, omdat Timer0 wordt gebruikt voor functies als delay(), milis() of micros(). Tweede optie is om deze aan te sluiten op ingang T1 (pin 5 met Arduino-markering) en Timer1 te gebruiken met extra ingang. De volgende optie is om het aan te sluiten op de interrupt-ingang INT0 (pin 2 in Arduino-markering) of INT1 (pin 3) en de functie attachInterrupt() en registerfunctie te gebruiken, die periodiek wordt aangeroepen. Hier wordt een handige divider aangeboden door chips 4060, dan moet call niet zo vaak voorkomen.

Stap 12: Snelle klok voor hardware voor modelspoorders

Snelle klok voor modelspoorders Hardware
Snelle klok voor modelspoorders Hardware
Snelle klok voor modelspoorders Hardware
Snelle klok voor modelspoorders Hardware
Snelle klok voor modelspoorders Hardware
Snelle klok voor modelspoorders Hardware

Voor interesse zal ik een nuttig schema presenteren. Ik moet meer wandklokken aansluiten op de gemeenschappelijke bediening. Wandklokken staan ver uit elkaar en bovendien is de omgevingskarakteristiek meer industrieel met grotere elektromagnetische ruis. Toen keerde ik terug naar oude systemen van bussen die grotere spanning gebruikten voor communicatie. Natuurlijk loste ik het werken op de batterij niet op, maar ik gebruikte gestabiliseerde voeding 12V. Ik versterkte het signaal van de processor met behulp van driver TC4427 (het heeft een goede beschikbaarheid en een goede prijs). Dan draag ik signaal 12V met mogelijke belasting tot 0,5A. Ik heb eenvoudige weerstandsverdelers toegevoegd aan slave-klokken (op figuur 18 gemarkeerd als R101 en R102; opnieuw begrijp ik motor als symmetrisch, dat is niet nodig). Ik zou de ruisonderdrukking willen verhogen door meer stroom te voeren, dan heb ik twee weerstanden van 100Ω gebruikt. Om de spanning op de motorspoel te beperken, is de bruggelijkrichter B101 parallel geschakeld met de spoel. De brug heeft de DC-zijde kortgesloten en vertegenwoordigt dan twee paar antiparallelle diodes. Twee diodes betekenen een spanningsverlies van ongeveer 1,4 V, dat is heel dicht bij de normale werkspanning voor de motor. We hebben anti-parallel nodig omdat voeding afwisselend in één en tegengestelde polariteit is. De totale stroom die door één slave-wandklok wordt gebruikt, is dan (12V - 1,5V) / (100Ω + 100Ω) = 53mA. Dat is een acceptabele waarde om ruis te voorkomen.

Hier zijn twee schakelaars op schema's, ze zijn voor het bedienen van extra functies van de wandklok (snelheidsvermenigvuldiger in het geval van modelspoorders). Dochterklok heeft nog een interessante functie. Ze worden aangesloten met behulp van twee 4 mm banaanstekkers. Ze houden een wandklok aan de muur. Het is vooral handig als u een bepaalde tijd wilt instellen voordat u ze gaat gebruiken, u kunt ze eenvoudig loskoppelen en vervolgens weer aansluiten (houten blok is aan de muur bevestigd). Als u "Big Ben" wilt maken, heeft u een houten kist met vier paar stopcontacten nodig. Die doos kan worden gebruikt als opslag voor klokken wanneer ze niet worden gebruikt.

Stap 13: Software

Vanuit software oogpunt is de situatie relatief eenvoudig. Laten we de realisatie beschrijven op chip PIC12F629 met behulp van kristal 32768Hz (gerecycleerd van originele klok). Processor heeft één instructiecyclus van vier oscillatorcycli lang. Zodra we de interne klokbron voor elke timer gaan gebruiken, betekent dit instructiecycli (fosc/4 genoemd). We hebben bijvoorbeeld Timer0 beschikbaar. De ingangsfrequentie van de timer is 32768/4 = 8192Hz. Timer is acht bits (256 stappen) en we houden het zonder barrières overloop. We zullen ons alleen concentreren op een timeroverloopgebeurtenis. De gebeurtenis zal plaatsvinden met frequentie 8192 / 256 = 32Hz. Als we dan pulsen van één seconde willen hebben, moeten we elke 32 overloop van Timer0 een puls maken. Eén willen we de klok bijvoorbeeld vier keer sneller laten lopen, dan hebben we 32 / 4 = 8 overloop nodig voor puls. Voor gevallen waarin we geïnteresseerd zijn om een klok te ontwerpen met een onregelmatige maar nauwkeurige som, moeten we een som van overlopen hebben voor een paar pulsen, hetzelfde als 32× aantal pulsen. Dan zijn we te vinden in onregelmatige klokken matrix als volgt: [20, 40, 30, 38]. Dan is de som 128, dat is hetzelfde als 32×4. Voor sinusklok bijvoorbeeld [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). Voor onze klok zullen we twee vrije ingangen gebruiken als definitie van verdeler voor snelle run. Tabeldith-verdelers voor snelheden worden opgeslagen in het EEPROM-geheugen. Het hoofdgedeelte van het programma kan er als volgt uitzien:

Hoofdlus:

btfss INTCON, T0IF ga naar MainLoop; wacht op Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; als de STOP-schakelaar actief is, clrf CLKCNT; teller elke keer wissen btfsc SW_FAST; als de sneltoets niet is ingedrukt ga naar NormalTime; bereken alleen normale tijd movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; als FCLK en CLKCNT hetzelfde zijn, ga dan naar SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bits 7, 6, 5 btfsc STATUS, Z; if CLKCNT>=32 ga naar MainLoop ga naar SendPulse

Programmeer met de functie SendPulse, die functie creëert zelf een motorpuls. Functie telt even/oneven puls en maakt op basis daarvan een puls op één of tweede uitgang. Functie met constante ENERGISE_TIME. Die constante definieert de tijd gedurende die tijd dat de motorspoel wordt bekrachtigd. Het heeft dus een grote impact op het verbruik. Als het eenmaal zo klein is, kan de motor de stap niet voltooien en soms gebeurt het dat die seconde verloren gaat (meestal wanneer de secondewijzer rond nummer 9 gaat wanneer deze "omhoog" gaat).

Zendpuls:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B;goto SendPulseE SendPulseE: movlw 0x50 movwfLo ECNT SendPulseE

Volledige broncodes kunnen worden gedownload aan het einde van pagina www.fucik.name. Situatie met Arduino is weinig gecompliceerd, omdat Arduino een hogere programmeertaal gebruikt en een eigen kristal 8 MHz gebruikt, moeten we voorzichtig zijn met welke functies we gebruiken. Het gebruik van klassieke delay() is weinig riskant (het berekent de tijd vanaf het starten van de functie). Betere resultaten zullen het gebruik van bibliotheken zoals Timer1 hebben. Veel Arduino-projecten rekenen op externe RTC-apparaten zoals PCF8563, DS1302, enz.

Stap 14: Curiositeiten

Dit systeem van het gebruik van de wandklokmotor wordt als zeer eenvoudig beschouwd. Er zijn veel verbeteringen. Bijvoorbeeld gebaseerd op het meten van Back EMF (elektrische energie geproduceerd door beweging van rotormagneet). Dan is electronic in staat om te herkennen, als de hand eenmaal in beweging is en zo niet, dan snel de puls herhalen of de waarde van "ENERGISE_TIME" bijwerken. meer bruikbare nieuwsgierigheid is "reverse step". Op basis van de beschrijving lijkt het erop dat die motor slechts voor één draairichting is ontworpen en niet kan worden gewijzigd. Maar zoals gepresenteerd op bijgevoegde video's, is verandering van richting mogelijk. Het principe is eenvoudig. Laten we teruggaan naar het motorische principe. Stel je voor, die motor bevindt zich in de stabiele toestand van de tweede stap (Figuur 3). Zodra we de spanning hebben aangesloten zoals weergegeven in de eerste stap (Figuur 2), begint de motor logischerwijs in omgekeerde richting te draaien. Als de puls eenmaal kort genoeg is en iets zal eindigen voordat de motor stabiel wordt, zal hij logischerwijs een beetje flikkeren. Eens in de tijd van die flikkering zal de volgende spanningspuls aankomen zoals beschreven in de derde toestand (Figuur 4), dan zal de motor doorgaan met de richting zoals deze begon, dit betekent in omgekeerde richting. Een klein probleempje is, hoe de duur van de eerste puls te bepalen en eenmaal om enige afstand te creëren tussen de eerste en tweede puls. En het ergste is dat die constanten variëren voor elke klokbeweging en soms variëren voor gevallen, dat de wijzers "omlaag" gaan (rond nummer 3) of omhoog (ongeveer nummer 9) en ook in neutrale posities (rond nummer 12 en 6). Voor case gepresenteerd op video gebruikte ik waarden en algoritme zoals gepresenteerd in de volgende code:

#define OUT_A_SET 0x02; config voor out a uiteengezet b clear

#define OUT_B_SET 0x04; config for out b uiteengezet een duidelijke #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT_B movlw; start met puls B movwf GPIO RevPulseLoopA:; korte tijd wachten decfsz ECNT, f ga naar RevPulseLoopA movlw OUT_A_SET; dan pulse A movwf GPIO ga naar SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; start met puls A movwf GPIO RevPulseLoopB:; korte tijd wachten decfsz ECNT, f ga naar RevPulseLoopB movlw OUT_B_SET; dan pulse B movwf GPIO;ga naar SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f ga naar SendPulseLoop bcf OUT_A bcf OUT_B ga naar MainLoop

Het gebruik van omgekeerde stappen vergroot de mogelijkheid om met de wandklok te spelen. We kunnen soms een wandklok vinden met een soepele beweging van de secondewijzer. We zijn niet bang voor die klok, ze gebruiken een simpele truc. De motor zelf is hetzelfde als de motor die hier wordt beschreven, alleen is de overbrengingsverhouding groter (meestal 8:1 meer) en de motor draait sneller (meestal 8x sneller) wat zorgt voor een soepele beweging. Zodra u besluit om die wandklok te wijzigen, vergeet dan niet om de gevraagde vermenigvuldiger te berekenen.

Aanbevolen: