- Gerekli malzeme
- Ses sensörünün çalışması
- Ses Sensörü Devre Şeması
- Müzikli Su Çeşmesi Devre Şeması
- Dancing Fountain için Arduino Nano'nun Programlanması
Bazı ilginç ışık efektleriyle birlikte koşulsuz olarak su serpen birkaç su çeşmesi vardır. Bu yüzden, harici müziğe tepki verebilen ve müzik ritimlerine göre su serpebilen yenilikçi bir su çeşmesi tasarlamayı dolaştım. Kulağa ilginç gelmiyor mu?
Bu Arduino Su Çeşmesinin temel fikri, mobil, iPod, PC vb. Herhangi bir harici ses kaynağından bir giriş almak, sesi örneklemek ve farklı voltaj aralıklarına ayırmak, ardından çıkışı çeşitli Röleyi açmak için kullanmaktır. Sesleri farklı voltaj aralıklarına ayırmak için ses kaynağında performans sergilemek için ilk olarak yoğunlaştırıcı mikrofon tabanlı bir ses sensörü modülü kullandık. Ardından, ses seviyesini belirli bir sınırla karşılaştırmak için voltaj op-amp'e beslenecektir. Daha yüksek voltaj aralığı, şarkının vuruşlarına ve ritimlerine göre çalışan müzikli bir su çeşmesini içeren bir AÇIK röle anahtarına karşılık gelecektir. İşte burada Arduino ve ses sensörünü kullanarak bu Müzikli Çeşmeyi inşa ediyoruz .
Gerekli malzeme
- Arduino Nano
- Ses sensörü Modülü
- 12V Röle Modülü
- DC Pompa
- LED'ler
- Bağlantı telleri
- Vero panosu veya Breadboard
Ses sensörünün çalışması
Ses sensörü modülü, ortamdan gelen harici sesi algılamak için kullanılan basit bir elektret mikrofon tabanlı elektronik karttır. LM393 güç amplifikatörüne ve bir elektret mikrofona dayanmaktadır, ayarlanan eşik sınırının ötesinde herhangi bir ses olup olmadığını tespit etmek için kullanılabilir. Modül çıkışı, sesin eşikten daha yüksek veya daha düşük olduğunu gösteren dijital bir sinyaldir.
Potansiyometre, sensör modülünün hassasiyetini ayarlamak için kullanılabilir. Ses kaynağı potansiyometre tarafından ayarlanan eşikten daha düşük / yüksek olduğunda modül çıkışı YÜKSEK / DÜŞÜK olur. Aynı ses sensörü modülü, ses seviyesinin desibel cinsinden ölçülmesi için de kullanılabilir.
Ses Sensörü Devre Şeması
Bildiğimiz gibi bir ses sensör modülünde temel giriş cihazı, ses sinyallerini elektrik sinyallerine dönüştüren mikrofondur. Ancak, ses sensörünün elektrik sinyal çıkışı büyüklük olarak çok küçük olduğundan analiz edilmesi çok zor olduğundan, onu güçlendirecek ve çıktı sinyalini Op-in ters çevirmeyen girişine besleyecek bir NPN transistör amplifikatör devresi kullandık. amp. Burada LM393 OPAMP, mikrofondan gelen elektrik sinyalini voltaj bölücü devreden gelen referans sinyali ile karşılaştıran bir karşılaştırıcı olarak kullanılır. Giriş sinyali referans sinyalden daha büyükse, OPAMP'ın çıkışı yüksek olacaktır ve bunun tersi de geçerlidir.
Çalışması hakkında daha fazla bilgi edinmek için Op-amp devreleri bölümlerini takip edebilirsiniz.
Müzikli Su Çeşmesi Devre Şeması
Yukarıdaki müzikal çeşme devre şemasında gösterildiği gibi, ses sensörüne Arduino Nano'nun 3.3V beslemesi ile güç verilir ve ses sensörü modülünün çıkış pini Nano'nun analog giriş pinine (A6) bağlanır. Analog pinlerden herhangi birini kullanabilirsiniz, ancak bunu programda değiştirdiğinizden emin olun. Röle modülü ve DC pompa, şekilde gösterildiği gibi harici bir 12VDC güç kaynağı ile çalıştırılır. Röle modülünün giriş sinyali Nano'nun dijital çıkış pini D10'a bağlanır. Aydınlatma efekti için iki farklı LED rengi seçtim ve bunları Nano'nun iki dijital çıkış pinine (D12, D11) bağladım.
Burada Pompa, Röle modülünün girişine YÜKSEK bir darbe verildiğinde, rölenin COM kontağının NO kontağına bağlanacağı ve akımın pompa boyunca akması için kapalı bir devre yolu alacak şekilde bağlanır. su akışını etkinleştirin. Aksi takdirde pompa KAPALI kalacaktır. YÜKSEK / DÜŞÜK darbeler, ses girişine bağlı olarak Arduino Nano'dan üretilir.
Devre kartının tamamını lehimledikten sonra aşağıdaki gibi görünecektir:
Burada çeşme kabı olarak plastik bir kutu ve çeşme görevi görmek için mini 5v pompa kullandık, bu pompayı daha önce yangınla mücadele robotunda kullandık:
Dancing Fountain için Arduino Nano'nun Programlanması
Bu Arduino su çeşmesi projesinin tam programı sayfanın altında verilmiştir. Ama burada daha iyi anlamak için bunu parçalar halinde açıklıyorum:
Programın ilk kısmı, programın sonraki bloklarında kullanacağımız pin numaralarını atamak için gerekli değişkenleri bildirmektir. Ardından, ses sensörü modülü için referans değeri olan bir değere sahip sabit bir REF tanımlayın. Tahsis edilen değer (700), ses sensörünün çıkış elektrik sinyalinin bayt eşdeğer değeridir.
int sensör = A6; int redled = 12; int greenled = 11; int pompa = 10; #define REF 700
Gelen boşluk kurulum fonksiyonu biz kullandık pinMode iğnelerden GİRİŞ / ÇIKIŞ veri yönünü atamak fonksiyonu. Burada sensör INPUT olarak alınır ve diğer tüm cihazlar OUTPUT olarak kullanılır.
geçersiz kurulum () { pinMode (sensör, GİRİŞ); pinMode (redled, OUTPUT); pinMode (yeşil, ÇIKIŞ); pinMode (pompa, ÇIKIŞ); }
Sonsuz içinde döngü , analogRead işlevi değişken sensör pim ve bu bilgiyi saklar analog değer girişi okunmuş olan denir sensor_value .
int sensor_value = analogRead (sensör);
Son bölümde, analog giriş sinyalini Referans değer ile karşılaştırmak için bir if-else döngüsü kullanılır. Referanstan büyükse, tüm çıkış pinlerine YÜKSEK çıkış verilir, böylece tüm LED'ler ve Pompa etkinleştirilir, aksi takdirde her şey KAPALI kalır. Burada ayrıca Rölenin AÇIK / KAPALI zamanını ayırmak için 70 Milisaniye gecikme verdik.
eğer (sensor_value> REF) { digitalWrite (yeşil, YÜKSEK); digitalWrite (redled, HIGH); digitalWrite (pompa, YÜKSEK); gecikme (70); } else { digitalWrite (yeşil, DÜŞÜK); digitalWrite (redled, DÜŞÜK); digitalWrite (pompa, DÜŞÜK); gecikme (70); }
Bu Arduino kontrollü Su Çeşmesi bu şekilde çalışır, çalışan bir video ile birlikte eksiksiz kod aşağıda verilmiştir.