Spisu treści:

Gra z ręcznym zegarem ściennym: 14 kroków
Gra z ręcznym zegarem ściennym: 14 kroków

Wideo: Gra z ręcznym zegarem ściennym: 14 kroków

Wideo: Gra z ręcznym zegarem ściennym: 14 kroków
Wideo: Ups. 2024, Listopad
Anonim
Image
Image
Zasada działania
Zasada działania

Elektroniczny ręczny zegar ścienny (kwarcowy znak handlowy) nie jest w dzisiejszych czasach niczym szczególnym. Można go kupić w wielu sklepach. W niektórych z nich są niezwykle tanie; w cenie około 2 € (50 CZK). Ta niska cena może być motywacją do przyjrzenia się im bliżej. Wtedy zrozumiałem, że mogą być ciekawą zabawką dla początkujących w elektronice, którzy nie mają tak wielu zasobów i których interesują głównie programowanie. Ale chciałby zaprezentować innym swój rozwój. Ponieważ tanie zegary ścienne są bardzo tolerancyjne na eksperymenty i próby początkujących, postanowiłem napisać ten artykuł, w którym chciałbym przedstawić podstawowe pomysły.

Krok 1: Zasada działania

Zasada działania
Zasada działania
Zasada działania
Zasada działania

Łatwo rozpoznać, że zegar używa do ruchu jakiegoś silnika krokowego. Ten, który już rozbił niektóre zegary, rozpoznał, że to tylko jedna cewka zamiast dwóch w zwykłym silniku krokowym. W tym przypadku mówimy o silniku krokowym „jednofazowym” lub „jednobiegunowym”. (Ta nazwa nie jest używana tak często, jest to w większości analogiczne wyprowadzenie dla oznaczeń stosowanych dla innych silników krokowych z pełnym stosem). Ten, kto już zaczyna myśleć o zasadzie działania, musi zadać sobie pytanie, jak to możliwe, że silnik zawsze kręci się we właściwym kierunku. Do opisu zasady działania przydatne jest poniższe zdjęcie, które pokazuje starsze typy silników.

Na pierwszym zdjęciu widoczna jedna cewka z zaciskami A i B, szary stojan i czerwono-niebieski wirnik. Wirnik wykonany jest z magnesu trwałego, dlatego jest oznaczony kolorem, aby był widoczny, w jakim kierunku jest namagnesowany (nie jest tak istotne, jaki biegun jest północny, a jaki południowy). Na stojanie widać dwa "rowki" blisko wirnika. Są bardzo istotne dla zasady działania. Silnik działa w czterech krokach. Opiszemy każdy krok za pomocą czterech obrazów.

Podczas pierwszego kroku (drugi obraz) silnik jest zasilany, że zacisk A jest podłączony do bieguna dodatniego, a zacisk B do bieguna ujemnego. Wytwarza strumień magnetyczny, na przykład w kierunku strzałki. Wirnik zatrzyma się w pozycji, w której jego pozycja będzie odpowiadać strumieniowi magnetycznemu.

Drugi krok następuje po odłączeniu zasilania. Wtedy strumień magnetyczny w stojanie zostaje zatrzymany, a magnes ma tendencję do obracania się do pozycji, polaryzuje się w kierunku maksymalnej objętości magnetycznego miękkiego materiału stojana. I tu kluczowe są te dwa rowki. Wskazują na niewielkie odchylenie maksymalnej głośności. Następnie wirnik obraca się trochę w kierunku zgodnym z ruchem wskazówek zegara. Jak pokazano na obrazku 3.

Kolejny krok (czwarty obraz) to podłączenie napięcia z odwrotną polaryzacją (zacisk A do bieguna ujemnego, zacisk B do bieguna dodatniego). Oznacza to, że magnes w wirniku będzie się obracał w kierunku pola magnetycznego za pomocą cewki. Rotor używa najkrótszego kierunku, czyli ponownie zgodnie z ruchem wskazówek zegara.

Ostatni (czwarty) krok (piąty obraz) jest taki sam jak drugi. Silnik znowu jest bez napięcia. Jedyną różnicą jest to, że pozycja początkowa magnesu jest przeciwna, ale wirnik ponownie przesunie się w kierunku maksymalnej objętości materiału. To znowu pozycja trochę w kierunku zgodnym z ruchem wskazówek zegara.

To wszystko cykl, pierwszy krok następuje ponownie. Dla ruchu motorycznego jest krok drugi i czwarty rozumiany jako stabilny. Następnie jest mechanicznie przenoszony z gearboxem 1:30 na pozycję drugiej wskazówki zegarka.

Krok 2: Zasada działania cd

Zasada działania cd
Zasada działania cd
Zasada działania cd
Zasada działania cd
Zasada działania cd
Zasada działania cd
Zasada działania cd
Zasada działania cd

Rysunki pokazują przebieg napięcia na zaciskach silnika. Liczby oznaczają wszystkie sekundy. W rzeczywistości impulsy są znacznie mniejsze w porównaniu do przestrzeni. Są to jedne z milisekund.

Krok 3: Praktyczny demontaż 1

Praktyczny demontaż 1
Praktyczny demontaż 1

Do praktycznego demontażu użyłem jednego z najtańszych zegarów ściennych na rynku. Mają kilka zalet. Po pierwsze, cena jest tak niska, że możemy kupić kilka z nich do eksperymentów. Ponieważ produkcja jest mocno zorientowana na cenę, nie zawierają żadnych skomplikowanych sprytnych rozwiązań ani skomplikowanych śrub. W rzeczywistości nie zawierają żadnych śrub, a jedynie plastikowe zatrzaski. Potrzebujemy tylko minimalnych narzędzi. Na przykład potrzebujemy śrubokręta tylko do wydłubania tych zamków.

Do demontażu zegara ściennego potrzebny jest śrubokręt płaski (lub inny sztyft), klamerka do bielizny i mata robocza z podniesionymi krawędziami (nie jest to obowiązkowe, ale ułatwia szukanie kółek i innych drobnych części).

Krok 4: Praktyczny demontaż 2

Praktyczny demontaż 2
Praktyczny demontaż 2
Praktyczny demontaż 2
Praktyczny demontaż 2
Praktyczny demontaż 2
Praktyczny demontaż 2
Praktyczny demontaż 2
Praktyczny demontaż 2

Z tyłu zegara ściennego znajdują się trzy zatrzaski. Dwie górne w pozycji cyfr 2 i 10 można odblokować i otworzyć szklaną osłonę. Przy otwartej szybie można zdjąć wskazówki zegara. Nie ma potrzeby zaznaczania ich pozycji. Zawsze przywrócimy je do pozycji 12:00:00 Gdy wskazówki zegara są wyłączone, możemy odmontować mechanizm zegara. Posiada dwa zatrzaski (w pozycji 6 i 12). Zaleca się wyciągnięcie ruchu tak prosto, jak to możliwe, w przeciwnym razie ruch może się utknąć.

Krok 5: Praktyczny demontaż 3

Praktyczny demontaż 3
Praktyczny demontaż 3
Praktyczny demontaż 3
Praktyczny demontaż 3
Praktyczny demontaż 3
Praktyczny demontaż 3

Wtedy możliwe jest otwarcie ruchu. Posiada trzy zatrzaski. dwie na pozycjach 3 i 9 godzin, a trzecia na 6 godzin. Po otwarciu wystarczy usunąć przezroczyste koło zębate pomiędzy silnikiem a skrzynią biegów a następnie zębnik, który jest połączony z wirnikiem silnika.

Krok 6: Praktyczny demontaż 4

Praktyczny demontaż 4
Praktyczny demontaż 4
Praktyczny demontaż 4
Praktyczny demontaż 4

Cewka silnika i stojan utrzymują się tylko na jednym zatrzasku (po 12 godzinach). Nie trzyma się żadnych szyn zasilających, nakłada się na szyny zasilające tylko przez prasę, a usunięcie nie jest skomplikowane. Cewka jest nakręcona na stojan bez żadnego uchwytu. Można go łatwo zdjąć.

Krok 7: Praktyczny demontaż 5

Praktyczny demontaż 5
Praktyczny demontaż 5
Praktyczny demontaż 5
Praktyczny demontaż 5
Praktyczny demontaż 5
Praktyczny demontaż 5
Praktyczny demontaż 5
Praktyczny demontaż 5

Na spodzie cewki naklejono małą płytkę drukowaną, która zawiera jeden CoB (Chip on Board) z sześcioma wyjściami. Dwa są do zasilania i są zakończone na większych kwadratowych podkładkach na pokładzie do zastosowania szyn zasilających. dwa wyjścia są połączone z kryształem. Nawiasem mówiąc, kryształ ma 32768 Hz i można go odlutować do przyszłego użytku. Ostatnie dwa wyjścia są podłączone do cewki. Uważam, że bezpieczniejsze jest odcinanie śladów na pokładzie i lutowanie przewodów do istniejących padów na pokładzie. Kiedy próbowałem wylutować cewkę i podłączyć przewód bezpośrednio do cewki, zawsze odrywam przewód cewki lub uszkadzam cewkę. Jedną z możliwości jest lutowanie nowych przewodów do płytki. Powiedzmy, że bardziej prymitywne. Bardziej kreatywną metodą jest podłączenie cewki do padów zasilających i utrzymanie szyn zasilających do połączenia z pojemnikiem na baterie. Następnie elektronikę można umieścić w pojemniku na baterie.

Krok 8: Praktyczny demontaż 6

Praktyczny demontaż 6
Praktyczny demontaż 6
Praktyczny demontaż 6
Praktyczny demontaż 6

Jakość lutowania można sprawdzić omomierzem. Cewka ma rezystywność około 200Ω. Gdy wszystko jest w porządku, montujemy zegar ścienny z powrotem. Zwykle wyrzucam szyny zasilające, wtedy mam więcej miejsca na nowe przewody. Zdjęcia są robione przed wyrzuceniem szyn zasilających. Zapominam zrobić następne zdjęcie, gdy zostaną usunięte.

Kiedy skończę kompletować ruch, testuję go używając drugiej wskazówki zegara. Wkładam rękę do osi i podłączam trochę zasilania (użyłem baterii pastylkowej CR2032, ale można też użyć AA 1,5V). Po prostu podłącz zasilanie w jednej biegunowości do przewodów, a następnie ponownie z przeciwną biegunowością. Zegar musi tykać, a wskazówka przesunie się o sekundę. Gdy masz problem z całkowitym cofnięciem, ponieważ przewody zajmują więcej miejsca, po prostu obróć cewkę i połóż ją po przeciwnej stronie. Gdy nie korzystasz z szyn zasilających, nie ma to wpływu na ruch zegara. Jak już zostało powiedziane, odkładając ręce z powrotem, musisz ustawić je tak, aby wskazywały na 12:00:00. Należy mieć prawidłową odległość między wskazówką godzinową i minutową.

Krok 9: Przykłady użycia zegara ściennego

Większość prostych przykładów skupiających się na wyświetlaniu czasu, ale z różnymi modyfikacjami. Bardzo popularna jest modyfikacja o nazwie „Zegar Vetinari”. Wskazując na książkę Terry'ego Pratchetta, w której lord Vetinari ma w swojej poczekalni zegar ścienny, który tyka nieregularnie. Ta nieprawidłowość niepokoi oczekujących ludzi. Drugą popularną aplikacją jest "zegar zatokowy". To znaczy zegar, który przyspiesza i zwalnia w oparciu o krzywą zatok, wtedy ludzie mają wrażenie, że płyną po falach. jednym z moich ulubionych jest „czas na lunch”. Ta modyfikacja oznacza, że zegar nieco przyspieszy w czasie między 11 a 12 godziną (0,8 s), aby wcześniej zjeść obiad; i trochę wolniej w porze lunchu między 12 a 13 godziną (1, 2 sekundy), aby mieć trochę więcej czasu na lunch i nadrobić stracony czas.

Do większości tych modyfikacji wystarczy najprostszy procesor, pracujący z częstotliwością 32768Hz. Ta częstotliwość jest bardzo popularna wśród producentów zegarów, ponieważ łatwo jest zrobić kryształ z tą częstotliwością i nie można dzielić binarnie na pełne sekundy. Wykorzystanie tej częstotliwości dla procesora ma dwie zalety: możemy łatwo przetworzyć kryształ z zegara; a procesory zwykle mają minimalne zużycie na tej częstotliwości. Konsumpcja to coś, co tak często rozwiązujemy, bawiąc się zegarem ściennym. Zwłaszcza, aby móc jak najdłużej zasilać zegar z najmniejszej baterii. Jak już wspomniano, cewka ma rezystywność 200 Ω i jest przystosowana do napięcia ok. 1,5 V (jedna bateria AA). Najtańsze procesory zwykle pracują na nieco większym napięciu, ale z dwoma bateriami (3V) działają wszystkie. Jednym z najtańszych procesorów na naszym rynku jest Microchip PIC12F629, czyli bardzo popularne moduły Arduino. Następnie pokażemy, jak korzystać z obu platform.

Krok 10: Przykłady użycia zegara ściennego PIC

Przykłady użycia zegara ściennego PIC
Przykłady użycia zegara ściennego PIC
Przykłady użycia zegara ściennego PIC
Przykłady użycia zegara ściennego PIC

Procesor PIC12F629 ma napięcie robocze 2,0 V - 5,5 V. Użycie dwóch "baterii Mignon" = ogniw AA (ok. 3V) lub dwóch akumulatorów AA doładowywanych AA (ok. 2, 4V) jest wystarczające. Ale dla cewki zegara jest to dwa razy więcej niż projektowano. Powoduje to co najmniej niepożądany wzrost spożycia. Następnie dobrze jest dodać minimum szeregowy rezystor, który stworzy odpowiedni dzielnik napięcia. Wartość rezystora powinna wynosić około 120Ω dla mocy akumulatora lub 200Ω dla mocy baterii obliczonej dla czystego obciążenia rezystancyjnego. W praktyce wartość ta może być nieco mniejsza około 100 Ω. Teoretycznie wystarczy jeden rezystor połączony szeregowo z cewką. Nadal mam tendencję, z jakiegoś powodu, do postrzegania silnika jako urządzenia symetrycznego, a następnie umieszczania rezystora o rezystancji połówkowej (47 Ω lub 51 Ω) przy każdym zacisku cewki. Niektóre konstrukcje dodają diody zabezpieczające, aby uniknąć ujemnego napięcia na procesorze po odłączeniu cewki. Z drugiej strony moc wyjściowa wyjść procesora wystarcza do podłączenia cewki bezpośrednio do procesora bez żadnego wzmacniacza. Kompletny schemat procesora PIC12F629 będzie wyglądał jak na rysunku 15. Ten schemat dotyczy zegarków bez dodatkowych elementów sterujących. Nadal mamy dostępny jeden pin wejścia/wyjścia GP0 i tylko jedno wejście GP3.

Krok 11: Przykłady użycia zegara ściennego Arduino

Przykłady użycia zegara ściennego Arduino
Przykłady użycia zegara ściennego Arduino
Przykłady użycia zegara ściennego Arduino
Przykłady użycia zegara ściennego Arduino
Przykłady użycia zegara ściennego Arduino
Przykłady użycia zegara ściennego Arduino

Gdy będziemy chcieli korzystać z Arduino, możemy zajrzeć do arkusza danych procesora ATmega328. Procesor ten ma napięcie robocze określone jako 1,8V - 5,5V dla częstotliwości do 4MHz oraz 2,7V - 5,5V dla częstotliwości do 10MHz. Musimy uważać na jedną wadę płytek Arduino. Wadą jest obecność regulatora napięcia na pokładzie. Duża liczba regulatorów napięcia ma problemy z napięciem wstecznym. Problem ten jest szeroko i najlepiej opisany dla regulatora 7805. Na nasze potrzeby musimy zastosować płytkę oznaczoną jako 3V3 (przeznaczoną do zasilania 3,3V) zwłaszcza, że ta płytka zawiera kryształ 8MHz i może być zasilana począwszy od 2,7V (to znaczy dwa AA baterie). Wtedy zastosowany stabilizator to nie 7805, ale jego odpowiednik 3.3V. Gdy chcielibyśmy zasilić płytę bez użycia stabilizatora, mamy dwie opcje. Pierwsza opcja to podłączyć napięcie do pinów "RAW" (lub "Vin") i +3V3 (lub Vcc) razem i uwierzyć, że stabilizatory zastosowane na twojej płytce nie mają zabezpieczenia podnapięciowego. Drugą opcją jest po prostu wyeliminowanie stabilizatora. Do tego dobrze jest użyć Arduino Pro Mini, zgodnie ze schematem odniesienia. Schemat zawiera zworkę SJ1 (na rysunku 16 w czerwonym kółku) przeznaczoną do odłączenia wewnętrznego stabilizatora. Niestety większość klonów nie zawiera tego skoczka.

Kolejną zaletą Arduino Pro Mini jest to, że nie zawiera żadnych dodatkowych konwerterów, które mogą pobierać prąd podczas normalnego działania (czyli mała komplikacja podczas programowania). Płyty Arduino wyposażone są w coraz wygodniejsze procesory, które nie mają wystarczającej mocy na pojedyncze wyjście. Wtedy dobrze jest dodać co najmniej mały wzmacniacz z parą tranzystorów. Podstawowy schemat zasilania bateryjnego będzie wyglądał jak na rysunku.

Ponieważ środowisko Arduino (język "Wiring") posiada atrybuty współczesnych systemów operacyjnych (wtedy ma problemy z dokładnym taktowaniem), warto pomyśleć o wykorzystaniu zewnętrznego źródła zegara dla Timera0 lub Timera1. Oznacza to, że wejścia T0 i T1, są oznaczone jako 4 (T0) i 4 (T1). Do każdego z tych wejść można podłączyć prosty oscylator wykorzystujący kryształ z zegara ściennego. To zależy od tego, jak dokładny zegar chcesz wyprodukować. Rysunek 18 pokazuje trzy podstawowe możliwości. Pierwszy schemat jest bardzo ekonomiczny pod względem użytych komponentów. Zapewnia mniej trójkątne wyjście, ale w pełnym zakresie napięć, to jest dobre do zasilania wejść CMOS. Drugi schemat wykorzystujący falowniki, mogą to być CMOS 4096 lub TTL 74HC04. Schematy są do siebie mniej podobne, są w formie podstawowej. Trzeci schemat z wykorzystaniem układu CMOS 4060, który umożliwia bezpośrednie podłączenie kryształu (odpowiednik 74HC4060 przy użyciu tego samego schematu, ale różnych wartości rezystorów). Zaletą tego układu jest to, że zawiera 14 bitowy dzielnik, wtedy można zdecydować, jaka częstotliwość jest używana jako wejście timera.

Wyjście tego układu można wykorzystać na wejście T0 (pin 4 z oznaczeniem Arduino), a następnie wykorzystać Timer0 z wejściem zewnętrznym. Nie jest to takie praktyczne, ponieważ Timer0 jest używany do funkcji takich jak delay(), milis() czy micros(). Drugą opcją jest podłączenie go do wejścia T1 (pin 5 z oznaczeniem Arduino) i użycie Timera1 z dodatkowym wejściem. Kolejną opcją jest podłączenie go do wejścia przerwań INT0 (pin 2 w oznaczeniu Arduino) lub INT1 (pin 3) i użycie funkcji attachInterrupt() i funkcji rejestru, która jest okresowo wywoływana. Tutaj przydaje się dzielnik oferowany przez żetony 4060, wtedy call nie może być tak częste.

Krok 12: Szybki zegar dla sprzętu do modeli kolejowych

Szybki zegar dla sprzętu do modeli kolejowych
Szybki zegar dla sprzętu do modeli kolejowych
Szybki zegar dla sprzętu do modeli kolejowych
Szybki zegar dla sprzętu do modeli kolejowych
Szybki zegar dla sprzętu do modeli kolejowych
Szybki zegar dla sprzętu do modeli kolejowych

Dla zainteresowania przedstawię jeden przydatny schemat. Potrzebuję podłączyć więcej zegarów ściennych do wspólnego sterowania. Zegary ścienne są daleko od siebie, a dodatkowo charakterystyczne środowisko jest bardziej industrialne z większym szumem elektromagnetycznym. Potem wróciłem do starych systemów autobusów wykorzystujących do komunikacji większe napięcie. Oczywiście nie rozwiązałem pracy na akumulatorze, ale zastosowałem zasilacz stabilizowany 12V. Wzmocniłem sygnał z procesora za pomocą sterownika TC4427 (ma dobrą dostępność i dobrą cenę). Przenoszę wtedy sygnał 12V z możliwym obciążeniem do 0,5A. Do zegarów podrzędnych dodałem proste dzielniki rezystorowe (na rysunku 18 oznaczone jako R101 i R102; Znowu silnik rozumiem jako symetryczny, to nie jest konieczne). Chciałbym zwiększyć redukcję szumów przenosząc większy prąd, wtedy zastosowałem dwa rezystory 100Ω. Do ograniczenia napięcia na cewce silnika podłączony jest prostownik mostkowy B101 równolegle z cewką. Mostek ma zwartą stronę DC, wówczas reprezentuje dwie pary diod antyrównoległych. Dwie diody oznaczają spadek napięcia o około 1,4V, czyli bardzo blisko normalnego napięcia pracy silnika. Potrzebujemy antyrównoległego, ponieważ zasilanie jest naprzemienne w jednej i przeciwnej biegunowości. Całkowity prąd pobierany przez jeden zegar ścienny podrzędny wynosi wtedy (12V - 1.5V) / (100Ω + 100Ω) = 53mA. Jest to wartość akceptowalna, aby uniknąć hałasu.

Oto dwa przełączniki na schemacie, służące do sterowania dodatkowymi funkcjami zegara ściennego (mnożnik prędkości w przypadku modeli kolejowych). Zegar-córka ma jeszcze jedną ciekawą funkcję. Łączy się je dwoma złączami bananowymi 4mm. Na ścianie trzymają zegar ścienny. Jest to przydatne zwłaszcza, gdy chcesz ustawić określony czas przed rozpoczęciem użytkowania, możesz po prostu odłączyć je, a następnie ponownie podłączyć (drewniany klocek jest przymocowany do ściany). Do stworzenia „Big Bena” potrzebne jest drewniane pudełko z czterema parami gniazd. Pudełko to może służyć do przechowywania zegarów, gdy nie są one używane.

Krok 13: Oprogramowanie

Z punktu widzenia oprogramowania sytuacja jest stosunkowo prosta. Opiszmy realizację na chipie PIC12F629 z kryształem 32768Hz (recyklowanym z oryginalnego zegara). Procesor ma jeden cykl instrukcji o długości czterech cykli oscylatora. Kiedy użyjemy wewnętrznego źródła zegara dla dowolnego Timera, będzie to oznaczać cykle instrukcji (zwane fosc/4). Mamy do dyspozycji na przykład Timer0. Częstotliwość wejściowa timera będzie wynosić 32768 / 4 = 8192 Hz. Timer jest ośmiobitowy (256 kroków) i utrzymujemy jego przepełnienie bez żadnych barier. Skupimy się tylko na zdarzeniu przepełnienia timera. Zdarzenie wystąpi z częstotliwością 8192 / 256 = 32Hz. Następnie, gdy chcemy mieć impulsy jednosekundowe, musimy tworzyć impuls co 32 przepełnienia Timera0. Chcielibyśmy, aby zegar działał na przykład cztery razy szybciej, wtedy potrzebujemy przepełnienie 32/4 = 8 dla impulsu. Dla przypadków, w których interesuje nas zaprojektowanie zegara o nieregularnym, ale dokładnym, musimy mieć sumę przepełnień dla kilku impulsów taką samą jak 32× liczba impulsów. Wtedy możemy znaleźć w nieregularnej macierzy zegarów tak: [20, 40, 30, 38]. Wtedy suma wynosi 128, czyli 32×4. Na przykład dla zegara zatokowego [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). Dla naszego zegara użyjemy dwóch wolnych wejść jako definicji dzielnika do szybkiego uruchomienia. Dzielniki podziałki tabeli prędkości są przechowywane w pamięci EEPROM. Główna część programu może wyglądać tak:

Główna pętla:

btfss INTCON, T0IF przejdź do pętli głównej; czekaj na Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; jeśli przełącznik STOP jest aktywny, clrf CLKCNT; kasuj licznik za każdym razem btfsc SW_FAST; jeśli szybki przycisk nie jest wciśnięty, przejdź do NormalTime; obliczyć tylko normalny czas movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; jeśli FCLK i CLKCNT są takie same goto SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bity 7, 6, 5 btfsc STATUS, Z; jeśli CLKCNT>=32 przejdź do MainLoop przejdź do SendPulse

Program za pomocą funkcji SendPulse, która sama tworzy impuls silnika. Funkcja zlicza nieparzyste/parzyste impulsy i na ich podstawie tworzy impuls na jednym lub drugim wyjściu. Funkcja wykorzystująca stałą ENERGISE_TIME. Ta stała określa czas, w którym cewka silnika jest zasilana. Ma więc duży wpływ na konsumpcję. Gdy jest już tak mały, silnik nie jest w stanie dokończyć kroku i czasami zdarza się, że sekundnik się gubi (zwykle gdy sekundnik krąży wokół numeru 9, kiedy idzie "w górę").

Wyślij impuls:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B;goto SendPulseE SendPulseE: movlw 0xNTWyślijPulcfs EC

Pełne kody źródłowe można pobrać na końcu strony www.fucik.name. Sytuacja z Arduino jest trochę skomplikowana, ponieważ Arduino używając wyższego języka programowania i używając własnego kryształu 8MHz, musimy uważać z jakich funkcji korzystamy. Użycie klasycznego delay() jest mało ryzykowne (oblicza czas od uruchomienia funkcji). Lepsze wyniki będą miały zastosowanie bibliotek takich jak Timer1. Wiele projektów Arduino opiera się na zewnętrznych urządzeniach RTC, takich jak PCF8563, DS1302 itp.

Krok 14: Ciekawostki

Ten system wykorzystania silnika zegara ściennego jest uważany za bardzo podstawowy. Istnieje wiele ulepszeń. Na przykład na podstawie pomiaru Back EMF (energii elektrycznej wytwarzanej przez ruch magnesu wirnika). Wtedy elektronika jest w stanie rozpoznać, kiedy ręka jest w ruchu, a jeśli nie, to szybko powtórzyć impuls lub zaktualizować wartość „ENERGISE_TIME”. bardziej przydatną ciekawostką jest „krok wsteczny”. Na podstawie opisu wygląda na to, że silnik jest przeznaczony tylko do jednego kierunku obrotów i nie można go zmienić. Ale jak pokazano na załączonych filmach, zmiana kierunku jest możliwa. Zasada jest prosta. Wróćmy do zasady motorycznej. Wyobraź sobie, że silnik jest w stabilnym stanie drugiego stopnia (rysunek 3). Po podłączeniu napięcia, jak pokazano w pierwszym kroku (Rysunek 2), silnik logicznie zacznie obracać się w odwrotnym kierunku. Gdy impuls będzie wystarczająco krótki i zakończy się nieco, zanim silnik osiągnie stabilny stan, logicznie będzie trochę migotał. Gdy w czasie tego migotania pojawi się kolejny impuls napięciowy jak opisano na trzecim stanie (Rysunek 4), to silnik będzie kontynuował pracę w kierunku, w jakim się uruchomił, to znaczy w odwrotnym kierunku. Mały problem polega na tym, jak określić czas trwania pierwszego impulsu i raz ustalić pewną odległość między pierwszym a drugim impulsem. A najgorsze jest to, że te stałe różnią się dla każdego ruchu zegara, a czasami zmieniają się w przypadkach, gdy wskazówki przesuwają się „w dół” (około cyfry 3) lub w górę (około cyfry 9) oraz w neutralnych pozycjach (około cyfr 12 i 6). Dla przypadku przedstawionego na filmie użyłem wartości i algorytmu przedstawionego w poniższym kodzie:

#definiuj OUT_A_SET 0x02; config dla out a set out b wyczyść

#define OUT_B_SET 0x04; config dla wyjścia b wyczyść #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_SET movwf ECNT B_SET; start z impulsem B movwf GPIO RevPulseLoopA:; krótki czas oczekiwania decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; następnie impuls A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; start z impulsem A movwf GPIO RevPulseLoopB:; krótki czas oczekiwania decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; następnie impuls B movwf GPIO;goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f goto SendPulseLoop bcf OUT_A bcf OUT_B goto MainLoop

Zastosowanie odwrotnych kroków zwiększa możliwość zabawy z zegarem ściennym. Czasami można znaleźć zegar ścienny, który posiada płynny ruch drugiej wskazówki. Nie boimy się tych zegarów, używają prostej sztuczki. Sam silnik jest taki sam jak silnik opisany tutaj, tylko przełożenie jest większe (zwykle o 8:1 więcej) i silnik kręci się szybciej (zwykle 8x szybciej), co daje efekt płynnego ruchu. Gdy zdecydujesz się zmodyfikować te zegary ścienne, nie zapomnij obliczyć żądanego mnożnika.

Zalecana: