İçindekiler:

Programlanabilir LED: 6 Adım (Resimli)
Programlanabilir LED: 6 Adım (Resimli)

Video: Programlanabilir LED: 6 Adım (Resimli)

Video: Programlanabilir LED: 6 Adım (Resimli)
Video: programlanabilir led animasyonları (bilgisayar animasyon programı) 2024, Temmuz
Anonim
Programlanabilir LED
Programlanabilir LED

Çeşitli LED Throwies, yanıp sönen LED'ler ve benzeri komutlardan esinlenerek, bir mikro denetleyici tarafından kontrol edilen bir LED versiyonumu yapmak istedim. Buradaki fikir, LED yanıp sönme sırasını yeniden programlanabilir hale getirmektir. Bu yeniden programlama, ışık ve gölge ile yapılabilir, örn. el fenerinizi kullanabilirsiniz. Bu benim ilk talimatım, her türlü yorum veya düzeltmeye açığım. Güncelleme 2008-08-12: Artık Tinker Store'da bir kit mevcut. İşte onu yeniden programlamanın bir videosu. Kalite için üzgünüm.

Adım 1: Nasıl Çalışır?

Çıkış olarak bir LED kullanılır. Giriş olarak, ışığa bağımlı bir direnç olan bir LDR kullandım. Bu LDR, az ya da çok ışık aldığında direncini değiştirir. Direnç daha sonra mikroişlemciler ADC'ye (analog dijital dönüştürücü) analog giriş olarak kullanılır.

Denetleyicide, biri bir diziyi kaydetmek için, diğeri ise kaydedilen diziyi oynatmak için olmak üzere iki çalışma modu vardır. Denetleyici, yarım saniye içinde iki parlaklık değişikliği (karanlık, parlak, karanlık veya tam tersi) fark ettiğinde, kayıt moduna geçer. Kayıt modunda LDR'nin girişi saniyede birçok kez ölçülür ve çipte saklanır. Hafıza tükenirse, kontrolör tekrar oynatma moduna geçer ve kaydedilen diziyi oynatmaya başlar. Bu küçük denetleyicinin belleği 64 bayt (evet, bayt!) çok sınırlı olduğundan, denetleyici 400 bit kaydedebilir. Bu, saniyede 40 örnekle 10 saniye için yeterli alan.

Adım 2: Malzemeler ve Araçlar

Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar

Malzemeler - 2 x 1K direnç - 1 x LDR (Işık Bağımlı Direnç), ör. M9960- 1 x Düşük akım LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 Bytes RAM, 64 Byte EEPROM, [email protected] 1 x CR2032, 3V, 220mAhAletler-havya - lehim teli- breadboard- AVR programcısı- 5V güç kaynağı- multimetreYazılım- Eclipse- CDT eklentisi- WinAVRCosts genel olarak araçlar olmadan 5$'ın altında olmalıdır. ATtiny13v'yi kullandım çünkü bu denetleyici ailesinin bu sürümü 1.8V'de çalışabiliyor. Bu, devreyi çok küçük bir pille çalıştırmayı mümkün kılar. Çok uzun süre çalışması için, zaten 2ma'da tam parlaklığa ulaşan düşük akımlı bir LED kullanmaya karar verdim.

Adım 3: Şemalar

şemalar
şemalar

Şematik hakkında bazı yorumlar. Sıfırlama girişi bağlı değil. Bu en iyi uygulama değil. Yukarı çekme olarak 10K'lık bir direnç kullanmak daha iyi olacaktır. Ama onsuz benim için iyi çalışıyor ve bir direnç tasarrufu sağlıyor. Devreyi olabildiğince basit tutmak için dahili osilatör kullandım. Bu, bir kristal ve iki küçük kapasitör kaydettiğimiz anlamına gelir. Dahili osilatör, kontrolörün 1.2MHz'de çalışmasına izin verir, bu bizim amacımız için yeterli hızdan fazladır. 5V'tan başka bir güç kaynağı kullanmaya veya başka bir LED kullanmaya karar verirseniz, direnç R1'i hesaplamanız gerekir. Formül: R = (Güç kaynağı V - LED V) / 0,002A = 1650 Ohm (Güç kaynağı = 5V, LED V = 1,7V). Bir yerine iki düşük akım LED'i kullanıldığında formül şöyle görünür: R = (Güç kaynağı V - 2 * LED V) / 0,002A = 800 Ohm. Lütfen başka bir LED tipi seçerseniz hesaplamayı ayarlamanız gerektiğini unutmayın. Direnç R2'nin değeri kullanılan LDR'ye bağlıdır. 1KOhm benim için çalışıyor. En iyi değeri bulmak için bir potansiyometre kullanmak isteyebilirsiniz. Devre, normal gün ışığındaki ışık değişikliklerini algılayabilmelidir. Güçten tasarruf etmek için, PB3 yalnızca bir ölçüm yapılırsa yüksek olarak ayarlanır. Güncelleme: şema yanıltıcıydı. Aşağıda doğru bir versiyon var. Teşekkürler, dave_chatting.

Adım 4: Bir Prototip Panosunda Birleştirin

Bir Prototip Panosunda Birleştirin
Bir Prototip Panosunda Birleştirin
Bir Prototip Panosunda Birleştirin
Bir Prototip Panosunda Birleştirin

Devrenizi test etmeyi seviyorsanız, bir breadboard çok kullanışlıdır. Hiçbir şeyi lehimlemenize gerek kalmadan tüm parçaları birleştirebilirsiniz.

Adım 5: Devreyi Programlayın

Devreyi Programlayın
Devreyi Programlayın
Devreyi Programlayın
Devreyi Programlayın

Kontrolör farklı dillerde programlanabilir. En çok kullanılanlar Assembler, Basic ve C'dir. C'yi ihtiyaçlarıma en uygun olduğu için kullandım. On yıl önce C'ye alışmıştım ve bazı bilgileri yeniden canlandırabildim (peki, sadece bazıları…). Programınızı yazmak için, CDT eklentisi ile Eclipse'i öneririm. Eclipse'i buradan https://www.eclipse.org/ ve eklentiyi buradan edinin https://www.eclipse.org/cdt/. C dilini AVR mikro denetleyicilerine derlemek için bir çapraz derleyiciye ihtiyacınız olacak. Şanslıyız ki, ünlü GCC'nin bir limanı var. Adı WinAVR ve burada https://winavr.sourceforge.net/ bulunabilir. AVR kontrolörlerinin WinAVR ile nasıl programlanacağına dair çok iyi bir eğitim burada https://www.mikrocontroller.net/articles/AVR-GCC- öğretici. Üzgünüz, almanca ama kendi dilinizde bu konuyla ilgili binlerce eğitim sayfası bulabilirsiniz. Kaynağınızı derledikten sonra hex dosyasını controller'a aktarmanız gerekir. Bu, ISP (sistem programlayıcısında) veya özel programlayıcılar kullanılarak PC'nizi devreye bağlayarak yapılabilir. Bazı kabloları ve fişi kaydederek devreyi biraz daha kolaylaştırdığı için özel bir programlayıcı kullandım. Dezavantajı ise, yazılımınızı her güncellemek istediğinizde kontrol cihazını devre ile programlayıcı arasında değiştirmek zorunda olmanızdır. Programlayıcım https://www.myavr.de/ adresinden geliyor ve dizüstü bilgisayarıma bağlanmak için USB kullanıyor. Etrafta bir çok başka var ve hatta kendiniz kurabilirsiniz. Transferin kendisi için WinAVR dağıtımının bir parçası olan avrdude adlı bir program kullandım. Örnek bir komut satırı şöyle görünebilir:

avrdude -F -p t13 -c avr910 -P com4 -U flash:w:flickled.hex:iEkli, kaynağı ve derlenmiş hex dosyasını alabilirsiniz.

Adım 6: Lehimleme

Lehimleme
Lehimleme

Devreniz breadboard üzerinde çalışıyorsa lehimleyebilirsiniz.

Bu, bir PCB (baskılı devre kartı), bir prototip panosu üzerinde veya hatta bir pano olmadan yapılabilir. Devre sadece birkaç bileşenden oluştuğu için onsuz yapmaya karar verdim. Lehimlemeye aşina değilseniz, önce bir lehimleme eğitimi aramanızı tavsiye ederim. Lehimleme becerilerim biraz paslanmış ama sanırım anladınız. Umarım keyif almışsındır. Alex

Önerilen: