İçindekiler:

Çoklu Zamanlayıcı W/Harici Kontrol: 13 Adım
Çoklu Zamanlayıcı W/Harici Kontrol: 13 Adım

Video: Çoklu Zamanlayıcı W/Harici Kontrol: 13 Adım

Video: Çoklu Zamanlayıcı W/Harici Kontrol: 13 Adım
Video: Mekanik Zaman Saati 2024, Temmuz
Anonim
Çoklu Zamanlayıcı W/Harici Kontrol
Çoklu Zamanlayıcı W/Harici Kontrol

Bu Instructable projesi, çok işlevli bir Zamanlayıcının bir yapısıdır

Bu zamanlayıcı şu şekilde çalışabilir:

  1. 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.
  2. 7 seçilebilir zaman, geri sayım ve tamamlandığında alarm içeren bir şekerleme zamanlayıcısı.
  3. 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

Muhafazayı Oluşturun
Muhafazayı Oluşturun

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

Zamanlayıcıyı Birleştirin
Zamanlayıcıyı Birleştirin
Zamanlayıcıyı Birleştirin
Zamanlayıcıyı Birleştirin
Zamanlayıcıyı Birleştirin
Zamanlayıcıyı Birleştirin
Zamanlayıcıyı Birleştirin
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:

  1. OLED ve kablo
  2. Başlat/Durdur anahtarı ve kablolama
  3. Döner Kodlayıcı ve kablo
  4. Hoparlör / Buzzer ve kablolama
  5. Harici kontrol jakı ve kablolama
  6. 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

Entegrasyon Testi
Entegrasyon Testi
Entegrasyon Testi
Entegrasyon Testi
Entegrasyon Testi
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: