İçindekiler:
- Adım 1: Saat Örneği
- 2. Adım: Neopikseller
- Adım 3: Ön Metni Ayarlama
- Adım 4: Tam Gökkuşağı Etkisi
- Adım 5: Çeşitli Bileşenler
- Adım 6: Saat Kodu
- 7. Adım: Donanım Açıklaması
- Adım 8: Neopiksellerin Parlaklık Kontrolü için LDR
- Adım 9: WS2812B Güç Tüketiminin Azaltılması
- Adım 10: Kelime Saatinde Smiley
- Adım 11: Hangi Kitaplıklar Kullanılır
- Adım 12: Basit IR Uzaktan Kumanda
- Adım 13: Sırada Ne Var?
Video: Tam Gökkuşağı Efekti ve Daha Fazlası Olan Gökkuşağı Kelime Saati: 13 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Hedefler
1) Basit
2) Pahalı değil
3) Mümkün olduğunca enerji verimli
Tam bir gökkuşağı efekti ile Gökkuşağı Kelime Saati.
Kelime Saatinde Bir Smiley.
Basit IR uzaktan kumanda
Neopiksellerin Parlaklık Kontrolü için 03-nov-18 LDR Güncellemesi
01-jan-19 Güncellemesi WS2812B güç tüketimini azaltma.
15-Ocak-19 Smiley'i güncelleyin.
23 Ocak-19 Kod 1.6 Güncellemesi
10-mar-19 Kitaplıkları bağlantılarını güncelle
Güncelleme 14-nisan-19 sürüm 1.7 Seçim gülen yüz açık/kapalı renk gökkuşağı/düzeltme enz.
Son güncelleme 01-haz-19 sürüm 2.0 IR uzaktan kumanda ve kod yeniden tasarımı
Adım 1: Saat Örneği
Bazı basit araçlar ve biraz da beceri ile harf saat yapmak zor değil. Elimdeki malzemeleri kullandım.
Durum için, içinde birkaç çerçeve gördüğüm sert bir çam çubuğu kullandım. Bunlar, kasanın birbirine yapıştırılmış ve köşelerde küçük bir tahta parçası ile güçlendirilmiş dört tarafını oluşturacaktı. Daha sonra ahşabın zımparalanması ve boyanması gerekir.
Harfler bir yazıcı tarafından ayna yazısında folyodan kesilir. Folyo cam plakanın arkasındadır ve daha iyi ışık dağılımı için çift katmanlı desenli kağıt ile kaplanmıştır. Cam silikon dolgu macunu ile sabitlenir.
2. Adım: Neopikseller
Neopixels LED'ler ahşap bir plaka üzerinde düzenlenmiştir. Bunda önce 3 mm'lik delikler açıyorsunuz. Önde, harf boyutuna 3/4 derinliğe kadar büyütülürler. Bundan sonra arkadaki 3 mm, 10 mm'ye yükseltilir, bu bir Neopiksel boyutudur. Diğerlerinin yanı sıra bazı karakterler için W, delik biraz ayarlanmalıdır.
Çabuk dağılan kontrplak kullandım, MDF daha iyi olabilir.
Tek tek LED'lerde, LED şeritlerinde olduğu gibi sabit bir mesafeye bağlı değilsiniz. LED'ler birbirine bağlı olmalıdır. Bunu tüm kısa tel parçalarıyla yapabilirsiniz. Ancak iki min (-) bağlantı, dahili olarak bağlanan iki artı (+) bağlantı gibidir, yani aynı bağlantı.
Sol LED'e ve ardından sağ LED'e bir parça tel lehimleyerek kendinize çok fazla iş kurtarabilirsiniz. Sonra ara olanları lehimleyin.
Veri çıkışı veri girişine gittiği için veri bağlantısı elbette kısa parçalarla yapılmalıdır.
Adım 3: Ön Metni Ayarlama
Ön plaka şimdi Hollandaca, ancak herhangi bir dile dönüştürmek için.
NeoPixels ledleri burada 0-167 arasında sırayla değiştirilir. Numaralandırma, sol üstteki ilk satırdan sağa ve ardından ikinci satıra sağdan sola vb. gider. Kendi ihtiyaçlarınıza göre ayarlama yapılabilir. NeoPixels sayısı, karakter miktarına göre belirlenir. Aşağıdaki satırda daha az veya daha fazla Neopiksel ayarlanabilir
#define NUMPIXELS 168 // Arduino'ya kaç NeoPiksel bağlı?
168 başka bir sayıdan daha fazladır. Numaralandırma 0'dan başlar. Herhangi bir metin yapabilirsiniz. Metni değiştirirseniz, karşılık gelen kelimeleri de ayarlamanız gerekir. Numaralandırma aynı kalır.
Örnek olarak, tutanakların DRIE'si kodda belirlenir.
geçersiz zetmDrie () {
Led_Aan[56]=1, Led_Aan[57]=1, Led_Aan[58]=1, Led_Aan[59]=1; // dakika-kuru
}
Arduino kelimesini yapmak istiyorsanız, şöyle devam eder:
geçersiz zetArduino () {
Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;
Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; //Kelime-arduino
}
Böylece arada kelimeler yapabilirsiniz.
Saat kelimeleri için, bitişik bir kelime oluşturmaları yararlıdır, ancak kesinlikle gerekli değildir. Kullanılmayan harfler Neonpiksele ihtiyaç duymaz. Zamanın gösterilmesinden başka gelecekteki olasılıkların kullanımı için hepsini doldurdum.
Başlangıç noktasını değiştirirseniz veya ardışık sırayı değiştirirseniz, numaralandırma buna göre değişmelidir.
Adım 4: Tam Gökkuşağı Etkisi
Saat artık öyle programlanmıştır ki, saniyede kaç kez açıldığı sayılmaktadır.
Toplam spektrum, bölünen ve sonra hafifçe kaydırılanların sayısıyla ilgilidir. Sonuç olarak, her Neopiksel sürekli değişen farklı bir renktir. Neopixel nr 1 ve nr 167, bazı renk içeriklerinde birbirini takip eder.
Aynı anda daha az farklı renk tercih ederseniz, bunu ayarlamak kolaydır. Renk hala tüm spektrumda kayıyor, ancak daha küçük bir kısmı var. Neopixel nr 1 ve nr 167 artık birbirini takip etmiyor, bazı renkler içeriyor.
Parlaklık aşağıdaki satırda ayarlanabilir, piksel.setBrightness(150);
Daha küçük bir sayı daha az ve daha büyük bir sayı daha fazla parlaklıktır.
Adım 5: Çeşitli Bileşenler
Kullandığım aşağıdaki bileşenler
Arduino Pro Mini ATMEGA328 5V/16MHz
Saat Modülü DS3231
168 adet Neopiksel led'ler WS2812 LED Chip & Soğutucu 5V 5050 RGB WS2811 IC Dahili
Folyo mektup şablonu
DCF77 alıcısı
Adım 6: Saat Kodu
İşte kod. Bir parlaklık kontrolü eklendi ve kimse yokken ve gece kapandı.
RCWL-0516 Radar Mikrodalga Hareket Sensörü eklendi (RADAR arayın)
10 dakika boyunca hareketsiz kaldıktan sonra NeoPixels söner.
Sürüm 2.0 hakkında
Derleyicide bellek yetersiz uyarıları ile bellek kullanımı çok fazlaydı. Bu yüzden kodu tamamen değiştirdim, ancak işlem aynı kaldı ve bir IR alıcı eklendi.
EEPROM'a veri sağlamak için bir kod parçası vardır. / * ve * / işaretlerini geçici olarak kaldırarak bunu bir kez çalıştırın. Ara => EEPROM'a veri sağlamak için bunu bir kez çalıştırın
Void döngüsünün başında kendi uzaktan kumandanızdan kodu okumak için kod bulunur. Bunu / * ve * / işaretlerini geçici olarak kaldırarak çalıştırabilirsiniz, daha sonra geri koymayı unutmayın. Ayrıca kendi düğmelerinizi de tanımlayabilirsiniz. Okunan kod => Burada kendi düğmelerinizi tanımlayın alanına girilmelidir.
Samsung uzaktan kumandası (çok ucuz) basit olandan daha iyi çalışır.
7. Adım: Donanım Açıklaması
Arduino Pro Mini'nin farklı versiyonları vardır. Lütfen bağlantıların farklı olabileceğini unutmayın.
RCWL-0516 Mikrodalga Hareket Sensörü eklendi.
Saatin çevresinde hareket olduğu sürece NeoPixel açık kalır.
ve daha fazla hareket olmadığında, NeoPixel birkaç dakika sonra söner.
Sürüm 2.0'da DCF77 alıcısına pin 13 üzerinden güç verilir. Bu pin çıkış olarak tanımlanır ve DCF77 rutini adreslendiğinde yüksek olarak ayarlanır. DCF77 alıcısı 0,28 mA kullanır ve günde yalnızca birkaç dakika gereklidir.
tasarrufları kapatmak
5 Volt * 0,28 mA / 1000 * 24 saat * 365 gün * 1 / 0,85 verimli güç kaynağı = yılda 14,4 watt.
Bu çok fazla görünmüyor, ancak her bit yardımcı oluyor.
Adım 8: Neopiksellerin Parlaklık Kontrolü için LDR
Neopiksellerin parlaklık kontrolü için bir LDR eklendi.
LDR'yi neopiksel 103'ün alanına yapıştırdım. Bu, zaman göstergesinde kullanılmaz ve bu nedenle düzenlemeyi etkilemez. Kağıt gelen ışığı söndürür, ancak bu sorun değil.
LDR ve 20 kohm rezistörün voltaj bölücüsü Arduino Pro Mini'nin A0'ına gider. Voltaj, ışık yoğunluğunun bir göstergesidir ve dolayısıyla neopiksellerin vermesi gereken ışık miktarının bir göstergesidir.
Kullandığım formül bana iyi bir ışık kontrolü sağlıyor, şartlara göre ayarlanabiliyor. Işık miktarına bağlı olarak, voltaj 0 ila 5 volt arasında değişebilir ve bu, "LDRValue" içindeki 0 ila 1024 sayıya dönüştürülür.
Yeni ölçülen değer son hesaplanan değerden büyükse yoğunluk 1 artırılır, 1 azaltılan değerden düşük ise eşitse hiçbir şey yapılmaz. Yanıp sönme efekti olmaması için değerin yavaş ilerlemesini sağlamak için sadece 1 artırılır veya azaltılır ve hesaplama döngüde olduğu için ancak döngü 25 kez geçildikten sonra yeniden hesaplanır.
Yoğunluk teorik olarak minimum 20 ve maksimum 1024/7 + 45 = 191'dir. Ölçtüğüm maksimum değer 902 idi, bu da 173 yoğunluğa denk geliyor. Bu, varsayılan değer olarak belirlediğim 150 ile iyi uyuyor. (bkz. piksel.setBrightness(150))
Sürüm 2.0'da kontrolü uzaktan kumanda ile ayarlayabilirsiniz. Aşağıdaki parametreler minimum olarak Brightness_min ve maksimum ayar olarak Brightness_max ve ayar parametresi olarak Brightness_Offset eklenmiştir. Brightness_min ve _max, kendi durumunuza bağlı olabilecek değerlerdir. Brightness_Offset, uzaktan kumanda ile ayarlanabilen ve az ya da çok parlaklık ayarlanabilen bir değerdir.
Ayrıca ölçülen LDRValue ile hesaplanan BerLDRValue değerleri arasında 3'lük bir ölü bant vardır.
Parlaklık ayarını kontrol etmek için void BrightnessControl içindeki yazdırma ifadelerini kullanın.
Adım 9: WS2812B Güç Tüketiminin Azaltılması
WS2812B adreslenebilir neopiksellerdeki sürücüler, neopikseller kapalı, renk 0'a ayarlanmış (neopiksel öğeleri yanmıyor) olduğunda bile akım çekiyor.
169 neopikselin tümü bittiğinde, neopiksellere 69 mA ölçüyorum. Saatin günde 12 saat kapalı olduğunu varsayarsak, toplam kapatma şu tasarrufu sağlar: 5 (Volt güç kaynağı) * 69/1000 (Miliamper / 1000 = Amper) * 12 (Günlük saat sayısı) * 365 (Günlük gün sayısı) yıl) = 1511 Watt saat. Yani yıllık bazda 1.5 Kwh. Katılıyorum, kendi başına çok fazla değil, ama birçok küçük, büyük bir tane yapar.
Devre basittir. Güç kaynağının artısı bir P-kanalı MosFet tarafından değiştirilir. Radar sensörü, neopiksellerin açık mı yoksa kapalı mı olduğunu belirler. MosFet'lerin kaybı nedeniyle AÇIK direncini mümkün olduğunca düşük tutmak için iki MosFet parrelel koydum. Normal kullanımda MosFets üzerinden 4,5 mili volt ölçüyorum. Kapı, Arduino'dan 470 Kohm direnci aracılığıyla çıkış 4 tarafından kontrol edilir. Çıkış dijital olarak düşük (0)'a giderse, neopikseller açıktır ve yüksek (1)'de kapalıdırlar.
Adım 10: Kelime Saatinde Smiley
Kelime Saatinde Bir Smiley.
Saatte ara sıra bir Smiley belirir. Ancak bu sizi mutlu eder.
Smiley, radar sensörü tarafından tetiklenir. Hareket sayısı (ayarlanabilir), Smiley'in görünümünün bir ölçüsüdür. % işaretleri hareketin algılandığını gösterir. Her onuncu (ayarlanabilir) hareketle, Smiley Kırpık Yüz ile gelir ve üç defadan sonra Kırpık Yüz, dördüncü kez dilini dışarı çıkaran bir Gülen Yüz gelir.
Smiley, kodda küçük bir değişikliktir.
Adım 11: Hangi Kitaplıklar Kullanılır
Hangi Kütüphaneler kullanılır.
Bunları Windows 7'de Arduino IDE 1.6 ile kullanıyorum ve ayrıca Windows 10'da Adruino IDE 1.8.8 ile test edildiler.
RTClib-master
Arduino-DS3231-master
Adafruit_NeoPixel-master
Arduino-DCF77-master
Ken Shirriff'in IRremote Kütüphanesi
Kullanılan kitaplık konusunda her zaman kafa karışıklığı olduğu için kullandığımı ekliyorum.
IRremote kitaplığı çok fazla bellek kullanır. IRremote.h'de kullanılmayan herhangi bir protokolü devre dışı bırakabileceğiniz belirtilir.
// Eklediğiniz her protokol hafızaya ve kod çözme sırasında zamana mal olur// İhtiyacınız olmayan/istemediğiniz tüm protokolleri devre dışı bırakın (0'a ayarlayın!
NEC ve Samsung protokolü dışında her şeyi devre dışı bıraktım. Bu, %10'luk bir bellek tasarrufu sağlar. Şu anda bellek miktarıyla ilgili bir sorun yok, dolayısıyla şimdilik devre dışı bırakma gerekli değil.
Adım 12: Basit IR Uzaktan Kumanda
Meclis
Fotoğraflarda da görebileceğiniz gibi, LED 132'nin deliği biraz fazla büyük çıkmış. Bundan iyi yararlandım ve IR alıcısını buna ekledim. IR alıcısı VS1838'in veri pinini Arduino'nun 7 pinine bağlayın. Ayrıca artı ve eksi güç kaynağını bağlayın. IR alıcı 0,21 mA kullanır ve FET anahtarından sonra artı güç kaynağına da bağlanabilir. Bu, saat zamanın %50'sinde 5 Volt * 0,21 mA / 1000 * 12 saat * 365 gün * 1 / 0,85 verimli güç kaynağı = yılda 5,4 watt'lık bir tasarruf sağlar. Bu çok fazla görünmüyor, ancak her bit yardımcı oluyor.
İşlem aşağıdaki gibidir
IR uzaktan kumanda üzerindeki herhangi bir tuşa ve ardından OK tuşuna basın. İlk kez bastığınızda, IR işlemine gireceksiniz ve ikinci kez bunun haklı bir talep olup olmadığını tespit edeceksiniz. İkinci kez OK, ilk tuşa basışı hızlı bir şekilde takip etmelidir, aksi takdirde tekrar geri döner. Bu yapıyı, ilk kodun kodunun doğru bir şekilde çözülmesini zorlaştıracak şekilde yaptım ve bu nedenle IR işlemede sona ermedi.
IR işlemeye girdikten sonra bilgi için bir dizi LED yanar, açıklama için daha fazla okuyun ve ilk resmi görüntüleyin.
Açıklama basit uzaktan kumanda içindir, ancak herhangi bir uzaktan kumandayı kullanabilir ve kendi anahtarlarınızı tanımlayabilirsiniz. Ayrıca bir Samsung uzaktan kumanda kullandım.
İlk dört tuş, LED'lerin en üstteki dört sırasına karşılık gelir. Ayara bağlı olarak dört LED sola veya sağa döner. 1 ile 4 arasındaki tuşlara basıldığında durum tersine çevrilir ve hafızaya kaydedilir.
1 sabit renk veya gökkuşağı efekti
2 saniye flaş kapalı veya ikinci flaş açık
3 gülen yüz kapalı gülen açık
4 DCF77 kapalı veya DCF77 açık
Anahtarın numarası aşağıdaki tuşlarda görüntülenir
5 gülen sayaç
6 gökkuşağı spektrum genişliği
7 kırmızı ayarı düzelt
8 yeşil ayarı düzelt
9 mavi ayarı düzelt
LED'lerin 6., 7. ve 8. satırı artık ayarlanan değere karşılık gelir, 6. satır birimleri, 7. satır onlukları ve 8. satır yüzleri gösterir. Her satır sıfır değeriyle başlar. Yani sıradaki ilk led 0, ikincisi 1 vs.
0 zaman ayarı
/\ parlaklık ayarı
0 tuşuna basıldığında saat ayarlamak istediğinizi belirtmek için "on" LED'i yanar ve 0'a ikinci kez bastığınızda ayarlanan saat ekrana gelir.
Artık saat ayarlanabilir ve ekranda gösterilir.
Doğru zamanı ayarlayın ve ardından referans saatteki dakika aynıysa, OK düğmesine basın.
Zaman ayarlanır.
Dakika veya saat butonunu çalıştırmazsanız saat değişikliği yapılmayacaktır. Onlara basarsanız, saat hemen ayarlanacaktır.
5 ile 9 arasındaki tuşların değeri, tuşları ile değiştirilebilir.
sağ artı 1
sol eksi 1
ileri artı 10
tersi eksi 10'dur.
ve zaman ayarı için
sağ artı 1 dakika
sol eksi 1 dakika
ileri artı 1 saat
ters eksi 1 saat
Bazen tuşa basma tanınmaz veya iki kez yapılır. Bu nedenle, ayar iyi giderse dikkat edin, aksi takdirde tekrar deneyin veya düzeltin. Benim de test ettiğim Samsung uzaktan kumandası, (çok ucuz) basit uzaktan kumandadan çok daha iyi çalıştı.
Rengi ayarlarken, değişikliği doğrudan tüm ekranda görürsünüz. Renklere genel bakış içeren bir site için bkz. https://www.helderester.nl/kleurentabel.html. Elbette herhangi bir değer belirleyebilirsiniz.
Gökkuşağı spektrum genişliği 0 değerine sahipse, spektrum çok dardır ve ekranda sürekli değişen bir renk vardır.
Saati bu şekilde ayarlamanın dezavantajı ise tarih yanlış olduğu için yaz/kış geçişi hesaplayamamanızdır. Saatin kendisi için önemli değil çünkü artık kullanmıyoruz.
Adım 13: Sırada Ne Var?
Ardından, boş hafıza hala yeterliyse ses çıkar.
Hoparlör kutularına zaten sahibim. Onlar eski bir dizüstü bilgisayardan.
Önerilen:
Otomatik Sulama, İnternet Bağlantısı ve Çok Daha Fazlası Olan Harika Sera: 7 Adım (Resimlerle)
Otomatik Sulama, İnternet Bağlantısı ve Çok Daha Fazlası Olan Harika Sera: Bu Talimatlara Hoş Geldiniz. Mart ayının başında bir bahçe dükkanındaydım ve bazı seralar gördüm. Ve zaten uzun zamandır bitki ve elektronik ile bir proje yapmak istediğim için devam ettim ve bir tane satın aldım: https://www.instagram.com/p
Daha Az Alanda Daha Fazla Marul Yetiştirmek Veya Uzayda Marul Yetiştirmek, (Daha Fazla veya Daha Az).: 10 Adım
Daha Az Alanda Daha Fazla Marul Yetiştirmek Veya… Uzayda Büyüyen Marul, (Daha Fazla veya Daha Az).: Bu, Instructables aracılığıyla gönderilen Growing Beyond Earth, Maker Yarışması'na profesyonel bir başvurudur. Uzay mahsulü üretimi için tasarım yapmaktan ve ilk Instructable'ımı göndermekten daha fazla heyecanlanamazdım. Başlamak için yarışma bizden
Gökkuşağı Efektli ve Arka Plan Işıklı Kelime Saati: 6 Adım
Gökkuşağı Efektli ve Fon Işıklı Kelime Saat: Başlangıç orada. Ön plaka 40 x 40 cm ve hazır
Akafugu Kelime Oluşturuculu ve İlham Verici Sözlü Dört Harfli Kelime Saati: 3 Adım
Akafugu Kelime Üreticisi ve İlham Verici İfadeler ile Dört Harfli Kelime Saati: Bu, 1970'lerde ortaya çıkan bir fikir olan Dört Harfli Kelime Saatinin benim versiyonum. Saat, rastgele bir kelime üreteci algoritmasından veya ilgili dört harfli bir veri tabanından üretilen bir dizi dört harfli kelime görüntüler
O-R-A RGB Led Matris Duvar Saati ve Daha Fazlası **Temmuz 2019'da güncellendi**: 6 Adım (Resimlerle)
O-R-A RGB Led Matris Duvar Saati ve Daha Fazlası **Temmuz 2019'da güncellendi**: Merhaba. O-R-AIt adlı yeni bir projeyle karşınızdayım, şunu gösteren bir RGB LED Matrix duvar saati: saat:dakika sıcaklık nem mevcut hava durumu simgesi Google Takvim etkinlikleri ve belirli bir zamanda 1 saatlik hatırlatma bildirimleri gösterir: