İlan

Yanıp sönen LED'lerle her türlü şeyi yapabilirsiniz ve bu basit projede, ileri geri salladığınızda havadaki mesajları aydınlatan küçük bir cihaz yapacağız. Düşündüğünüzden daha kolay ve parçaların toplam maliyeti 5 doların altında.

Bu proje, metnin havada görünmesini sağlamak için görme kalıcılığı adı verilen optik bir yanılsama kullanır. Muhtemelen birisi gece yanan bir maytapı hareket ettirdiğinde bu fenomenle karşılaşıyorsunuz. Bu etkiyi taklit etmek için bir Arduino ve bazı LED'ler kullanacağız. Bu proje, birkaç bileşen ve az lehim ile inşa etmek kolaydır (gerçi havya kontrolünüze başlamak için bazı ipuçları istiyorsanız) bu rehber Bu Basit İpuçları ve Projelerle Lehimin Nasıl Yapıldığını ÖğreninSıcak demir ve erimiş metal düşüncesi sizi biraz korkutuyor mu? Elektronikle çalışmaya başlamak istiyorsanız, lehim yapmayı öğrenmeniz gerekecek. Yardım edelim. Daha fazla oku ).

İhtiyacın olacak

  • Arduino (Kompakt ve ucuz olduğu için 2 $ Nano kullandım, ancak herhangi bir model iyi olmalı).
  • 5x Kırmızı LED'ler.
  • instagram viewer
  • 5x 220 Ohm dirençler.
  • 1x 9v pil tutucu.
  • 1x Rocker anahtarı.
  • 1x protokol parçası.
  • Bitmiş ürün için bir muhafaza (Siyah boyalı küçük bir karton kutu kullandım).

Ayrıca hepsini bir araya getirmek için bir havya ve bir lehim gerekir.

İsteğe bağlı olsa da, lehimleme hataları yapmanız durumunda bazı lehim fitilleri çok kullanışlı olabilir. Devreni test etmek için bir breadboard ve bazı bağlantı telleri de yararlıdır.

Proje için Gerekli Bileşenler

kablolama

Kablo bağlantısı daha kolay olamazdı. İlk olarak, Arduino'nuzu, LED'lerinizi ve dirençlerinizi bu şemada gösterildiği gibi bağlayın.

pov fritzing

D2 ila D6 pinleri, her bir LED'in pozitif anoduna (uzun bacak) bağlı olan sırasıyla her bir dirence gider. Katot, Arduino'ya geri bağlanan toprağa bağlanır. Tamamlandığında şöyle görünmelidir:

pov breadboard

Hepsi bu: Devremiz bitti! Daha sonra bir pil yuvası ve bir anahtar ekleyeceğiz, ancak çalışıp çalışmadığını test etmek için tek ihtiyacımız olan bu.

kod

Şimdi Arduino'nuzu bilgisayara bağlayın ve Arduino IDE'yi açın. Arduino'yu kullanmakta yeniyseniz ve devam etmek için iyi bir rehber istiyorsanız, bu bağlantı Arduino'ya Başlarken: Başlangıç ​​KılavuzuArduino esnek, kullanımı kolay donanım ve yazılıma dayalı açık kaynaklı bir elektronik prototipleme platformudur. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar oluşturmak isteyen herkes için tasarlanmıştır. Daha fazla oku yararlı olacaktır.

Yeni bir çizim açın ve bu kodu içine kopyalayın. Kod değiştirildi bu proje ve tam olarak indirebilirsiniz bu özünde.

// her led'in ne kadar süre açık kaldığını. int delayTime = 1; // her int arasında ne kadar süre charBreak = 3; // mesaj tekrarlanmadan önce ne kadar bekleyeceğini. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; void setup () { pinMode (LED1, ÇIKIŞ); pinMode (LED2, ÇIKIŞ); pinMode (LED3, ÇIKIŞ); pinMode (LED4, ÇIKIŞ); pinMode (LED5, ÇIKIŞ); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; into [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int boşluk [] = {0, 0, 0, 0, 0}; void displayLine (int satırı) { int myline; myline = çizgi; if (myline> = 16) {digitalWrite (LED1, YÜKSEK); myline- = 16;} başka {digitalWrite (LED1, DÜŞÜK);} if (myline> = 8) {digitalWrite (LED2, YÜKSEK); myline- = 8;} başka {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, YÜKSEK); myline- = 4;} başka {digitalWrite (LED3, DÜŞÜK);} if (myline> = 2) {digitalWrite (LED4, YÜKSEK); myline- = 2;} başka {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, YÜKSEK); myline- = 1;} başka {digitalWrite (LED5, LOW);} } void displayChar (karakter c) { if (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); delay (delayTime);} displayLine (0);} if (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); delay (delayTime);} displayLine (0);} if (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); delay (delayTime);} displayLine (0);} if (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); delay (delayTime);} displayLine (0);} if (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); delay (delayTime);} displayLine (0);} if (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); delay (delayTime);} displayLine (0);} if (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); delay (delayTime);} displayLine (0);} if (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); delay (delayTime);} displayLine (0);} if (c == 'i') {for (int it = 0; o <5; it ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} if (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); delay (delayTime);} displayLine (0);} if (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); delay (delayTime);} displayLine (0);} if (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); delay (delayTime);} displayLine (0);} if (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); delay (delayTime);} displayLine (0);} if (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); delay (delayTime);} displayLine (0);} if (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); delay (delayTime);} displayLine (0);} if (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); delay (delayTime);} displayLine (0);} if (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); delay (delayTime);} displayLine (0);} if (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); delay (delayTime);} displayLine (0);} if (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} if (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); delay (delayTime);} displayLine (0);} if (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); delay (delayTime);} displayLine (0);} if (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); delay (delayTime);} displayLine (0);} if (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); delay (delayTime);} displayLine (0);} if (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); delay (delayTime);} displayLine (0);} if (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); delay (delayTime);} displayLine (0);} if (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); delay (delayTime);} displayLine (0);} if (c == '!') {for (int i = 0; i <5; i ++) {displayLine ([i] hariç); delay (delayTime);} displayLine (0);} if (c == '?') {for (int i = 0; i <5; i ++) {displayLine (ques [i]); delay (delayTime);} displayLine (0);} if (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); delay (delayTime);} displayLine (0);} if (c == '') {for (int i = 0; i <5; i ++) {displayLine (boşluk [i]); delay (delayTime);} displayLine (0);} gecikme (charBreak); } void displayString (karakter * s) {for (int i = 0; i <= gerilim (ler); i ++) {displayChar (s [i]); } } void loop () {// Görüntülenen metni değiştirmek için buradaki metni değiştirin. // Köşeli parantezleri ve tırnak işaretlerini sakladığınızdan emin olun. ( "... alo ..") DisplayString; gecikme (40); }

Çizimi kaydedin ve panonuza yükleyin. Herhangi bir hata alırsanız, doğru kart ve com bağlantı noktasını seçtiğinizden emin olun. LED'leriniz titremeye başlamalıdır. Değilse, breadboard'unuzdaki tüm bağlantılarınızı kontrol edin. Kodun başında bildirilen tamsayılar metnin ne kadar hızlı görüntüleneceğini belirler. Sayı ne kadar yüksek olursa, cihazı o kadar hızlı sallamanız gerekir. Burada kullanılan sayıların iyi çalıştığını gördüm.

Şimdi hızlı bir test yapalım. Arduino'nuzu USB kablosundan çıkarın ve pil tutucunuzu arduino'nuzun VIN ve GND pinlerine takın

sopası ile pov fritz

Artık hareket ettirebileceğinize göre, LED'leri dikkatlice önünüzde sallamayı deneyin. Etrafınızda yeterince karanlık olması koşuluyla, havada oluşan bazı harfleri görmelisiniz. Bunu yakalamak için telefonumu ayarlamam yardımcı oldu.

ekmek testi

İşe yarıyor! Şimdi biraz daha kalıcı hale getirmek için.

Ütüler Hazır!

Arduino kartınızı, dirençlerinizi ve LED'lerinizi protokolünüze şu şekilde yerleştirin:

gemide düzenlendi

Devre aynı kaldığı sürece düzeni istediğiniz kadar kompakt hale getirebilirsiniz. Bileşenler ve güç kaynağı için Arduino'nuzun her iki yanında en az bir satır kontağa temas ettiğinizden emin olun. Elektronikte yeni başlayan biriyseniz, işte bazı senin için harika ipuçları Başlangıç ​​Elektroniği: Bilmeniz Gereken 10 BeceriBirçoğumuz asla bir havya bile dokunmadık - ama bir şeyler yapmak inanılmaz derecede ödüllendirici olabilir. İşte başlamanıza yardımcı olacak en temel DIY elektronik becerilerinden on tanesi. Daha fazla oku .

LED katotlarını ortak bir zemin oluşturmak için bir çizgide lehimleyeceğiz, tıpkı bizim yaptığımız gibi LED matrisi Noel Çelenkinizi Harekete Geçirilmiş LED Matris ile YükseltinBu DIY Noel çelenk, arkadaşlarınızı ve ailenizi etkileyecek şaşırtıcı bir ışıklı ekran üretmek için Arduino ve LED matrisi kullanır. Daha fazla oku .

satır katotları

Her katodu bir sonraki ile çakışacak şekilde katlayın ve kesintisiz bir çizgi oluşturmak için lehimleyin. Şimdi anotlarımızı yanlarındaki dirençlerin bacaklarına lehimlememiz gerekiyor. Bunu yapmanın en kolay yolunu, her bacağını kendi pedlerine lehimlemek ve sonra Sonunda arasındaki boşluğu kapatmak için daha fazla lehim eklemeden önce her iki eklemi ısıtmak için onlar.

Her bağlantının sağlam bir şekilde bağlandığını kontrol edin ve daha sonra direnç ve LED'lerden fazla bacakları kesmek için tel kesiciler kullanın.

anotlara karşı dirençler

Şimdi aynı görevi tekrarlayın, ancak bu sefer dirençlerimizin diğer ucunu Arduino'nun bacaklarına bağlayın. Lehimlemenin en zor kısmı budur. Her direnç tek başına Arduino pinine çok fazla bağlanır veya devre amaçlandığı gibi çalışmaz. Burada birkaç hata yaptım ve istenmeyen lehim birkaç kez kaldırmak için lehim fitili kullanmak zorunda kaldı.

Tüm doğru bağlantıları yaptıktan sonra, hiçbirinin komşularıyla örtüşmediğini iki kez kontrol edin. Burada bir multimetreye erişiminiz varsa, her bir pimin direncinde sadece kesintisiz bir çizgi olup olmadığını kontrol etmek için süreklilik modunu kullanabilirsiniz. Sadece bir multimetreniz varsa, harika bir başlangıç ​​kılavuzu var Bu makalede. Çocuklarınıza Öğretmek İçin 7 Kendin Yap Teknik Beceri, Çünkü Okullar Daha fazla oku

süreklilik resmi

Her bağlantıyı kontrol ettikten sonra, dirençlerin bacaklarındaki fazla uzunluğu kesin

Güç Ekleme

Şimdi Arduino'nuzun GND pininden lehimlenmiş katot hattınızın bittiği yanındaki bir deliğe bir parça tel geçirin ve pil tutucunuzun siyah telini yanına yerleştirin.

gnd teller üst

Şimdi teli, dirençlerle yaptığımız gibi GND pimine lehimleyin ve devre için ortak bir zemin oluşturmak için her iki kabloyu katot çizgisinin sonuna lehimleyin.

Son olarak, arduino'nuzun VIN pinine bir tel takın ve anahtarınızı bu tel ve pil takımı arasına yerleştirin. Bu fotoğraftaki sıcak tutkal kaplı anahtar için özür dilerim, bu aşamayı fotoğraflamak için bitmiş makineyi sökmek zorunda kaldım!

vin değiştir

Hepsi birlikte lehimlendikten sonra, bir pil takın ve düğmeye basın. Tebrikler! Devre yapılır. Yanan bir şey görmüyorsanız, nerede bir mola veya kısa devre olabileceğini görmek için her bir lehimleme eklemini dikkatlice kontrol edin.

kuşatma

Şimdi çalıştırabildiğimize göre, bir kutuya koyalım. Burada boyalı bir karton kutu kullanıldı, ancak bir hobi mağazasında satın alınan bir kutuyu veya hatta eski bir tupperware kutusunu kullanarak daha kalıcı bir şey yapabilirsiniz. Ekstra geek kredisi için, kendiniz için 3D baskı bile yapabilirsiniz Bu ucuz 3D yazıcılardan biri. Bugün Satın Alabileceğiniz 5 Ucuz 3D YazıcıBirkaç yıl önce, en ucuz 3D yazıcılar bile $ 1,000 markasına rahatsız edici bir şekilde yakındı - şimdi 400 $ 'a kadar düşük kaliteli bir 3D yazıcı alabilirsiniz. Daha fazla oku

Protokolünüzü puanlayarak ve ihtiyacınız olmayan parçaları dikkatlice kopararak kesin.

proto gif

Devrenizi kasanızın içine yerleştirin ve LED'lerin ve anahtarın nereden geçmesi gerektiğini işaretleyin. İsteğe bağlı olarak, Arduino kartındaki USB konektörünün kenarla nerede birleştiğini de işaretleyebilirsiniz, böylece kutuyu açmadan metni değiştirmek için takabilirsiniz. Muhafazaya ihtiyacınız olan delikleri delin veya kesin.

delik açmak

Şimdi LED'lerin kenarlarına biraz sıcak tutkal ekleyin ve yerine yapıştırın. Devrenin altına bir parça sünger yapıştırdım, böylece kutuya rahatça oturdu. Anahtarınızı kasaya takın. Sıcak tutkal kullandım, ancak vidalar veya cıvatalar çok daha güçlü bir bağlantı kuracaktır. Ayrıca, pil tutucusunu devre kartının arkasına yapıştırabilirsiniz. Öğe kullanımda, ancak kasadaki metal temasların lehim bağlantılarınızın hiçbirine dokunmadığından emin olun!

ölçü anahtarı

İş Yapıldı!

Kasanızı kapatın ve işiniz bitti! Metni değiştirmek için USB kablonuzu Arduino kartına takın ve ardından parantez içindeki metni değiştirin DisplayString içinde döngü yöntem. Karanlık bir yer bulun ve eğlenin!

daha yavaş

Daha önce bir POV makinesi inşa ettiniz ve tasarımı geliştirmenin yollarını biliyor musunuz? Kendiniz bir tane inşa etmeyi mi planlıyorsunuz? Aşağıdaki yorumlarda projenizden bahsedin, duymak isteriz!

Ian Buckley, Berlin, Almanya'da yaşayan serbest bir gazeteci, müzisyen, sanatçı ve video yapımcısıdır. Yazmadığı veya sahnede olmadığı zaman, çılgın bir bilim adamı olma umuduyla DIY elektroniği veya koduyla uğraşıyor.