İçindekiler:
- 1. Adım: Donanım Öğelerine Genel Bakış
- 2. Adım: Yazılıma Genel Bakış
- Adım 3: Parça Listesi
- Adım 9: Tasarım ve Kod Yazma
- Adım 10: Programı Kurun
- Adım 11: Zamanlayıcıyı Birleştirin
- Adım 12: Entegrasyon Testi
- Adım 13: Son Düşünceler
Video: Çoklu Zamanlayıcı W/Harici Kontrol: 13 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu Instructable projesi, çok işlevli bir Zamanlayıcının bir yapısıdır
Bu zamanlayıcı şu şekilde çalışabilir:
- 1 saniye ile +90 saat arasında seçilebilir sürelere sahip genel amaçlı bir alarm. Sesli alarm ile geri sayım ve/veya bitene kadar harici cihazın kontrolü, ardından alarmdan bu yana geçen sürenin bir göstergesi.
- 7 seçilebilir zaman, geri sayım ve tamamlandığında alarm içeren bir şekerleme zamanlayıcısı.
- 4 seçilebilir zamanlı, geri sayım ve tamamlandığında kısa bir cıvıltı ile bir meditasyon zamanlayıcısı, bundan 5 dakika sonra başka bir cıvıltı ile geri sayım.
Bu proje, burada açıklandığı gibi inşa edilebilir veya uygun şekilde değiştirilebilir. Daha önce bu işlevsellik ile bir zamanlayıcı oluşturmuştum ve bunu UV'ye maruz kalma kutusunu kontrol etmek için ilk Instructable'ımda kullandım.
Orijinal programı ve pano tasarımlarını yayınlayabileceğimi düşündüm. Ancak nedense kodu bulamadım. Ayrıca kontrol devrelerini daha esnek hale getirmek ve pil tüketimini azaltmak için donanımda iyileştirmeler yapmak istedim. Ana devre kartının sonuçta yeniden tasarımı ve kodun yeniden yazılması, programlama ve donanım tasarımı yaklaşımını tartışmak için bir fırsat sağlar.
Ne zaman bir devre kartı oluştursam, genellikle bileşenlerin tasarımında veya yerleşiminde kusurlar olduğunu görüyorum, Yaptığım panolar da iki ayrıdan biri. Ayrıca, bir projenin başından sonuna kadar tüm yönleriyle yer almayı seviyorum. Gerber dosyalarını üretim için yurtdışına göndermek yerine kendi devre kartlarımı yapmamın sebeplerinden bazıları bunlar. Belki de sadece yaşlıyım ve kendi yolumda sıkışıp kaldım. Bu proje bu önyargıyı yansıtıyor. Kendi devre kartlarımı, tasarımlarım ve Gerber dosyalarım üretim standartlarını karşılamadığı için bu dosyaları dahil etmedim. Panoları kazımak ve bitirmek istemeyenler kendi tasarımlarını hazırlayabilir ve Gerber dosyalarını yorum bölümüne gönderebilirler. Lütfen panolarınızı göndermeden önce üretip test ettirin.
1. Adım: Donanım Öğelerine Genel Bakış
Cihaz 4 adet AAA pil ile çalışır ve Arduino Pro Mini 5V ile kontrol edilir.
Küçük bir sesli uyarı/hoparlör sesli bir alarm sağlar.
Minyatür bir 5v röle, harici cihazlara kontrol voltajları sağlar. Bu kontrol voltajı çıkışının kaynağında esneklik sağlanır.
Düğmeli döner kodlayıcı menü seçimi sağlar.
Bir OLED ekran ve anlık başlatma/durdurma anahtarı, kullanıcı arayüzünü tamamlar.
Ek elektronik donanım, bir SPDT güç anahtarından ve harici cihazlara bağlanmak için bir minyatür telefon jakından oluşur.
Ayrıca, bu projede size yardımcı olacak dosyalar sağlanmıştır:
3B yazdırılmış bir proje vakası için STL dosyaları.
Kontrol devre kartının ve döner kodlayıcının aşındırılması ve bitirilmesi için bakır ve lehim maskesi görüntüleri.
Tasarımımı değiştirmek isteyenler için referans olarak şematik ve pano görüntüleri.
Devre kartı üretimi nasıl yapılır örneği olarak çift taraflı devre kartları oluşturma konusundaki Talimatımı incelemek isteyebilirsiniz.
2. Adım: Yazılıma Genel Bakış
Arduino kaynak dosyalarıyla birlikte, yardımcı olabilecek bazı ek bilgiler..
Mevcut olduğunda donanım kontrol kitaplıkları kullanılır (düğmenin geri dönmesi, OLED kontrolü, döner kodlayıcı okuması).
Program, döngü işlevinde bir anahtar ifadesi olarak kod yürütmeyi kontrol etmek için basit bir sonlu durum makinesi (FSM) uygular.
OLED'de görüntülenen seçeneklerin seçilmesine ve döner kodlayıcı kullanılarak seçim yapılmasına izin vermek için bir Menü sınıfı tanımlanmıştır.
Giriş, zaman açısından kritik olmadığı ve kodu daha net hale getirdiği için doğrudan yoklama (kesintisiz yönlendirmeli) ile gerçekleştirilir.
Kod yürütme ve hata ayıklamanın izlenmesine yardımcı olmak için Serial'e yazdırma ifadeleri kullanılır
Aşağıdakiler dahil olmak üzere çeşitli program yapı öğeleri türleri:
- Bazı donanım kontrol fonksiyonlarını ve değişkenlerini izole etmek için çoklu kod sekmeleri.
- Durum değerini (FSM) ve kontrol değişkenlerini ayarlamak için ifadeleri değiştirin.
- Yapı tanımı
- Durum değerlerinin metin olarak atanmasına izin veren numaralandırmalar.
- #donanım pini ve standart değerler için ön işlemci tanımlarını tanımlayın.
Adım 3: Parça Listesi
Neredeyse her noktada yapılabileceğinden bu adımı nereye koyacağımdan emin değildim. 3D baskılı bir muhafaza kutusu kullandım. Bir 3D yazıcıya erişiminiz olmayabilir veya Alüminyum kutu, Lazer Kesim plastik, El Oyması Ahşap veya elektronik projeleriniz için kullandığınız diğer tip muhafazaları tercih edebilirsiniz. Üst, alt, döner kodlayıcı düğmesi ve OLED çerçeve için STL dosyalarını ekledim. Yazıcınız için gcode dosyaları oluşturmak için bu dosyaları ve istediğiniz dilimleyiciyi kullanın.
Tüm parçaları PLA filament kullanarak yazdırıyorum, kasanın üst ve alt kısmı için bir renk, topuz ve çerçeve için kontrast oluşturan bir renk (üste yapıştırılmış). Tüm dilimleyici ayarlarımı belirtmeyeceğim, ancak bir Tri kullanıyorum -Köşe vidalarının kılavuz çekmesine izin vermek için altıgen dolgu en az %35 ve kazınmış harflerin okunması için "destek yok" ayarı. Kutuyu yazıcılarımın "normal" katman yüksekliğini kullanarak yazdırdım.
Adım 9: Tasarım ve Kod Yazma
Bu adım isteğe bağlıdır ancak daha iyi anlaşılması için önerilir.
Saat cinsinden çabanın büyük kısmı kodun yazılmasıdır. Ekli programı olduğu gibi kullanırsanız bu adımı atlayabilirsiniz. Bununla birlikte, gereksinimlerinizi karşılamak üzere kodu daha iyi anlamak veya değiştirmek için zaman ayırmanız önerilir.
Aşağıdaki yorumlar bu süreci anlamada yardımcı olabilir.
- Yorumlar- Gittikçe kapsamlı yorum yapın - Yorumları genellikle kodu yazmadan önce yazarım.
- Böl ve yönet - işlevleri, sınıfları ve modülleri (sekmeler) kullanın. Sözdizimini kontrol etmek için sık derlemeleri (Doğrula) kullanın. Hata Ayıklama - Akış ve test değerlerini ve donanım arayüzlerini doğrulamak için print deyimlerini kullanın. Gittikçe sorunları çözmekten korkmayın, kimse hatasız kod yazmaz!
- Sabitler - #define ön derleyici talimatları pin numaralarına ad atar. Açıklamalı sabit değişken tanımları, "Sihirli" sayıları azaltır veya ortadan kaldırır. Bir programın veya fonksiyonun başlangıcında bulunan sabitlerin kullanımı, kodu yeniden yazmadan parametrelerin değiştirilmesine izin verir.
- Önceden Tanımlanmış Kitaplıklar - Önceden tanımlanmış Kitaplıkları kullanmak, programlama yükünü ve hata ayıklama süresini azaltır.
- Tasarım Blokları - İşlevler kullanılarak oluşturulur, Kodu ayrı sekmelerde ayırma (ilişkili programlar ve.hfiles), numaralandırmalar, sınıflar ve yapılar. Kodun geri kalanına göre nasıl çalıştıklarını anlamak için dikkatinizi her birine odaklayın.
- Durum Makine(ler)i - Bu, Arduinos veya çıktıları kontrol etmek veya girdilere tepki vermek için kullanılan herhangi bir program ile harika çalışan bir programlama modelidir. Durum makinelerinin birkaç çeşidi vardır. Bu kod, döngü işlevindeki switch ifadesine dayalı bir durum makinesi kullanır. Bu formu anlamak ve hata ayıklamak kolaydır.
- Ekran ve Menüler - OLED çıkışı kısadır ancak sıradan kullanıcılar için yeterli geri bildirim sağlar ve seçenek seçimini destekler. Durum makinesiyle iyi bir şekilde bütünleşir (neredeyse tüm durumların ilişkili bir OLED ekranı vardır). Menu sınıfı, menü seçeneklerini görüntülemek ve seçmek için kodu ayırmada yardımcı oldu
Lütfen programı birkaç kez okuyun. Bir seferde bir işlev veya bölüm almaya yardımcı olur. En az iki kez okumadığım sürece yazdığım kodu genellikle anlamıyorum!
Adım 10: Programı Kurun
Ekli dosyayı bilgisayarınıza kopyalayın ve ardından Sketches dizininize açın.
Arduino'yu bilgisayarınıza bağlayın ve program kodunu normal şekilde indirin. Programın çalıştığını doğrulamak ve hata ayıklamaya yardımcı olmak için Arduino IDE seri monitörünü açın.
Adım 11: Zamanlayıcıyı Birleştirin
Kasanın üst ve alt kısımları yazdırılıp temizlendikten sonra, bileşenler küçük kendinden kılavuzlu plastik vidalar kullanılarak birleştirilebilir. Önce pil tutucu arkaya takılır. Parçaların geri kalanı aşağıdaki sırayla muhafazanın üstüne takılır:
- OLED ve kablo
- Başlat/Durdur anahtarı ve kablolama
- Döner Kodlayıcı ve kablo
- Hoparlör / Buzzer ve kablolama
- Harici kontrol jakı ve kablolama
- Açma/Kapama kaydırma anahtarı ve kablolama (yönlendirmeyi istediğiniz yönde olacak şekilde iki kez kontrol edin)
Kabloları doğrudan devre kartınıza lehimliyorsanız, kablo kırılmasını azaltmak için bunu tüm parçalar kasanıza takıldıktan sonra yapın. O kartı arkaya vidalamadan önce kabloların ana karta bağlanmasını beklemelisiniz.
Pin başlıkları ve Dupont konektörleri kullanıyorsanız, önce ana kartı vidaları kullanarak arkaya takın, ardından bileşenleri fişe takın. Pili ana karta bağlarken dikkatli olun ve doğru kutuplara dikkat edin. Bu sırada ayrıca röle kontrol jumper'larını veya kablolarını da ayarlamalısınız.
Muhafazanın alt kısmı, her köşede birer adet olmak üzere 4-40 yuvarlak başlı makine vidası kullanılarak üste bağlanır. Üst kısımdaki dört delik ya 4/40 kılavuzla açılmalı ya da 4-40 dişli uç kullanıyorsanız, bunları kabul etmek için delikleri açmanız gerekecektir. Alttaki ana devre kartı montajı için 4 deliğin de delinmesi gerekir. Bu kartı geçmeli pil yuvasına oturtun ve deliklerin yerlerini işaretleyin. Montaj vidalarınıza uygun şekilde delin.
Adım 12: Entegrasyon Testi
Son (entegrasyon) testi, tüm menü seçenekleri denenerek ve donanımla tasarlandığı gibi çalıştıklarını doğrulayarak gerçekleştirilir. Sağladığım kod için bu yeterli olmalı. Kendi kodunuzu yazdıysanız veya benimkini değiştirdiyseniz, testinizin daha kapsamlı olması gerekir. Tüm zamanlama seçimlerinin yapılması gerektiğine inanmıyorum ama tüm standart alarm seçeneklerini denemeniz ve Nap ve Meditasyon alarmlarının tasarlandığı gibi çalıştığını doğrulamanız gerekiyor.
Adım 13: Son Düşünceler
Başarılı, umarım projeniz için tebrikler. Eminim bu yolda çözmeniz gereken sorunlarla karşılaşmışsınızdır. Ayrıca, bazı talimatlarımın daha eksiksiz veya daha net olabileceğinden de eminim. Lütfen sonuçlarınızın ne olduğunu yorumlar bölümünden bana bildirin ve bu talimatların nasıl geliştirilebileceğine dair önerilerde bulunun.
Bu projeyi incelediğiniz ve/veya inşa ettiğiniz için teşekkür ederiz.
Önerilen:
NES Kontrol Cihazında Işık Theremin - 555 Zamanlayıcı: 19 Adım (Resimlerle)
NES Kontrol Cihazında Light Theremin - 555 Zamanlayıcı: 555 IC ile oynuyordum ve şimdiye kadar hiçbir şey yapmasını sağlayamadım. Bunun canlandığını ve üzerimde salınım yapmaya başladığını duyduğumda kendimden oldukça memnundum. Bir ses çıkarmasını sağlayabilirsem, o zaman herkes
Arduino Aynı Bord Üzerinde Çoklu P.I.R Sensörü Kontrol Etme: 3 Adım
Arduino Aynı Bord Üzerinde Birden Fazla PIR Sensörü Kontrol Eder: Bugün sizlere tek Arduino Bord ile birden fazla PIR Sensörü nasıl bağlayacağınızı anlatacağım >burada bazı ekstra işlevler için 4 kanal röle modülü de kullandım.ARDUINO + 4 Kanal Röle Modülü + 4 PIR Sensör (VEYA arduin'iniz kadar pin kullanabilirsiniz
Zamanlayıcı Fonksiyonlu TV Uzaktan Kumandası ile Ev Aletleri Nasıl Kontrol Edilir: 7 Adım (Resimlerle)
Zamanlayıcı İşlevli TV Uzaktan Kumandası ile Ev Aletleri Nasıl Kontrol Edilir: Tüketici pazarına girmesinden 25 yıl sonra bile, kızılötesi iletişim son günlerde hala çok alakalı. İster 55 inçlik 4K televizyonunuz, ister araç ses sisteminiz olsun, her şeye yanıt vermek için bir IR uzaktan kumanda gerekir
Sabit Açık ve Harici Kontrol için Strobe Blacklight Hacking: 5 Adım (Resimlerle)
Sürekli Açık ve Harici Kontrol için Strobe Blacklight'ı Hacklemek: Her yıl, büyük mağazalar UV LED'lerle yapılmış flaşlı siyah ışıklar satar. Yanda flaş hızını kontrol eden bir düğme var. Bunlar eğlenceli ve ucuzdur, ancak sürekli açık modundan yoksundurlar. Dahası, ışık uzantısını kontrol etmek güzel olurdu
Eski Harici CD/RW'den Harici HDD Oluşturun: 5 Adım
Eski Harici CD/RW'den Harici HDD Oluşturun: Eski bir harici cd/rw'nin oldukça basit bir şekilde daha kullanışlı bir harici sabit sürücüye dönüştürülmesi. Sarf malzemeleri1-harici cd/rw (tercihen daha kutulu tip)1-sabit sürücü (sürücü kasasının dahili konektörüyle eşleşmelidir, biçimlendirilmesi/sisteme eklenmesi gerekir)1-sm