Spisu treści:

Tańcząca fontanna: Arduino z analizatorem widma MSGEQ7: 8 kroków
Tańcząca fontanna: Arduino z analizatorem widma MSGEQ7: 8 kroków

Wideo: Tańcząca fontanna: Arduino z analizatorem widma MSGEQ7: 8 kroków

Wideo: Tańcząca fontanna: Arduino z analizatorem widma MSGEQ7: 8 kroków
Wideo: Fontanna dynamiczna zmienna z programem muzycznym - zestaw 2024, Listopad
Anonim
Tańcząca fontanna: Arduino z analizatorem widma MSGEQ7
Tańcząca fontanna: Arduino z analizatorem widma MSGEQ7

Bardzo ciekawy jest odbiór sygnału audio i zamiana go na reakcję wizualną lub mechaniczną. W tym projekcie użyjemy Arduino Mega podłączonego do analizatora widma MSGEQ7, który pobiera wejściowy sygnał audio i wykonuje na nim filtrowanie pasmowoprzepustowe, aby podzielić go na 7 głównych pasm częstotliwości. Arduino przeanalizuje następnie sygnał analogowy z każdego pasma częstotliwości i stworzy akcję.

Krok 1: Cele Projektu

W tym projekcie omówione zostaną 3 tryby działania:

  1. Diody LED są podłączone do cyfrowych pinów PWM, aby reagować na pasma częstotliwości;
  2. Diody LED są podłączone do pinów cyfrowych, aby reagować na pasma częstotliwości;
  3. Pompy są połączone z Arduino Mega poprzez sterowniki silników i reagują na pasma częstotliwości

Krok 2: Teoria

Teoria
Teoria
Teoria
Teoria

Jeśli mówimy o IC analizatora widma MSGEQ7, możemy powiedzieć, że ma on wewnętrzne 7 filtrów pasmowoprzepustowych, które dzielą wejściowy sygnał audio na 7 głównych pasm: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz i 16 kHz.

Wyjście każdego filtra jest wybierane jako wyjście układu scalonego za pomocą multipleksera. Ten multiplekser posiada linie selektorów sterowane przez wewnętrzny licznik binarny. Możemy więc powiedzieć, że licznik powinien liczyć od 0 do 6 (od 000 do 110 binarnie), aby umożliwić przejście jednego pasma na raz. To wyjaśnia, że kod Arduino powinien być w stanie zresetować licznik, gdy osiągnie liczbę 7.

Jeśli spojrzymy na schemat obwodu MSGEQ7, zobaczymy, że używamy tunera częstotliwości RC do sterowania wewnętrznym zegarem oscylatora. następnie używamy filtrujących elementów RC na wejściu sygnału audio.

Krok 3: Procedury

Procedury
Procedury

Zgodnie ze stroną źródłową (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) widzimy, że kod źródłowy traktuje wyjścia jako powtarzalne sygnały PWM. możemy zmienić niektóre wiersze kodu, aby pasowały do naszych celów.

Możemy zauważyć, że jeśli mamy gniazdo stereo, możemy podwoić rezystor wejściowy i kondensator do drugiego kanału. MSGEQ7 zasilamy z Arduino VCC (5 V) i GND. MSGEQ7 podłączymy do płytki Arduino. Wolę używać Arduino Mega, ponieważ ma odpowiednie do projektu piny PWM. Wyjście układu MSGEQ7 IC jest podłączone do pinu analogowego A0, STROBE jest podłączony do pinu 2 Arduino Mega, a RESET jest podłączony do pinu 3.

Krok 4: Tryby działania: 1- diody LED jako wyjścia cyfrowe PWM

Tryby pracy: 1- diody LED jako wyjścia cyfrowe PWM
Tryby pracy: 1- diody LED jako wyjścia cyfrowe PWM

Zgodnie z kodem źródłowym możemy podłączyć wyjściowe diody LED do pinów od 4 do 10

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

Wtedy możemy zauważyć, że diody LED tańczą z siłą każdego pasma częstotliwości.

Krok 5: Tryby działania: 2- diody LED jako wyjścia cyfrowe

Image
Image
Tryby pracy: 3-pompy jako wyjścia cyfrowe
Tryby pracy: 3-pompy jako wyjścia cyfrowe

Diody wyjściowe możemy podłączyć do dowolnych pinów cyfrowych.

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

Następnie możemy zauważyć, że diody LED migają zgodnie z siłą każdego pasma częstotliwości.

Krok 6: Tryby działania: 3-pompy jako wyjścia cyfrowe

Tryby pracy: 3-pompy jako wyjścia cyfrowe
Tryby pracy: 3-pompy jako wyjścia cyfrowe

W tym ostatnim trybie podłączymy moduł sterownika silnika L298N do wyjść Arduino. umożliwia nam to sterowanie pracą pompy w oparciu o dane wyjściowe analizatora widma MSGEQ7.

Jak wiadomo, sterowniki silników umożliwiają nam sterowanie pracą podłączonych silników lub pomp na podstawie sygnału generowanego z Arduino bez pobierania prądu z Arduino, zamiast tego zasilają silniki bezpośrednio z podłączonego źródła zasilania.

Jeśli uruchomimy kod jako surowe źródło, pompy mogą nie działać prawidłowo. Dzieje się tak, ponieważ sygnał PWM jest niski i nie będzie odpowiedni dla sterownika silnika do uruchamiania silników lub pomp i dostarczania odpowiedniego prądu. Dlatego zalecam zwiększenie wartości PWM poprzez pomnożenie odczytów analogowych z A0 przez współczynnik większy niż 1,3. Dzięki temu mapowanie jest odpowiednie dla sterownika silnika. Polecam 1,4 do 1,6. Możemy również zmienić PWM na 50 do 255, aby mieć pewność, że wartość PWM będzie odpowiednia.

Możemy połączyć diody LED razem z wyjściami dla sterowników silników, ale diody nie będą migać w dobrze widoczny sposób, jak wcześniej, ponieważ zostały zwiększone wartości PWM. Sugeruję więc, aby były podłączone do cyfrowych pinów od 40 do 52.

Krok 7: Kontakty

Cieszę się, że słyszę od ciebie informacje zwrotne. Nie wahaj się dołączyć do moich kanałów na:

YouTube:

Instagram: @simplydigital010

Twitter: @simply01Digital

Zalecana: