İçindekiler:

Dans Eden Çeşme: MSGEQ7 Spektrum Analizörlü Arduino: 8 Adım
Dans Eden Çeşme: MSGEQ7 Spektrum Analizörlü Arduino: 8 Adım

Video: Dans Eden Çeşme: MSGEQ7 Spektrum Analizörlü Arduino: 8 Adım

Video: Dans Eden Çeşme: MSGEQ7 Spektrum Analizörlü Arduino: 8 Adım
Video: Dans Eden Çeşme - iman ile arapça öğren - Yeni Sözcükler 2024, Temmuz
Anonim
Dans Eden Çeşme: MSGEQ7 Spektrum Analizörlü Arduino
Dans Eden Çeşme: MSGEQ7 Spektrum Analizörlü Arduino

Bir ses sinyalinin alınması ve onu görsel veya mekanik tepkiye dönüştürmesi çok ilginçtir. Bu projede, giriş ses sinyalini alan ve 7 ana frekans bandına bölmek için bant geçiş filtrelemesi yapan bir spektrum analizörü MSGEQ7'ye bağlanmak için bir Arduino Mega kullanacağız. Arduino daha sonra her bir frekans bandının analog sinyalini analiz edecek ve bir eylem yaratacaktır.

Adım 1: Projenin Amaçları

Bu proje 3 çalışma modunu tartışacaktır:

  1. LED'ler, frekans bantlarına tepki vermek için PWM dijital pinlerine bağlanır
  2. LED'ler, frekans bantlarına tepki vermek için dijital pinlere bağlanır
  3. Pompalar, Motor sürücüleri aracılığıyla Arduino Mega'ya bağlanır ve frekans bantlarına tepki verir.

2. Adım: Teori

teori
teori
teori
teori

MSGEQ7 Spectrum Analyzer IC'den bahsedersek, giriş ses sinyalini 7 ana banda bölen dahili 7 bant geçiren filtrelere sahip olduğunu söyleyebiliriz: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2.5 kHz, 6.25 kHz ve 16 kHz.

Her filtrenin çıkışı, bir çoklayıcı kullanılarak IC'nin çıkışı olarak seçilir. Bu çoklayıcı, dahili bir ikili sayaç tarafından kontrol edilen seçici hatlara sahiptir. Dolayısıyla, bir seferde bir bandın geçmesine izin vermek için sayacın 0'dan 6'ya (ikili olarak 000'den 110'a) sayması gerektiğini söyleyebiliriz. Bu, Arduino kodunun sayı 7'ye ulaştığında sayacı sıfırlayabilmesi gerektiğini açıkça ortaya koyuyor.

MSGEQ7'nin devre şemasına bakarsak, osilatörün dahili saatini kontrol etmek için RC frekans tuner kullandığımızı görebiliriz. daha sonra giriş ses sinyali bağlantı noktasında filtreleme RC öğelerini kullanırız.

Adım 3: Prosedürler

prosedürler
prosedürler

Kaynak sayfasına göre (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) kaynak kodunun çıkışları tekrar eden PWM sinyalleri olarak ele aldığını görebiliriz. bazı kod satırlarını hedeflerimize uyacak şekilde değiştirebiliriz.

Bir stereo jakımız varsa, giriş direncini ve kapasitörü ikinci kanala ikiye katlayabileceğimizi fark edebiliriz. MSGEQ7'ye Arduino VCC (5 volt) ve GND'den güç veriyoruz. MSGEQ7'yi Arduino kartına bağlayacağız. Projeye uygun PWM pinleri olduğu için Arduino Mega kullanmayı tercih ediyorum. MSGEQ7 IC'nin çıkışı analog pin A0'a bağlanır, STROBE Arduino Mega'nın pin 2'sine ve RESET pin 3'e bağlanır.

Adım 4: Çalışma Modları: 1- PWM Dijital Çıkış Olarak LED'ler

Çalışma Modları: 1- PWM Dijital Çıkış Olarak LED'ler
Çalışma Modları: 1- PWM Dijital Çıkış Olarak LED'ler

Kaynak koduna göre çıkış LED'lerini 4'ten 10'a kadar olan pinlere bağlayabiliriz.

const int LED_pins[7] ={4, 5, 6, 7, 8, 9, 10};

Ardından, LED'lerin her bir frekans bandının gücüne göre dans ettiğini görebiliriz.

Adım 5: Çalışma Modları: 2- Dijital Çıkış Olarak LED'ler

Image
Image
Çalışma Modları: 3- Dijital Çıkışlı Pompalar
Çalışma Modları: 3- Dijital Çıkışlı Pompalar

Çıkış LED'lerini herhangi bir dijital pin'e bağlayabiliriz.

const int LED_pins[7] ={40, 42, 44, 46, 48, 50, 52};

Ardından, her bir frekans bandının gücü üzerine LED'lerin yanıp söndüğünü görebiliriz.

Adım 6: Çalışma Modları: 3- Dijital Çıkış Olarak Pompalar

Çalışma Modları: 3- Dijital Çıkışlı Pompalar
Çalışma Modları: 3- Dijital Çıkışlı Pompalar

Bu son modda L298N motor sürücü modülünü Arduino'nun çıkışlarına bağlayacağız. bu, MSGEQ7 spektrum analizörünün çıkışına dayalı olarak pompanın çalışmasını kontrol etmemizi sağlar.

Bilindiği gibi motor sürücüleri, Arduino'dan herhangi bir akım kesmeden, Arduino'dan üretilen sinyale göre bağlı motorların veya pompaların çalışmasını kontrol etmemizi sağlar, bunun yerine motorları doğrudan bağlı güç kaynağından beslerler.

Kodu ham kaynak olarak çalıştırırsak pompalar düzgün çalışmayabilir. Bunun nedeni, PWM sinyalinin düşük olması ve motor sürücüsünün motorları veya pompaları çalıştırması ve uygun bir akım vermesi için uygun olmayacağıdır. Bu yüzden A0'dan gelen analog okumaları 1.3'ten büyük faktörle çarparak PWM değerini arttırmanızı tavsiye ederim. Bu, haritalamanın motor sürücüsü için uygun olmasına yardımcı olur. 1.4'ten 1.6'ya kadar tavsiye ederim. Ayrıca PWM değerinin uygun olacağından emin olmak için PWM'yi 50 ila 255 olacak şekilde yeniden eşleyebiliriz.

LED'leri motor sürücüleri için çıkışlarla birlikte bağlayabiliriz, ancak PWM değerleri artırıldığından LED'ler eskisi gibi iyi bir şekilde görünecek şekilde yanıp sönmeyecektir. Bu yüzden onları 40 ile 52 arasındaki dijital pinlere bağlı tutmanızı öneririm.

7. Adım: Kişiler

Sizden gelen geri bildirimleri duyduğuma çok sevindim. Lütfen kanallarıma katılmaktan çekinmeyin:

YouTube:

Instagram: @simplydigital010

Twitter: @simply01Digital

Önerilen: