Işıklı Hediyeler: 5 Adım (Resimlerle)
Işıklı Hediyeler: 5 Adım (Resimlerle)
Anonim
Işıklı Hediyeler
Işıklı Hediyeler

Evde Noel döneminde kullanılan iki ışıklı hediyemiz var. Bunlar, rastgele renk değiştiren ve solan ve solan 2 renkli kırmızı-yeşil LED kullanan basit ışıklı hediyelerdir. Cihaz, 3 Volt'luk bir düğme hücre tarafından desteklenmektedir. Hediyeler daha uzun süre açık kaldığında pil çok çabuk tükendiği için bu projenin nedeni ikincisiydi.

Çok sayıda düğme pil kullanımını önlemek için üç adet şarj edilebilir AAA pil kullanarak kendi versiyonumu tasarladım. Bu sürüm bir RGB LED kullanır, bu nedenle mavi de mümkündür, ancak bu orijinal tasarımın bir parçası değildi. Sürümüm aşağıdaki işlevlere sahiptir:

  • Kontrol 2, bir adet PIC12F617 mikrodenetleyici kullanarak aynı anda sunar. Mikrodenetleyici yazılımı JAL programlama dilinde yazılmıştır.
  • Bir düğmeyi kullanarak hediyeyi açıp kapatın. Orijinal versiyon bu amaç için bir anahtar kullanıyordu ancak bir basma düğmesi kullanımı daha kolaydı.
  • Kırmızı ve yeşil renklerin solması ve solmasıyla hediyelerin rengini rastgele değiştirin.
  • Akü voltajı 3,0 Volt'un altına düştüğünde hediyeleri kapatın. Bu, şarj edilebilir pillerin çok fazla boşalmasını önleyecektir.

Bir rengin solması sonrasında LED, 3 saniye ile 20 saniye arasında bir süre açık kalır. Hala kullanılmayan mavi LED'im olduğu için, açık kalma süresi tam olarak 10 saniye olduğunda her iki paketin de maviye dönmesi özelliğini ekledim. Rastgele zaman, daha sonra açıklanacağı gibi 40 milisaniyelik zamanlayıcı tiklerinde oluşturulduğu için bu çok sık olmaz.

Adım 1: Darbe Genişliği Modülasyonunu Kullanarak Azalma ve Azalma Hakkında Bazı Teoriler

Bir LED'in parlaklığını değiştirmenin en iyi yolu, LED'den geçen akımı değiştirmek değil, LED'in açık olduğu zamanı belirli bir zaman aralığında değiştirmektir. Bir LED'in parlaklığını kontrol etmenin bu yolu, internette birkaç kez tarif edilen Darbe Genişlik Modülasyonu (PWM) olarak adlandırılır, örn. Vikipedi.

PIC ve Arduino, bu PWM sinyalini oluşturmayı kolaylaştıran özel PWM donanımına sahiptir, ancak genellikle bunun için bir çıkışları vardır ve bu nedenle yalnızca bir LED'i kontrol edebilirsiniz. Bu sürüm için 5 LED'i (2 kırmızı, 2 yeşil ve 1 birleşik mavi) kontrol etmem gerekiyordu, bu nedenle PWM'nin hem PWM frekansını hem de PWM görev döngüsünü üreten bir zamanlayıcı kullanarak yazılımda yapılması gerekiyordu.

PIC12F617, otomatik yeniden yükleme özelliklerine sahip yerleşik bir zamanlayıcıya sahiptir. Bu, zamanlayıcının yeniden yükleme değerini bir kez ayarladığınızda, zaman aşımı her geçtiğinde bu değeri kullanacağı ve böylece zamanlayıcının belirli bir frekansta bağımsız olarak çalışacağı anlamına gelir. Zamanlama, kararlı bir PWM sinyali için kritik olduğundan, zamanlayıcı, ana programın LED'ler için rastgele açık kalma süresini kontrol etmesi ve belirlemesi gereken zamandan etkilenmeden, kesinti temelinde çalışır.

PWM frekansı, herhangi bir titremeyi önleyecek kadar yüksek olmalıdır ve bu yüzden 100 Hz'lik bir PWM frekansı seçtim. Fade-in ve fade-out etkisi için görev döngüsünü ve dolayısıyla LED'in parlaklığını değiştirmemiz gerekiyor. Azalma ve kararma efekti elde etmek için parlaklığı artırmak veya azaltmak için 5'lik bir adım artışı kullanmaya karar verdim ve zamanlayıcı görev döngüsü için 0 ila 255 aralığı kullandığından, zamanlayıcının 255 / 5 = 51 katı normal frekans veya 5100 Hz. Bu, her 196 us'de bir zamanlayıcı kesintisine neden olur.

Adım 2: Mekanik Çalışma

Mekanik İş
Mekanik İş
Mekanik İş
Mekanik İş
Mekanik İş
Mekanik İş

Hediyeleri yapmak için süt beyazı akrilik plastik kullandım ve kurulumun geri kalanı için MDF kullandım. LED yanarken paketteki LED'in şeklini görmenizi engellemek için LED'lerin üzerine LED'den gelen ışığı dağıtan bir kapak koydum. Bu kapak, sahip olduğum bazı eski elektronik mumlardan geldi ama aynı akrilik plastiği kullanarak da bir kapak yapabilirsiniz. Resimlerde ekipman ve malzeme olarak ne kullandığımı görüyorsunuz.

Adım 3: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Şematik diyagram, ihtiyacınız olan elektronik bileşenleri gösterir. Daha önce belirtildiği gibi, mavi LED'in birleştirildiği yerde 5 LED bağımsız olarak kontrol edilir. PIC, bir port pininde iki LED'i çalıştıramadığından, kombine mavi LED'leri kontrol etmek için bir transistör ekledim. Elektronik, 3 adet AAA şarj edilebilir pil ile çalışır ve sıfırlama anahtarına basılarak açılıp kapatılabilir.

Bu proje için aşağıdaki elektronik bileşenlere ihtiyacınız var:

  • 1 adet PIC mikrodenetleyici 12F617 soketli
  • 2 Seramik kapasitör: 2 * 100nF
  • Dirençler: 1*33k, 1*4k7, 2*68 Ohm, 4*22 Ohm
  • 2 RGB LED, yüksek parlaklık
  • 1 BC557 transistör veya eşdeğeri
  • 1 basmalı düğme anahtarı

Devreyi bir breadboard üzerine kurabilirsiniz ve resimde görüldüğü gibi fazla yer gerektirmez. LED'ler üzerinden maksimum akımı kontrol etmek için direnç değerlerinin neden bu kadar düşük olduğunu merak edebilirsiniz. Bunun nedeni, LED başına renge bağlı olarak her LED'in sahip olduğu voltaj düşüşüyle birlikte 3,6 Volt'luk düşük besleme voltajıdır, ayrıca bkz. Wikepedia. Direnç değerleri, tüm sistemin maksimum akımının yaklaşık 30 mA olduğu LED başına yaklaşık 15 mA maksimum akımla sonuçlanır.

4. Adım: Yazılım

Yazılım aşağıdaki görevleri gerçekleştirir:

Cihaz basma düğmesi ile sıfırlandığında, kapalıysa cihazı açar, açıksa cihazı kapatır. Kapalı, PIC12F617'yi neredeyse hiç güç tüketmediği uyku moduna almak anlamına gelir.

LED'lerin parlaklığını kontrol etmek için PWM sinyali oluşturun. Bu, LED'leri açıp kapatan PIC12F617'nin pinlerini kontrol eden bir zamanlayıcı ve bir kesme servis rutini kullanılarak yapılır.

LED'leri karartın ve karartın ve 3 ila 20 saniye arasında rastgele bir süre boyunca açık tutun. Rastgele süre 10 saniyeye eşitse, her iki LED de 10 saniyeliğine maviye döner ve ardından normal kırmızı-yeşil kararma ve kararma düzeni kullanılır.

Çalışma sırasında PIC, yerleşik Analog-Dijital Dönüştürücüyü (ADC) kullanarak besleme voltajını ölçecektir. Bu voltaj 3,0 V'un altına düştüğünde LED'leri kapatacak ve PIC'yi tekrar uyku moduna geçirecektir. PIC yine de 3.0 V'ta iyi çalışabilir ancak şarj edilebilir pillerin tamamen boşalması iyi değildir.

Daha önce bahsedildiği gibi, PWM sinyali, kararlı bir PWM sinyalini korumak için bir kesme servis rutini kullanan bir zamanlayıcı kullanılarak oluşturulur. LED'lerin yandığı süre de dahil olmak üzere, LED'lerin sönmesi ve sönmesi ana program tarafından kontrol edilir. Bu ana program, PWM sinyalini oluşturan aynı zamanlayıcıdan türetilen 40 milisaniyelik bir zamanlayıcı işareti kullanır.

Bu proje için belirli bir JAL kütüphanesi kullanmadığım için bu sefer LED'lerin rastgele açık ve rastgele kapalı zamanlarını oluşturmak için lineer bir geri besleme kaydırma yazmacı kullanarak rastgele bir üreteç yapmak zorunda kaldım.

Adım 5: Nihai Sonuç

Image
Image
Nihai Sonuç
Nihai Sonuç

Ara sonucu gösteren 2 video var. Karımın hala küpleri gerçek hediyelere dönüştürmesi gerekiyor. Bir video, diğer videonun bu projeye yol açan orijinal hediye ile gösterdiği sonucun yakından bir görüntüsünü gösterir.

Bitirdiğinizi düşündüğünüzde beklediğiniz gibi, yeni gereksinimler açılır. Karım, LED'ler söndükten sonra parlaklığının da değişip değişmeyeceğini soruyordu. PIC12F617'nin program belleğinin sadece yarısını kullandığım için bu mümkün tabii.

PIC'yi programlamak için JAL kaynak dosyası ve Intel Hex dosyası ektedir. Pascal benzeri bir programlama dili olan JAL ile PIC mikro denetleyiciyi kullanmakla ilgileniyorsanız, JAL web sitesini ziyaret edin.

Bunu Eğitilebilir hale getirirken ve tepkilerinizi ve sonuçlarınızı dört gözle beklerken iyi eğlenceler.