Əl divar saatı ilə oynamaq: 14 addım
Əl divar saatı ilə oynamaq: 14 addım
Anonim
Image
Image
İş prinsipi
İş prinsipi

Elektron əl divar saatı (kommersiya markalı kvarts) hazırda xüsusi bir şey deyil. Bir çox mağazada almaq olar. Bəzilərində son dərəcə ucuzdur; qiyməti təxminən 2 avro (50CZK) ilə. Bu aşağı qiymət onlara yaxından baxmaq üçün motivasiya ola bilər. Sonra başa düşdüm ki, bu qədər qaynağı olmayan və əsasən proqramlaşdırma ilə maraqlanan elektronika sahəsində yeni başlayanlar üçün maraqlı oyuncaqlar ola bilər. Ancaq öz inkişafınızı başqalarına təqdim etmək istərdim. Ucuz divar saatı təcrübələrə və yeni başlayanlar sınaqlarına çox dözümlü olduğu üçün əsas fikirləri təqdim etmək istədiyim bu məqaləni yazmağa qərar verdim.

Addım 1: İş prinsipi

İş prinsipi
İş prinsipi
İş prinsipi
İş prinsipi

Hərəkət etmək üçün bir növ pilləli mühərrikdən istifadə edən saatı tanımaq asandır. Artıq bəzi saatları parçalayan, adi pilləli mühərrikdəki iki əvəzinə yalnız bir bobin olduğunu qəbul etdi. Bu vəziyyətdə "tək fazalı" və ya "tək kutuplu" step motordan bəhs edirik. (Bu ad o qədər də tez -tez istifadə olunmur, digər tam yığma step motorları üçün istifadə olunan işarələmə üçün əsasən analoji törəmədir). İş prinsipi haqqında düşünməyə başlayan adam, motorun həmişə düzgün istiqamətdə dönməsinin necə mümkün olduğunu soruşmalıdır. İş prinsipinin təsviri, köhnə mühərrik növlərini göstərən aşağıdakı şəkildən faydalıdır.

İlk görüntüdə A və B terminalları, boz stator və qırmızı-mavi rotorlu bir bobin görünür. Rotor daimi maqnitdən hazırlanmışdır, bu səbəbdən rənglə işarələnməsinin səbəbi, görünən olması, hansı istiqamətdə maqnitlənməsidir (o qədər də vacib deyil, hansı qütb şimalda və cənubda). Statorda rotora yaxın iki "yiv" görə bilərsiniz. İş prinsipi baxımından çox vacibdir. Motor dörd addımda işləyir. Hər bir addımı dörd şəkildən istifadə edərək təsvir edəcəyik.

İlk addımda (ikinci görüntü) mühərrik enerjiləşdirilir, A terminalı müsbət qütbə, B terminalı isə mənfi qütbə bağlanır. Məsələn, ox istiqamətində maqnit axını edir. Rotor mövqeyində dayanır, mövqeyi maqnit axına uyğun gəlir.

İkinci addım elektrik kəsildikdən sonra baş verir. Sonra statordakı maqnit axını dayandırılır və maqnitin mövqeyə dönmə meyli var, qütbləşmə statorun maksimum həcmli maqnit yumşaq materialı istiqamətindədir. Və burada bu iki yiv çox vacibdir. Maksimum həcmdə kiçik sapmalara işarə edirlər. Sonra rotor bir az saat əqrəbi istiqamətində fırlanır. Şəkil 3 -də göstərildiyi kimi.

Növbəti addım (dördüncü şəkil) geriyə bağlı olan əks polariteylə əlaqədardır (A terminalı mənfi qütbə, B terminalı müsbət qütbə). Bu o deməkdir ki, rotordakı maqnit bobinlə maqnit sahəsi istiqamətində fırlanacaq. Rotor ən qısa istiqaməti, yəni yenə də saat yönünün əksinə istifadə edir.

Son (dördüncü) addım (beşinci şəkil) ikinci ilə eynidir. Motor yenidən gərginliksizdir. Yalnız bir fərq, maqnitin başlanğıc mövqeyi əksinədir, ancaq rotor yenidən maksimum material həcmi istiqamətində hərəkət edəcək. Yenə də bir az saat yönünün əksinədir.

Bütün dövr budur, ilk addım yenə də davam edir. Motor hərəkəti üçün iki və dördüncü addımlar sabit kimi başa düşülür. Daha sonra mexaniki olaraq sürət qutusu 1:30 ötürmə dərəcəsi ilə saatın ikinci əlinin mövqeyinə keçir.

Addım 2: İş prinsipi Davam

İş prinsipi Davam
İş prinsipi Davam
İş prinsipi Davam
İş prinsipi Davam
İş prinsipi Davam
İş prinsipi Davam
İş prinsipi Davam
İş prinsipi Davam

Şəkillər motor terminallarında gərginlik dalğa formasını göstərir. Nömrələr bütün saniyələr deməkdir. Əslində pulslar boşluqlarla müqayisədə daha kiçikdir. Təxminən milisaniyələrdir.

Addım 3: Praktiki Sökmə 1

Praktik Sökmə 1
Praktik Sökmə 1

Praktiki olaraq sökmək üçün bazarda ən ucuz divar saatlarından birini istifadə etdim. Onların az sayda müsbət tərəfi var. Birincisi, bu qiymət o qədər aşağıdır ki, onlardan bir neçəsini təcrübə üçün ala bilərik. İstehsal qiymətə çox yönəldildiyindən, heç bir mürəkkəb ağıllı həllər və mürəkkəb vintlər ehtiva etmir. Əslində heç bir vida yoxdur, yalnız plastik klik kilidləri. Yalnız minimum vasitələrə ehtiyacımız var. Məsələn, yalnız kilidləri çıxarmaq üçün bir tornavida lazımdır.

Divar saatının sökülməsi üçün düz uçlu tornavida (və ya hər hansı digər çubuq), paltar mıxına və kənarları qaldırılmış iş matına ehtiyacımız var (bu məcburi deyil, ancaq təkərlərin və digər kiçik hissələrin axtarışını asanlaşdırın).

Addım 4: Praktiki Sökmə 2

Praktiki Sökmə 2
Praktiki Sökmə 2
Praktiki Sökmə 2
Praktiki Sökmə 2
Praktiki Sökmə 2
Praktiki Sökmə 2
Praktiki Sökmə 2
Praktiki Sökmə 2

Divar saatının arxa tərəfində üç kilid tapa bilərsiniz. 2 və 10 nömrəli mövqedəki iki üst kilid açıla bilər və qapaq şüşəsi açıla bilər Şüşə açıq olduqda saat əqrəblərini çıxarmaq mümkündür. Onların mövqeyini qeyd etmək lazım deyil. Həmişə onları 12:00:00 mövqeyinə qaytaracağıq. Saat əqrəbləri bağlı olmadıqda, saat hərəkətini ayıra bilərik. İki mandalı var (6 və 12 -ci mövqedə). Hərəkəti mümkün qədər düz çəkmək tövsiyə olunur, əks halda hərəkət sıxışa bilər.

Addım 5: Praktiki Sökmə 3

Praktik Sökmə 3
Praktik Sökmə 3
Praktik Sökmə 3
Praktik Sökmə 3
Praktik Sökmə 3
Praktik Sökmə 3

Sonra hərəkəti açmaq mümkündür. Üç kilidi var. 3 -cü və 9 -cu mövqelərdə ikisi, sonra 6 -da üçüncü. Açıldıqda, mühərriklə şanzıman arasındakı şəffaf dişli çarxı çıxarmaq kifayətdir, sonra isə motorun rotoru ilə bağlanmış pinyonu.

Addım 6: Praktik Sökmə 4

Praktik Sökmə 4
Praktik Sökmə 4
Praktik Sökmə 4
Praktik Sökmə 4

Motor bobini və stator yalnız bir mandalı tutur (12 saat). Heç bir elektrik rayına yapışmır, elektrik raylarına yalnız mətbuatla tətbiq olunur, sonra çıxarmaq çətin deyil. Bobin heç bir tutucu olmadan statora yivlənir. Asanlıqla çıxarıla bilər.

Addım 7: Praktiki Sökmə 5

Praktik Sökmə 5
Praktik Sökmə 5
Praktik Sökmə 5
Praktik Sökmə 5
Praktik Sökmə 5
Praktik Sökmə 5
Praktik Sökmə 5
Praktik Sökmə 5

Bobin alt tərəfində altı çıxışı olan bir CoB (Chip on Board) olan kiçik çaplı elektron lövhə yapışdırılmışdır. İki güc üçündür və elektrik raylarını tətbiq etmək üçün gəmidəki daha böyük kvadrat yastiqciqlar üzərində sona çatır. iki çıxış kristal ilə bağlıdır. Yeri gəlmişkən, kristal 32768Hz-dir və gələcəkdə istifadə üçün lehimlənə bilər. Son iki çıxış bobinə bağlıdır. Gəmidəki izləri kəsmək və təyyarədəki mövcud yastiqciklərə lehimləmək daha təhlükəsiz hesab etdim. Bobini lehimdən çıxarmaq və teli birbaşa bobinə bağlamaq istədikdə, həmişə bobin telini qoparıram və ya bobini zədələyirəm. Lövhəyə yeni tellərin lehimlənməsi bir ehtimaldır. Deyək ki, daha primitivdir. Daha yaradıcı bir üsul, bobini elektrik yastıqlarına bağlamaq və batareya qutusuna qoşulmaq üçün relsləri saxlamaqdır. Daha sonra elektronika batareyanın qutusuna yerləşdirilə bilər.

Addım 8: Praktik Sökmə 6

Praktik Sökmə 6
Praktik Sökmə 6
Praktik Sökmə 6
Praktik Sökmə 6

Lehimləmə keyfiyyəti ohmmetre ilə yoxlanıla bilər. Bobin təxminən 200Ω müqavimətə malikdir. Hər şey qaydasına düşdükdən sonra divar saatını geri yığırıq. Ümumiyyətlə elektrik raylarını atıram, sonra yeni tellərim üçün daha çox yerim var. Fotoşəkillər elektrik relsləri atılmadan əvvəl çəkilir. Növbəti fotoşəkilləri çıxardıqdan sonra çəkməyi unuduram.

Hərəkəti tamamladıqda, ikinci saat əli ilə sınayıram. Əlimi oxuna qoydum və bir az güc bağladım (CR2032 sikkə batareyası istifadə etdim, amma AA 1, 5V də istifadə edilə bilər). Gücü bir polaritədə tellərə bağlayın və sonra yenidən əks polariteye bağlayın. Saat işarələnməli və əl bir saniyə hərəkət etməlidir. Hərəkəti başa çatdırmaq üçün problem yarandıqdan sonra, tellər daha çox yer tutduğundan, onu döndərin, əks tərəfə qoyun. Elektrik raylarından istifadə etmədikdən sonra saatın hərəkətinə heç bir təsiri yoxdur. Daha əvvəl də qeyd edildiyi kimi, əlləri geri qoyarkən, saat 12: 00 -a işarə etməlisiniz. Saat və dəqiqə əlləri arasında düzgün məsafəyə sahib olmaqdır.

Addım 9: Divar Saatı İstifadə Nümunələri

Vaxt göstərməyə yönəlmiş sadə nümunələrin əksəriyyəti, lakin müxtəlif dəyişikliklərlə. "Vetinari Clock" adlanan modifikasiya çox populyardır. Lord Vetinari'nin gözləmə otağında divar saatı olduğu Terri Pratchett kitabına işarə edərək, düzensizdir. Bu qanunsuzluq gözləyən insanları narahat edir. İkinci məşhur tətbiq "sinus saatı" dır. Sinus əyrisi əsasında sürətlənən və yavaşlayan saat deməkdir, sonra insanlar hiss edir, dalğalar üzərində üzürlər. ən çox sevdiyim biri "nahar vaxtı" dır. Bu dəyişiklik, o saatın 11-12 saat (0.8 saniyə) arasında bir az daha sürətli getdiyini, daha əvvəl nahar etməsini; nahar zamanı 12-13 saat (1, 2 saniyə) arasında bir az daha yavaş, nahar üçün bir az daha çox vaxt ayırmaq və itirilmiş vaxtın əvəzini çıxarmaq.

Bu dəyişikliklərin əksəriyyəti üçün 32768Hz iş tezliyi istifadə edərək ən sadə prosessoru istifadə etmək kifayətdir. Bu tezlik saat istehsalçıları arasında çox populyardır, çünki bu tezliklə büllur düzəltmək asandır və saniyələrə bölünən asan ikili olmasını qadağan edir. Prosessor üçün bu tezliyi istifadə etməyin iki faydası var: kristalın saatdan asanlıqla dövr etməsini təmin edə bilərik; və prosessorların adətən bu tezlikdə minimum istehlakı var. İstehlak, divar saatı ilə oynayarkən tez -tez həll etdiyimiz bir şeydir. Xüsusilə mümkün olduğu qədər ən kiçik batareyadan güc saatı ala bilmək. Artıq qeyd edildiyi kimi, bobin 200Ω müqavimətə malikdir və cca 1, 5V (bir AA batareya) üçün nəzərdə tutulmuşdur. Ən ucuz prosessorlar ümumiyyətlə daha böyük gərginliklə işləyir, lakin hamısı işləyən iki batareya (3V) ilə işləyir. Bazarımızdakı ən ucuz prosessorlardan biri Microchip PIC12F629 və ya çox məşhur Arduino modullarıdır. Sonra hər iki platformadan necə istifadə edəcəyimizi göstərəcəyik.

Addım 10: Divar Saatı İstifadə Nümunələri PIC

Divar Saatı İstifadə Nümunələri PIC
Divar Saatı İstifadə Nümunələri PIC
Divar Saatı İstifadə Nümunələri PIC
Divar Saatı İstifadə Nümunələri PIC

PIC12F629 prosessoru 2.0V - 5.5V işləmə gərginliyinə malikdir. İki "mignon batareyası" = AA hüceyrələrinin (cca 3V) və ya iki AA şarj edilə bilən AA akkumulyatorunun (cca 2, 4V) istifadəsi kifayətdir. Ancaq saat bobini üçün nəzərdə tutulduğundan iki dəfə çoxdur. İstehlak minimum artım səbəb olur. Sonra uyğun bir gərginlik bölücüsü yaradacaq minimum seriyalı rezistor əlavə etmək yaxşıdır. Rezistorun dəyəri akkumulyator gücü üçün təxminən 120Ω və ya təmiz müqavimətli yük üçün hesablanmış batareya gücü üçün 200Ω olmalıdır. Praktikada dəyər təxminən 100Ω -dən bir qədər kiçik ola bilər. Teoriyada, bobinli bir sıra rezistor kifayətdir. Hələ də nədənsə mühərriki simmetrik bir cihaz kimi görməyə və sonra hər bir bobin terminalının yanına (47Ω və ya 51Ω) müqavimət qoymağa meylim var. Bobin kəsildikdə prosessora mənfi gərginlik verməmək üçün qoruyucu diodlar əlavə edən bəzi konstruksiyalar. Digər tərəfdən, prosessorun çıxış gücü, bobini heç bir gücləndirici olmadan birbaşa prosessora bağlamaq üçün kifayətdir. PIC12F629 prosessoru üçün tam sxem, şəkil 15 -də göstərildiyi kimi görünəcək. Bu sxem əlavə nəzarət elementləri olmayan saatlar üçün etibarlıdır. Hələ də bir giriş/çıxış pinimiz var GP0 və bir giriş yalnız GP3.

Addım 11: Divar Saatı İstifadə Nümunələri Arduino

Arduino divar saatı istifadə nümunələri
Arduino divar saatı istifadə nümunələri
Arduino divar saatı istifadə nümunələri
Arduino divar saatı istifadə nümunələri
Arduino divar saatı istifadə nümunələri
Arduino divar saatı istifadə nümunələri

Arduino -dan istifadə etmək istədikdən sonra ATmega328 prosessoru üçün məlumat cədvəlinə baxa bilərik. Bu prosessor 4MHz -ə qədər tezlik üçün 1.8V - 5.5V və 10MHz -ə qədər tezlik üçün 2.7V - 5, 5V olaraq təyin olunan iş gərginliyinə malikdir. Arduino lövhələrinin bir çatışmazlığı ilə diqqətli olmalıyıq. Bu çatışmazlıq təyyarədə gərginlik tənzimləyicisinin olmasıdır. Böyük miqdarda gərginlik tənzimləyicilərində əks gerilim problemi var. Bu problem 7805 tənzimləyicisi üçün geniş şəkildə və ən yaxşı şəkildə təsvir edilmişdir. Ehtiyaclarımız üçün 3V3 (3.3V güc üçün nəzərdə tutulmuşdur) kimi işarələnmiş lövhədən istifadə etməliyik, çünki bu lövhədə kristal 8MHz var və 2, 7V (iki AA deməkdir) batareyalar). Sonra istifadə olunan stabilizator 7805 deyil, 3.3V ekvivalenti olacaq. Stabilizatordan istifadə etmədən elektrik lövhəsini işə salmaq istədikdə iki seçimimiz var. Birinci seçim, gərginliyi "RAW" (və ya "Vin") və +3V3 (və ya Vcc) pinlərinə birlikdə bağlayın və lövhənizdə istifadə olunan stabilizatorun aşağı gərginlik qorunması olmadığını düşünün. İkinci seçim stabilizatoru aradan qaldırmaqdır. Bunun üçün istinad sxeminə əsasən Arduino Pro Mini istifadə etmək yaxşıdır. Bu sxem, daxili stabilizatoru ayırmaq üçün nəzərdə tutulmuş SJ1 tullanan keçiddən ibarətdir (qırmızı dairədə şəkil 16 -da). Təəssüf ki, klonların əksəriyyətində bu tullanan yoxdur.

Arduino Pro Mini -nin başqa bir üstünlüyü ondan ibarətdir ki, normal işləyərkən elektrik enerjisini istehlak edə biləcək əlavə çeviricilərin olmamasıdır (bu proqramlaşdırma zamanı kiçik bir komplikasiyadır). Arduino lövhələri tək çıxış üçün kifayət qədər gücə malik olmayan daha rahat prosessorlar ilə təchiz edilmişdir. Sonra bir cüt tranzistor istifadə edərək minimum kiçik çıxış gücləndiricisini əlavə etmək yaxşıdır. Batareya gücü üçün əsas sxem, şəkildə göstərildiyi kimi olacaq.

Arduino mühiti ("Kablolama" dili) müasir əməliyyat sistemlərinin xüsusiyyətlərinə malik olduğundan (sonra dəqiq zamanlama ilə bağlı problemlər yaranır), Timer0 və ya Timer1 üçün xarici saat mənbəyinin istifadəsi barədə düşünmək yaxşıdır. T0 və T1 girişləri deməkdir, onlar 4 (T0) və 4 (T1) kimi qeyd olunur. Divar saatından büllur istifadə edən sadə osilatör bu girişlərdən hər hansı birinə qoşula bilər. İstehsal etmək istədiyiniz saatdan asılıdır. Şəkil 18 üç əsas imkanı göstərir. Birinci sxem istifadə olunan komponentlərin mənası baxımından çox qənaətlidir. Daha az üçbucaqlı çıxış təmin edir, lakin tam gərginlik aralığında CMOS girişlərini gücləndirmək üçün yaxşıdır. İnverterlərdən istifadə edərək ikinci sxematik olaraq CMOS 4096 və ya TTL 74HC04 ola bilər. Şemalar bir -birinə daha az bənzəyir, əsas formadadır. Kristalın birbaşa bağlanmasına imkan verən CMOS 4060 çipindən istifadə edən üçüncü sxem (eyni sxematik, lakin fərqli rezistor dəyərləri ilə bərabər 74HC4060). Bu dövrənin üstünlüyü ondan ibarətdir ki, 14 bitlik bölücüdən ibarətdir, onda taymer girişi olaraq hansı tezliyin istifadə olunacağına qərar vermək mümkündür.

Bu dövrənin çıxışı T0 girişi üçün istifadə edilə bilər (Arduino işarəsi olan pin 4) və sonra xarici giriş ilə Timer0 istifadə edin. Bu o qədər də praktik deyil, çünki Timer0 gecikmə (), milis () və ya mikros () kimi funksiyalar üçün istifadə olunur. İkinci seçim onu T1 girişinə (Arduino işarəsi olan pin 5) bağlamaq və əlavə girişlə Timer1 istifadə etməkdir. Növbəti seçim onu INT0 (Arduino işarəsindəki pin 2) və ya INT1 (pin 3) girişini kəsmək və vaxtaşırı olaraq adlandırılan attachInterrupt () funksiyasından istifadə etmək və qeyd etmək funksiyasıdır. Burada 4060 çipləri tərəfindən təklif olunan faydalı bir bölücü var, onda zəng o qədər də tez olmamalıdır.

Addım 12: Model Dəmiryolçuları üçün Tez Saat

Model Dəmiryolçuları üçün Tez Saat
Model Dəmiryolçuları üçün Tez Saat
Model Dəmiryolçuları üçün Tez Saat
Model Dəmiryolçuları üçün Tez Saat
Model Dəmiryolçuları üçün Tez Saat
Model Dəmiryolçuları üçün Tez Saat

Maraq üçün bir faydalı sxem təqdim edəcəyəm. Ümumi idarəyə daha çox divar saatı bağlamalıyam. Divar saatları bir -birindən çox uzaqdadır və üst tərəfində daha böyük elektromaqnit səs -küyü ilə ətraf mühitin xüsusiyyəti daha çox sənaye xarakterlidir. Daha sonra ünsiyyət üçün daha böyük gərginlik istifadə edərək köhnə avtobus sistemlərinə qayıtdım. Əlbəttə ki, batareyada işləməyi həll etmədim, amma 12V sabitləşdirilmiş enerji təchizatı istifadə etdim. Sürücü TC4427 istifadə edərək prosessordan gələn siqnalı gücləndirdim (yaxşı mövcudluğu və yaxşı qiyməti var). Sonra 0,5A -a qədər yüklə 12V siqnal daşıyıram. Qul saatlarında sadə rezistor bölücülər əlavə etdim (şəkil 18 -də R101 və R102 kimi qeyd olunmuşdur; Yenə motoru simmetrik olaraq başa düşürəm, buna ehtiyac yoxdur). Daha çox cərəyan keçirərək səs -küyün azaldılmasını artırmaq istərdim, sonra iki rezistor 100Ω istifadə etdim. Motor bobinindəki gərginliyi məhdudlaşdırmaq üçün bobinə paralel olaraq B101 körpü düzəldicisi bağlanır. Körpünün DC tərəfi qısaldılmışdır, sonra iki cüt paralel əleyhinə diodları təmsil edir. İki diod, təxminən 1.4V gərginliyin düşməsi deməkdir ki, bu da motor üçün normal iş gərginliyinə çox yaxındır. Anti-paralelə ehtiyacımız var, çünki güc bir və əks qütbdə dəyişir. Bir qul divar saatının istifadə etdiyi ümumi cərəyan o zaman (12V - 1.5V) / (100Ω + 100Ω) = 53mA -dır. Səs -küyün qarşısını almaq üçün bu məqbul dəyərdir.

Budur sxemlərin iki açarı, onlar divar saatının əlavə funksiyalarını idarə etmək üçündür (model dəmiryolçuları üçün sürət çarpanı). Qız saatının daha bir maraqlı xüsusiyyəti var. İki ədəd 4 mm -lik banan konnektoru istifadə edərək bağlanırlar. Divarda divar saatı tuturlar. Xüsusilə istifadə etməyə başlamazdan əvvəl müəyyən bir vaxt təyin etmək istədiyiniz zaman faydalıdır, sadəcə olaraq onları ayırıb yenidən bağlaya bilərsiniz (taxta blok divara bərkidilir). "Big Ben" yaratmaq istəyirsinizsə, dörd cüt yuvalı taxta qutuya ehtiyacınız var. Bu qutu, istifadə edilmədikdə saatlar üçün saxlama yeri kimi istifadə edilə bilər.

Addım 13: Proqram təminatı

Proqram baxımından vəziyyət nisbətən sadədir. Kristal 32768Hz istifadə edərək PIC12F629 çipində həyata keçirilməsini təsvir edək (orijinal saatdan təkrar). Prosessorun dörd təlimat dövrü olan bir təlimat dövrü var. Hər hansı bir Taymer üçün daxili saat mənbəyindən istifadə etdikdən sonra bu təlimat dövrləri deməkdir (fosc/4 adlanır). Məsələn Timer0 var. Taymerin giriş tezliyi 32768/4 = 8192Hz olacaq. Taymer səkkiz bitdir (256 addım) və heç bir maneə olmadan daşmasını təmin edirik. Yalnız timer daşması hadisəsinə diqqət yetirəcəyik. Hadisə 8192 /256 = 32Hz tezliyi ilə baş verəcək. Sonra bir saniyədə nəbz vurmaq istədikdə, Timer0 -in hər 32 daşqınında nəbz yaratmalıyıq. Saatın dörd dəfə daha sürətli işləməsini istərdiksə, nəbz üçün 32/4 = 8 daşmasına ehtiyacımız var. Saatı düzensiz, lakin dəqiq dizayn etmək istədiyimiz hallar üçün, 32 × darbe sayı ilə eyni olan bir neçə paxlalı daşqınların cəminə sahib olmalıyıq. Sonra nizamsız saatlar matrisinə bu cür daxil ola bilərik: [20, 40, 30, 38]. Sonra cəm 128 -dir, yəni 32 × 4 -ə bərabərdir. Sinus saatı üçün [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). Saatımız üçün sürətli qaçış üçün ayırıcının tərifi olaraq iki pulsuz girişdən istifadə edəcəyik. Sürət üçün cədvəl bölücüləri EEPROM yaddaşında saxlanılır. Proqramın əsas hissəsi belə görünə bilər:

MainLoop:

btfss INTCON, T0IF var MainLoop; Timer0 bcf INTCON, T0IF inc CLKCNT, f btfss SW_STOP üçün gözləyin; STOP açarı aktivdirsə, CLKCNT clrf; hər dəfə btfsc SW_FAST sayğacını təmizləyin; sürətli düyməyə basılmazsa, goto NormalTime; yalnız normal vaxt movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; əgər FCLK və CLKCNT SendPulse NormalTime ilə eynidirsə: movf CLKCNT, w andlw 0xE0; bit 7, 6, 5 btfsc STATUS, Z; əgər CLKCNT> = 32 goto MainLoop goto SendPulse

SendPulse funksiyasından istifadə edən proqram, bu funksiya motor nəbzini özü yaradır. Funksiya tək/cüt nəbzi sayır və buna əsaslanaraq bir və ya ikinci çıxışda nəbz yaradır. Daimi ENERGISE_TIME istifadə edən funksiya. Bu sabit müddət, motor bobininin enerjili olmasıdır. Buna görə istehlaka böyük təsir göstərir. Kiçik olduqdan sonra mühərrik addım ata bilmir və bəzən elə olur ki, ikinci saniyə itirilir (adətən ikinci əl 9 nömrənin ətrafında hərəkət edərkən "yuxarı" gedir).

SendPulse:

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 movwf ECNT OlabToPlOltPulPlOl

Tam mənbə kodları www.fucik.name səhifəsinin sonunda yüklənə bilər. Arduino ilə vəziyyət bir az mürəkkəbdir, çünki Arduino daha yüksək proqramlaşdırma dili və öz 8MHz kristalını istifadə edərək hansı funksiyaları istifadə etdiyimizə diqqətli olmalıyıq. Klassik gecikmənin () istifadəsi az risklidir (funksiyanın başlanğıcından vaxt hesablanır). Daha yaxşı nəticələr Timer1 kimi kitabxanalardan istifadə edəcək. Bir çox Arduino layihəsi PCF8563, DS1302 və s. Kimi xarici RTC cihazlarına etibar edir.

Addım 14: Maraqlar

Bu divar saatı mühərrikinin istifadəsi sistemi çox əsas kimi başa düşülür. Bir çox təkmilləşdirmə var. Məsələn, geri EMF (rotor maqnitinin hərəkəti nəticəsində yaranan elektrik enerjisi) ölçülməsinə əsaslanır. Daha sonra elektron əlləri hərəkətə gətirdikdən sonra tanımağa qadirdir, yoxsa nəbzini tez bir zamanda təkrarlaya və ya "ENERGISE_TIME" dəyərini yeniləyə bilər. daha faydalı maraq "tərs addım" dır. Təsvirə əsasən, bu motor yalnız bir dönmə istiqaməti üçün hazırlanmışdır və dəyişdirilə bilməz. Ancaq əlavə edilmiş videolarda göstərildiyi kimi istiqamət dəyişikliyi mümkündür. Prinsip sadədir. Motor prinsipinə qayıdaq. Təsəvvür edin ki, motor ikinci pillədə sabit vəziyyətdədir (Şəkil 3). Gərginliyi ilk addımda göstərildiyi kimi bağladıqdan sonra (Şəkil 2), motor məntiqi olaraq əks istiqamətdə fırlanmağa başlayacaq. Nəbz kifayət qədər qısa olacaq və motor sabit vəziyyətə gəlməzdən əvvəl bir qədər bitəcəksə, məntiqi olaraq bir az titrəyəcək. Bir dəfə bu titrəmə zamanı üçüncü vəziyyətdə təsvir edildiyi kimi növbəti gərginlik pulsu gələcək (Şəkil 4), sonra motor başladığı istiqamətlə tərs istiqamətdə davam edəcək. Kiçik bir problem, ilk nəbzin müddətinin necə təyin ediləcəyi və bir dəfə birinci və ikinci nəbz arasında müəyyən bir məsafə yaratmaqdır. Və ən pisi odur ki, bu sabitlərin hər saat hərəkəti üçün, bəzən də hallar üçün dəyişməsi, əllərin "aşağı" (3 -cü nömrə ətrafında) və ya yuxarıda (9 -cu rəqəm ətrafında), eləcə də neytral mövqelərdə (təxminən 12 və 6 -cı nömrələrdə) olmasıdır.. Videoda təqdim olunan hal üçün aşağıdakı kodda təqdim olunan dəyərləri və alqoritmi istifadə etdim:

#define OUT_A_SET 0x02; müəyyən etmək üçün konfiqurasiya b

#define OUT_B_SET 0x04; konfiqurasiya aydın bir #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECB movlw OUTB nəbz B movwf GPIO RevPulseLoopA ilə başlayın:; qısa müddət gözləyin decfsz ECNT, foo RevPulseLoopA movlw OUT_A_SET; sonra pulse A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; nəbzlə başlayın A movwf GPIO RevPulseLoopB:; qısa vaxt gözləyin decfsz ECNT, foo RevPulseLoopB movlw OUT_B_SET; sonra puls 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

Əks addımların istifadəsi divar saatı ilə oynamaq ehtimalını artırır. Bəzən ikinci əlin hamar hərəkəti olan divar saatı tapa bilərik. O saatdan qorxmuruq, sadə bir hiylə istifadə edirlər. Motorun özü burada təsvir olunan mühərriklə eynidir, yalnız dişli nisbəti daha böyükdür (adətən 8: 1 daha çox) və motor daha sürətli fırlanır (adətən 8 dəfə daha sürətli), bu da hamar hərəkətə təsir edir. Bu divar saatını dəyişdirməyə qərar verdikdən sonra, tələb olunan çarpan hesablamağı unutmayın.

Tövsiyə: