Elle Oynamak Duvar Saati: 14 Adım
Elle Oynamak Duvar Saati: 14 Adım
Anonim
Image
Image
Çalışma prensibi
Çalışma prensibi

Elektronik el duvar saati (ticari markalı kuvars) günümüzde özel bir şey değildir. Birçok mağazadan satın alınabilir. Bazılarında son derece ucuzlar; fiyatı yaklaşık 2€ (50CZK). Bu düşük fiyat, onlara daha yakından bakmak için motivasyon olabilir. Sonra fark ettim ki, çok fazla kaynağa sahip olmayan ve esas olarak programlamayla ilgilenen elektronikte yeni başlayanlar için ilginç oyuncaklar olabilir. Ancak kendi gelişimini başkalarına sunmak isterim. Ucuz duvar saatleri, deneylere ve yeni başlayan denemelere karşı çok toleranslı olduğu için, temel fikirleri sunmak istediğim bu makaleyi yazmaya karar verdim.

Adım 1: Çalışma Prensibi

Çalışma prensibi
Çalışma prensibi
Çalışma prensibi
Çalışma prensibi

Bu saatin hareket için bir çeşit step motor kullandığını anlamak kolaydır. Zaten bazı saatleri parçalayan kişi, normal step motorda iki bobin yerine sadece bir bobin olduğunu fark etti. Bu durumda "tek fazlı" veya "tek kutuplu" step motordan bahsediyoruz. (Bu ad çok sık kullanılmaz, çoğunlukla diğer tam yığın step motorlar için kullanılan markalama için analog türetmedir). Çalışma prensibini düşünmeye başlayan, motorun her zaman doğru yönde dönmesinin nasıl mümkün olduğunu sormalıdır. Çalışma prensibi için açıklama, eski motor türlerini gösteren aşağıdaki resimde faydalıdır.

İlk görüntüde A ve B terminallerine sahip bir bobin, gri stator ve kırmızı-mavi rotor görülmektedir. Rotor kalıcı mıknatıstan yapılmıştır, bu nedenle renkle işaretlenmiştir, görünür olması, hangi yönde manyetize olduğu (çok önemli değil, hangi kutbun kuzey ve neyin güney olduğu). Statorda rotora yakın iki "oluk" görebilirsiniz. Çalışma prensibi açısından çok önemlidirler. Motor dört adımda çalışır. Her adımı dört resim kullanarak açıklayacağız.

İlk adımda (ikinci resim) motora enerji verilir, bu terminal A pozitif kutba ve terminal B negatif kutba bağlanır. Örneğin ok yönünde manyetik akı yapar. Rotor, konumu manyetik akı ile uyumlu olacak şekilde duracaktır.

İkinci adım, gücün kesilmesinden sonra gelir. Daha sonra statordaki manyetik akı durdurulur ve mıknatıs pozisyona dönme eğilimi gösterir, polarizasyonu statorun maksimum hacim manyetik yumuşak malzemesi yönündedir. Ve işte bu iki oluk çok önemli. Maksimum hacmin küçük sapmasına işaret ediyorlar. Daha sonra rotor biraz saat yönünde döndürülür. Resim 3'te gösterildiği gibi.

Sonraki adım (dördüncü resim) voltaja bağlı ters polaritedir (terminal A'dan negatif kutba, terminal B'den pozitif kutba). Yani rotordaki mıknatıs bobin ile manyetik alan yönünde dönecektir. Rotor en kısa yönü kullanır, yani yine saat yönünde.

Son (dördüncü) adım (beşinci resim) ikinci ile aynıdır. Motor yine gerilimsiz. Tek fark, mıknatısın başlangıç pozisyonunun zıt olması, ancak rotorun tekrar maksimum malzeme hacmi yönünde hareket etmesidir. Bu yine biraz saat yönünde konumdur.

Tüm döngü budur, ilk adım tekrar gelir. Motor hareketi için, ikinci ve dördüncü adımlar kararlı olarak anlaşılır. Daha sonra saatin saniye ibresinin konumuna 1:30 aktarım hızında şanzıman ile mekanik olarak aktarılır.

Adım 2: Çalışma Prensibi Devam

Çalışma Prensibi Devam
Çalışma Prensibi Devam
Çalışma Prensibi Devam
Çalışma Prensibi Devam
Çalışma Prensibi Devam
Çalışma Prensibi Devam
Çalışma Prensibi Devam
Çalışma Prensibi Devam

Şekiller, motor terminallerindeki voltaj dalga biçimini göstermektedir. Sayılar tüm saniyeler anlamına gelir. Gerçekte darbeler, boşluklara kıyasla çok daha küçüktür. Onlar yaklaşık milisaniyedir.

Adım 3: Pratik Sökme 1

Pratik Sökme 1
Pratik Sökme 1

Pratik sökme için piyasadaki en ucuz duvar saatlerinden birini kullandım. Birkaç profesyonelleri var. Birincisi, bu fiyat o kadar düşük ki, deneyler için birkaçını satın alabiliriz. Üretim, güçlü bir şekilde fiyat odaklı olduğundan, karmaşık vidaların yanı sıra karmaşık akıllı çözümler içermezler. Gerçekte herhangi bir vida içermezler, sadece plastik tıklama kilitleri içerirler. Sadece minimum araçlara ihtiyacımız var. Örneğin, sadece bu kilitleri oymak için tornavidaya ihtiyacımız var.

Duvar saatini sökmek için düz uçlu bir tornavidaya (veya başka bir dürtme çubuğuna), elbise mandalına ve kenarları yükseltilmiş çalışma matına ihtiyacımız var (bu zorunlu değildir, ancak tekerlekleri ve diğer küçük parçaları aramayı daha kolay hale getirir).

Adım 4: Pratik Sökme 2

Pratik Sökme 2
Pratik Sökme 2
Pratik Sökme 2
Pratik Sökme 2
Pratik Sökme 2
Pratik Sökme 2
Pratik Sökme 2
Pratik Sökme 2

Duvar saatinin arka tarafında üç adet mandal bulunur. 2 ve 10 numara konumundaki iki adet üst kapak açılabilir ve kapak camı açılabilir Cam açıkken saat ibrelerini çekmek mümkündür. Bunların konumunu işaretlemek gerekli değildir. Onları her zaman 12:00:00 konumuna geri getireceğiz Saat ibreleri kapalıyken, saat hareketini kaldırabiliriz. İki mandalı vardır (6 ve 12 konumunda). Hareketi mümkün olduğunca düz çekmeniz önerilir, aksi takdirde hareket sıkışabilir.

Adım 5: Pratik Sökme 3

Pratik Sökme 3
Pratik Sökme 3
Pratik Sökme 3
Pratik Sökme 3
Pratik Sökme 3
Pratik Sökme 3

Daha sonra hareketi açmak mümkündür. Üç mandalı vardır. iki pozisyon 3 ve 9 saat ve ardından üçüncü 6 saat. Açıldığında, motor ile redüktör arasındaki şeffaf dişli çarkı ve ardından motorun rotoruna bağlı olan pinyonu çıkarmak yeterlidir.

Adım 6: Pratik Sökme 4

Pratik Sökme 4
Pratik Sökme 4
Pratik Sökme 4
Pratik Sökme 4

Motor bobini ve stator sadece bir mandalda (12 saatte) tutar. Herhangi bir güç rayına tutunmaz, sadece pres ile güç raylarına uygulanır, daha sonra çıkarılması karmaşık değildir. Bobin tutucusuz olarak stator üzerine vidalanmıştır. Kolayca çıkarılabiliyor.

Adım 7: Pratik Sökme 5

Pratik Sökme 5
Pratik Sökme 5
Pratik Sökme 5
Pratik Sökme 5
Pratik Sökme 5
Pratik Sökme 5
Pratik Sökme 5
Pratik Sökme 5

Bobinin alt tarafında, altı çıkışlı bir CoB (Chip on Board) içeren küçük baskılı devre kartı yapıştırılmıştır. İkisi güç içindir ve güç raylarını uygulamak için gemide daha büyük kare pedlerde sonlandırılırlar. iki çıkış kristale bağlanır. Bu arada, kristal 32768Hz'dir ve ileride kullanılmak üzere lehimlenebilir. Son iki çıkış bobine bağlanır. Gemideki izleri kesmeyi ve kabloları gemideki mevcut pedlere lehimlemeyi daha güvenli buldum. Bobini lehimlemeyi ve kabloyu doğrudan bobine bağlamayı denediğimde, her zaman bobin telini koparırım veya bobine zarar veririm. Yeni kabloları tahtaya lehimlemek bir olasılıktır. Diyelim ki, bu daha ilkel. Daha yaratıcı bir yöntem, bobini güç pedlerine bağlamak ve pil kutusuna bağlantı için güç raylarını tutmaktır. Daha sonra elektronikler pil kutusunun içine yerleştirilebilir.

Adım 8: Pratik Sökme 6

Pratik Sökme 6
Pratik Sökme 6
Pratik Sökme 6
Pratik Sökme 6

Lehimleme kalitesi ohmmetre kullanılarak kontrol edilebilir. Bobin yaklaşık 200Ω dirence sahiptir. Her şey yolunda olduğunda, duvar saatini geri monte ediyoruz. Genelde elektrik raylarını atarım, sonra yeni kablolarım için daha fazla yerim olur. Elektrik rayları atılmadan önce fotoğraflar çekilir. Kaldırıldıklarında bir sonraki fotoğrafı çekmeyi unutuyorum.

Hareketi tamamlamayı bitirdiğimde ikinci saat ibresini kullanarak test ediyorum. Elimi aksına koydum ve biraz güç bağladım (CR2032 bozuk para pil kullandım ama AA 1, 5V da kullanılabilir). Gücü bir polaritede kablolara ve ardından tekrar zıt polariteye bağlayın. Saat tıklamalı ve el bir saniye hareket etmelidir. Geri hareketi tamamlamakta sorun yaşadığınızda, teller daha fazla yer kapladığından, bobini döndürün ve karşı tarafa koyun. Güç rayları kullanılmadığında, saat hareketini etkilemez. Daha önce de belirtildiği gibi, ellerinizi geri koyarken 12:00:00'ı işaret etmeniz gerekiyor. Akrep ve yelkovan arasında doğru mesafeye sahip olmaktır.

Adım 9: Duvar Saati Kullanım Örnekleri

Zamanı göstermeye odaklanan basit örneklerin çoğu, ancak çeşitli değişikliklerle. Çok popüler olan modifikasyona "Vetinari Saati" denir. Lord Vetinari'nin bekleme odasında duvar saati olan Terry Pratchett kitabına işaret ederek, tıkırtılar düzensiz. Bu düzensizlik bekleyen insanları rahatsız eder. İkinci popüler uygulama "sinüs saati" dir. Sinüs eğrisine göre hızlanan ve yavaşlayan saat anlamına gelir, o zaman insanlar duygulanır, dalgalar üzerinde seyrederler. favorilerimden biri "öğle yemeği zamanı". Bu değişiklik, öğle yemeğini daha erken yemek için saatin 11 ila 12 saat (0,8 saniye) arasında biraz daha hızlı gittiği anlamına gelir; ve öğle yemeği saatinde 12 ila 13 saat (1, 2 sn) arasında biraz daha yavaş, öğle yemeği için biraz daha fazla zaman ayırmak ve kaybedilen zamanı telafi etmek.

Bu değişikliklerin çoğu için, 32768Hz çalışma frekansı kullanan en basit işlemciyi kullanmak yeterlidir. Bu frekans, saat yapımcıları arasında çok popülerdir, çünkü bu frekansla kristal yapmak kolaydır ve saniyeleri tamamlamak için kolay ikili bölünmeyi yasaklar. Bu frekansı işlemci için kullanmanın iki faydası vardır: kristali saatten kolayca geri dönüştürebiliriz; ve işlemciler genellikle bu frekansta minimum tüketime sahiptir. Tüketim, duvar saati ile oynarken çok sık çözdüğümüz bir şey. Özellikle en küçük pilden mümkün olduğunca uzun süre güç alabilmek için. Daha önce de belirtildiği gibi, bobin 200Ω dirence sahiptir ve cca 1, 5V (bir AA pil) için tasarlanmıştır. En ucuz işlemciler genellikle biraz daha yüksek voltajla çalışır, ancak hepsinde çalışan iki pil (3V). Pazarımızdaki en ucuz işlemcilerden biri Microchip PIC12F629 veya çok popüler Arduino modülleridir. Ardından her iki platformun da nasıl kullanılacağını göstereceğiz.

Adım 10: Duvar Saati Kullanım Örnekleri PIC

Duvar Saati Kullanım Örnekleri PIC
Duvar Saati Kullanım Örnekleri PIC
Duvar Saati Kullanım Örnekleri PIC
Duvar Saati Kullanım Örnekleri PIC

İşlemci PIC12F629 2.0V - 5.5V çalışma voltajına sahiptir. İki "mignon pil" = AA pil (cca 3V) veya iki AA şarj edilebilir AA akü (cca 2, 4V) yeterlidir. Ancak saat bobini için tasarlanandan iki kat daha fazladır. İstenmeyen minimum tüketim artışına neden olur. Ardından, uygun voltaj bölücü oluşturacak minimum seri direnç eklemek iyidir. Direnç değeri, akümülatör gücü için yaklaşık 120Ω veya saf dirençli yük için hesaplanan pil gücü için 200Ω olmalıdır. Pratikte değer 100Ω civarında biraz daha küçük olabilir. Teoride bobin ile seri bağlı bir direnç yeterlidir. Hala bir nedenden dolayı motoru simetrik cihaz olarak görme ve ardından her bobin terminalinin yanına yarım dirençli (47Ω veya 51Ω) direnç koyma eğilimim var. Bobin bağlantısı kesildiğinde işlemciye negatif voltajı önlemek için koruma diyotları ekleyen bazı yapılar. Diğer taraftan işlemci çıkışlarının çıkış gücü, herhangi bir amplifikatör olmadan bobini doğrudan işlemciye bağlamak için yeterlidir. PIC12F629 işlemcisi için tam şema, şekil 15'te açıklandığı gibi görünecektir. Bu şema, ek kontrol elemanları olmayan saatler için geçerlidir. Hala bir giriş/çıkış pini GP0 ve bir giriş sadece GP3'e sahibiz.

Adım 11: Duvar Saati Kullanım Örnekleri Arduino

Duvar Saati Kullanım Örnekleri Arduino
Duvar Saati Kullanım Örnekleri Arduino
Duvar Saati Kullanım Örnekleri Arduino
Duvar Saati Kullanım Örnekleri Arduino
Duvar Saati Kullanım Örnekleri Arduino
Duvar Saati Kullanım Örnekleri Arduino

Arduino'yu kullanmak istediğimizde, ATmega328 işlemcisinin veri sayfasına bakabiliriz. Bu işlemci, 4MHz'e kadar frekans için 1.8V - 5.5V ve 10MHz'e kadar frekans için 2.7V - 5, 5V olarak tanımlanan çalışma voltajına sahiptir. Arduino kartlarının bir eksikliğine dikkat etmeliyiz. Bu eksiklik, gemide voltaj regülatörünün bulunmasıdır. Çok sayıda voltaj regülatörünün ters voltajla ilgili sorunları vardır. Bu problem, regülatör 7805 için yaygın olarak ve en iyi şekilde tanımlanmıştır. İhtiyaçlarımız için 3V3 olarak işaretlenmiş (3.3V'a güç sağlamak için tasarlanmış) bir kart kullanmalıyız, çünkü bu kart kristal 8MHz içerir ve 2, 7V'dan güç alabilir (iki AA anlamına gelir). piller). O zaman kullanılan stabilizatör 7805 değil, 3.3V eşdeğeri olacaktır. Stabilizatör kullanmadan panoya güç vermek istediğimizde iki seçeneğimiz var. İlk seçenek, voltajı "RAW" (veya "Vin") ve +3V3 (veya Vcc) pinlerine birlikte bağlayın ve kartınızda kullanılan stabilizatörün düşük voltaj korumasına sahip olmadığına inanmaktır. İkinci seçenek, sabitleyiciyi basitçe ortadan kaldırmaktır. Bunun için, referans şemasını izleyerek Arduino Pro Mini'yi kullanmak iyidir. Bu şema, dahili stabilizatörün bağlantısını kesmek için tasarlanmış SJ1 atlama telini (kırmızı daire içinde şekil 16'da) içerir. Ne yazık ki klonların çoğu bu jumper'ı içermez.

Arduino Pro Mini'nin bir diğer avantajı da, normal çalışma sırasında elektrik tüketebilecek herhangi bir ek dönüştürücü içermemesidir (programlama sırasında küçük bir komplikasyondur). Arduino kartları, tek çıkış için yeterli güce sahip olmayan, giderek daha konforlu işlemcilerle donatılıyor. Ardından, bir çift transistör kullanarak minimum küçük çıkışlı amplifikatör eklemek iyidir. Pil gücü için temel şema, şekilde gösterildiği gibi görünecektir.

Arduino ortamı ("Kablolama" dili) modern işletim sistemlerinin özelliklerine sahip olduğundan (daha sonra doğru zamanlama ile ilgili sorunlar yaşar), Timer0 veya Timer1 için harici saat kaynağının kullanımını düşünmek iyidir. Bu, T0 ve T1 girişlerinin 4 (T0) ve 4 (T1) olarak işaretlendiği anlamına gelir. Duvar saatinden kristal kullanan basit osilatör bu girişlerden herhangi birine bağlanabilir. Ne kadar doğru saat üretmek istediğinize bağlı. Şekil 18, üç temel olasılığı göstermektedir. İlk şema, kullanılan bileşenler anlamında çok ekonomiktir. Daha az üçgen çıkış sağlar, ancak tam voltaj aralığında, CMOS girişlerine güç sağlamak için iyidir. İnverter kullanan ikinci şema, bunlar CMOS 4096 veya TTL 74HC04 olabilir. Şemalar birbirine daha az benzer, temel formdadır. Kristalin doğrudan bağlanmasına izin veren CMOS 4060 çipini kullanan üçüncü şema (aynı şemayı kullanan eşdeğer 74HC4060, ancak farklı direnç değerleri). Bu devrenin avantajı, 14 bitlik ayırıcı içermesi ve zamanlayıcı girişi olarak hangi frekansın kullanılacağına karar verilebilmesidir.

Bu devrenin çıkışı T0 girişi (Arduino işaretli pin 4) için kullanılabilir ve ardından harici giriş ile Timer0 kullanılabilir. Bu çok pratik değil, çünkü Timer0, delay(), milis() veya micros() gibi fonksiyonlar için kullanılıyor. İkinci seçenek, onu T1 girişine (Arduino işaretli pin 5) bağlamak ve Timer1'i ekstra giriş ile kullanmaktır. Sonraki seçenek, INT0 girişini (Arduino işaretlemesinde pin 2) veya INT1'i (pin 3) kesintiye uğratmak için bağlamak ve düzenli olarak çağrılan ekInterrupt() işlevini ve kayıt işlevini kullanmaktır. İşte 4060 yongaları tarafından sunulan faydalı bölücü, o zaman çağrı o kadar sık olmamalıdır.

Adım 12: Model Demiryolları Donanımı için Hızlı Saat

Model Demiryolları Donanımı için Hızlı Saat
Model Demiryolları Donanımı için Hızlı Saat
Model Demiryolları Donanımı için Hızlı Saat
Model Demiryolları Donanımı için Hızlı Saat
Model Demiryolları Donanımı için Hızlı Saat
Model Demiryolları Donanımı için Hızlı Saat

İlgi için faydalı bir şema sunacağım. Ortak kontrole daha fazla duvar saati bağlamam gerekiyor. Duvar saatleri birbirinden uzaktadır ve bunun üzerine çevre özelliği daha büyük elektromanyetik gürültü ile daha endüstriyeldir. Sonra iletişim için daha büyük voltaj kullanan eski otobüs sistemlerine geri döndüm. Tabii ki pille çalışmayı çözmedim ama stabilize güç kaynağı 12V kullandım. TC4427 sürücüsünü kullanarak işlemciden gelen sinyali güçlendirdim (uygunluğu ve fiyatı iyi). O zaman 0,5A'ya kadar olası yük ile 12V sinyali taşıyorum. Köle saatlere basit direnç bölücüler ekledim (Şekil 18'de R101 ve R102 olarak işaretlenmiştir; Yine motoru simetrik olarak anlıyorum, buna gerek yok). Daha fazla akım taşıyarak gürültü azaltmayı artırmak istiyorum, sonra iki direnç 100Ω kullandım. Motor bobinindeki voltajı sınırlamak için B101 köprü doğrultucu bobine paralel olarak bağlanır. Köprü DC tarafını kısalttı, daha sonra iki çift anti-paralel diyotu temsil ediyor. İki diyot, motor için normal çalışma voltajına çok yakın olan yaklaşık 1.4V voltaj düşüşü anlamına gelir. Anti-paralel'e ihtiyacımız var çünkü güç verme bir ve zıt kutupta değişiyor. Bir bağımlı duvar saati tarafından kullanılan toplam akım bu durumda (12V - 1.5V) / (100Ω + 100Ω) = 53mA'dır. Bu, gürültüyü önlemek için kabul edilebilir bir değerdir.

İşte şemalardaki iki anahtar, bunlar duvar saatinin ek fonksiyonlarını kontrol etmek içindir (demiryolları modellerinde hız çarpanı). Kız saatin bir ilginç özelliği daha var. İki adet 4mm muz konektörü kullanılarak bağlanırlar. Duvarda duvar saati tutuyorlar. Özellikle, kullanmaya başlamadan önce belirli bir süre ayarlamak istediğinizde kullanışlıdır, basitçe fişleri çıkarıp tekrar takabilirsiniz (ahşap blok duvara sabitlenir). "Big Ben" yaratmak istiyorsanız, dört çift soketli tahta kutuya ihtiyacınız var. Bu kutu, kullanılmadığı zamanlarda saatler için saklama alanı olarak kullanılabilir.

Adım 13: Yazılım

Yazılım açısından durum göreceli olarak basittir. PIC12F629 çipinde kristal 32768Hz (orijinal saatten geri dönüştürülmüş) kullanarak gerçekleştirmeyi açıklayalım. İşlemci, dört osilatör döngüsü uzunluğunda bir komut döngüsüne sahiptir. Herhangi bir Zamanlayıcı için dahili saat kaynağını kullanacağımız zaman, bu komut döngüleri anlamına gelir (fosc/4 olarak adlandırılır). Örneğin Timer0 elimizde mevcuttur. Zamanlayıcı giriş frekansı 32768/4 = 8192Hz olacaktır. Zamanlayıcı sekiz bit (256 adım) ve herhangi bir engel olmadan taşmasını sağlıyoruz. Sadece timer overflow olayına odaklanacağız. Olay 8192/256 = 32Hz frekansında gerçekleşecektir. Daha sonra bir saniye darbe almak istediğimizde, Timer0'ın her 32 taşmasında bir darbe oluşturmamız gerekir. Bir saatin örneğin dört kat daha hızlı çalışmasını istiyoruz, o zaman nabız için 32/4 = 8 taşmaya ihtiyacımız var. Düzensiz ama doğru bir saat tasarlamak istediğimiz durumlar için, 32× darbe sayısıyla aynı olan birkaç darbe için taşma toplamına sahip olmalıyız. O zaman düzensiz saatler matrisinde şöyle yazabiliriz: [20, 40, 30, 38]. O zaman toplam 128, yani 32×4 ile aynı. Sinüs saati için örneğin [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). Saatimiz için, hızlı çalıştırma için ayırıcı tanımı olarak iki serbest giriş kullanacağız. Hızlar için tablo dith bölücüler EEPROM belleğinde saklanır. Programın ana kısmı şöyle görünebilir:

Ana döngü:

btfss INTCON, T0IF MainLoop'a git; Timer0 için bekleyin bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; STOP anahtarı aktifse, clrf CLKCNT; her seferinde sayacı temizle btfsc SW_FAST; hızlı düğmesine basılmazsa NormalTime'a gidin; sadece normal zamanı hesapla movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; FCLK ve CLKCNT aynıysa SendPulse NormalTime'a gidin: movf CLKCNT, w andlw 0xE0; bitler 7, 6, 5 btfsc STATUS, Z; CLKCNT>=32 ise MainLoop'a git SendPulse'a git

SendPulse işlevini kullanan program, bu işlev motor darbesini kendisi oluşturur. Fonksiyon tek/çift darbeyi sayar ve buna göre bir veya ikinci çıkışta darbe oluşturur. ENERGSE_TIME sabitini kullanan işlev. Bu sabit, motor bobinine enerji verildiği sırada süreyi tanımlar. Bu nedenle tüketim üzerinde büyük etkisi vardır. Çok küçük olduğunda, motor adımı tamamlayamaz ve bazen olur, o saniye kaybolur (genellikle ikinci el 9 numaraya yaklaştığında, "yukarı" giderken).

GönderPulse:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 SendPulseB'ye git SendPulseA: bsf OUT_A'ya git SendPulseE SendPulseB'ye: bsf OUT_B; SendPulseE'ye git SendPulseE: movlw 0x50 movwf ECNT'ye git

Tam kaynak kodları www.fucik.name sayfasının sonunda indirilebilir. Arduino ile durum biraz karmaşıktır, çünkü Arduino daha yüksek programlama dili ve kendi kristal 8MHz'i kullandığından, hangi fonksiyonları kullandığımıza dikkat etmeliyiz. Klasik delay() kullanımı biraz risklidir (fonksiyonun başlangıcından itibaren zamanı hesaplar). Daha iyi sonuçlar, Timer1 gibi kitaplıkların kullanımına sahip olacaktır. Birçok Arduino projesi, PCF8563, DS1302, vb. gibi harici RTC cihazlarına güvenir.

Adım 14: Meraklar

Bu duvar saati motor kullanımı sistemi çok temel olarak anlaşılmaktadır. Bir çok iyileştirme mevcut. Örneğin, Geri EMF'nin (rotor mıknatısının hareketiyle üretilen elektrik enerjisi) ölçülmesine dayalıdır. Daha sonra elektronik, eller hareket ettiğinde ve değilse, nabzı hızlı bir şekilde tekrar eder veya "ENERGSE_TIME" değerini günceller. daha yararlı merak "ters adım" dır. Açıklamaya göre, bu motor sadece bir dönüş yönü için tasarlanmıştır ve değiştirilemez. Ancak ekli videolarda gösterildiği gibi yön değişikliği mümkündür. İlke basittir. Motor prensibine geri dönelim. Motorun ikinci adımın kararlı durumunda olduğunu hayal edin (Şekil 3). İlk adımda (Şekil 2) gösterildiği gibi voltajı bağladığımızda, motor mantıksal olarak ters yönde dönmeye başlayacaktır. Nabız yeterince kısa olduğunda ve motor kararlı duruma geçmeden biraz önce sona erdiğinde, mantıksal olarak biraz titreyecektir. Bir kez bu titreme üçüncü durumda açıklandığı gibi bir sonraki voltaj darbesine ulaşır (Şekil 4), daha sonra motor başladığı yöne, yani ters yöne doğru devam eder. Küçük bir sorun, ilk darbenin süresinin nasıl belirleneceği ve bir kez birinci ve ikinci darbe arasında bir mesafenin nasıl oluşturulacağıdır. Ve en kötüsü, bu sabitlerin her saat hareketi için değişmesi ve bazen durumlar için değişmesi, ibrelerin "aşağı" (3 numara civarında) veya yukarı (9 numara civarında) ve ayrıca nötr pozisyonlarda (12 ve 6 numara civarında) olması.. Videoda sunulan durum için aşağıdaki kodda gösterildiği gibi değerleri ve algoritmayı kullandım:

#define OUT_A_SET 0x02; bir set dışarı b için yapılandırma temizle

#define OUT_B_SET 0x04; b için yapılandırma açık bir açık ayarla #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 git SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT_mov_lw; darbe B ile başlayın movwf GPIO RevPulseLoopA:; kısa süre bekleme ECNT, RevPulseLoopA movlw OUT_A_SET'e gitmek için; sonra bir darbe A movwf GPIO SendPulseE SendPulseB'ye git: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; darbe A ile başlayın movwf GPIO RevPulseLoopB:; kısa süre bekleme ECNT decfsz, f RevPulseLoopB movlw OUT_B_SET'e gitmek için; sonra darbe B movwf GPIO; SendPulseE SendPulseE'ye git: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f SendPulseLoop'a git bcf OUT_A bcf OUT_B MainLoop'a git

Ters adımların kullanılması duvar saati ile oynama olasılığını artırır. Bazen saniye eli düzgün hareket eden duvar saati bulabiliriz. O saatten korkmuyoruz, basit bir hile kullanıyorlar. Motorun kendisi burada açıklanan motorla aynıdır, sadece dişli oranı daha büyüktür (genellikle 8:1 daha fazla) ve motor daha hızlı döner (genellikle 8 kat daha hızlı), bu da yumuşak hareketin etkisini yaratır. Bu duvar saatini değiştirmeye karar verdiğinizde, istenen çarpanı hesaplamayı unutmayın.

Önerilen: