Selbstgebautes VU-Meter - AZ-Delivery

Motriz:

 

Hola, bienvenidos a un nuevo, emocionante blog.Hoy entramos en un mundo de baja frecuencia y creamos nuestra propia matriz de vu.Para quienes ya no conocen el equipo de medición del decenio de 1980, el instrumento Vu (que representa la unidad de sonido de la terminología inglesa, es decir, la "unidad de volumen") es el instrumento de salida, es decir, el instrumento de medición utilizado para evaluar la intensidad de la señal en las técnicas de sonido.La intensidad de la señal de entrada de la señal de audio se mide por su equivalencia eléctrica.

Necesitamos comprar en la tienda las siguientes piezas de equipo para la fabricación de los medidores de Vu:


Para medir la señal de audio con Ardino, primero tenemos que hacer algunas consideraciones preliminares.En primer lugar, la señal de audio es un voltaje aleatorio que gira alrededor de cero dentro de la kHz.Por consiguiente, no hay entrada digital que permita medir la señal.Entrada simulada Nuestro, nuestras Los microcontroladores utilizados para medir las señales musicales de baja frecuencia sólo se aplican cuando no hay sonido externo, ya que sólo pueden medir el voltaje positivo en un intervalo de 0 a 5 voltios con una resolución de 10 bits.Para ilustrar esto de manera gráfica, he mostrado las siguientes vibraciones de sonido NF registradas con monitores, como se aplica también a los altavoces.

Conexión: señal NF en la entrada del altavoz, sin filtrar

Conexión: señal NF en la entrada del altavoz, sin filtrar

 

Por lo tanto, en la primera etapa, utilizamos un pequeño circuito externo de condensadores de resistencia eléctrica para preparar nuestra señal musical analógica NF, de modo que se eleva a un rango positivo de 2,5 voltios.Por consiguiente, se evitan los márgenes de cero a negativo:

 

Conexión: la misma señal de NF y desviación directa.Conexión: la misma señal de NF y desviación directa.

 

 

Las dos resistencias eléctricas de 10.000 euros que estamos haciendo se encontrarán en la hoja de circuitos y en un condensador de 10.000 uf63 voltios con un cátodo que nos muestra microcontroles. Ahora estamos construyendo el instrumento vu de la siguiente manera:

 

Dispositivo de construcción de instrumentos

 

Importante adj. Reciben el panel 64 - led su fuente de energía a través del módulo mb102, y Nada. En las operaciones de Ardino Nano, el panel de la parte superior de u64 LED consume hasta 2,5 a.Si Ardino suministrara esa fuente de energía, el voltaje se derrumbaría inevitablemente por separado.Dañó el regulador de voltaje de nano.El tamaño de la fuente de energía también debe seleccionarse en consecuencia.

 

35; incluye <Almendras nuevas.Hora>

¿Qué enchufe de Ardino está conectado a Neo pixels?
En el caso de las baratijas o piedras preciosas, proponemos que su texto sea el siguiente:
- definición. Pie LED.     13
¿Cuántos neopix hay en Ardino?
- definición. Cuenta LED  64

/ / brillo neopixel, 0 (mínimo) a 255 (máximo)
- definición. Luminosidad 100

Declaramos nuestro objetivo de neopixel Strip:
Almendras nuevas Banda(Cuenta LED, Pie LED., Nuevo grupo + Nueva khz800);
/ / Parámetro 1 = número de píxeles en los nuevos píxeles
/ / Parámetro 2 = pie del tubo Ardino (válido en su mayoría)
/ / Parámetro 3 = indicador de tipo pixel, sumando según sea necesario:
/ / neo khz800 kHz bitcorriente (puente de productos neopxel con ws2812 LED)
/ / neo khz400 400 kHz (clásico V1 (no V2) Flora pixel, ws2811 controlador)
/ / NEO / GRB pixeles para GRB bit Flow (la mayoría de los productos neopixel)
Los pixeles de NEO / RGB se utilizan en la corriente lgb bitcoins (V1 Floria, no V2)
Los pixeles de NEO / gbw se utilizan en la circulación de bitcoins del gbw (productos neopxel del gbw)

- definición. Izquierda de analogía Artículo A5 Canal izquierdo, conecte el conector analógico A5

Interior Valor izquierdo = 0;  / / / variable para almacenar los valores leídos desde la izquierda del canal
Interior Esquina inferior izquierda = 0;   / / 0 ki

Nulidad Configuración()
{   Banda.Iniciar();           Cinta de neopixel (necesaria)   Banda.Mostrar();            Cerrar para acelerar píxeles   Banda.Frustración.(Luminosidad); Establecer una luminosidad de aproximadamente 1 / 5 (valor máximo = 255)   Esquina inferior izquierda = Simulación(Izquierda de analogía);   Esquina inferior izquierda += Simulación(Izquierda de analogía);   Esquina inferior izquierda += Simulación(Izquierda de analogía);   Esquina inferior izquierda += Simulación(Izquierda de analogía);   Esquina inferior izquierda = Esquina inferior izquierda / 4;   Limpiar color(Banda.Color(255, 0, 0), 5); - Rojo.   Limpiar color(Banda.Color(255, 255, 0), 5); / / / amarillo   Limpiar color(Banda.Color(0, 255, 0), 5); / / verde   Arco Iris 2 blanco(1, 1, 1);
}

Nulidad Correr()
{   U - U - M - izquierda.(64, 100);   Retraso(40);
}

Nulidad U - U - M - izquierda.(Intercambio Nivel máximo de píxeles, Interior Sensibilidad)
{   Interior Valor izquierdo = 0;   Valor izquierdo = Simulación(Izquierda de analogía);  Leer entrada de entrada   Valor izquierdo += Simulación(Izquierda de analogía);  Leer entrada de entrada   Valor izquierdo += Simulación(Izquierda de analogía);  Leer entrada de entrada   Valor izquierdo += Simulación(Izquierda de analogía);  Leer entrada de entrada   Valor izquierdo = Valor izquierdo / 4;   Interior Intensidad de señal = Valor izquierdo - Esquina inferior izquierda;   Si (Intensidad de señal < 0) {     Intensidad de señal = - Intensidad de señal;   }   Intercambio Hielo vu =  Carpeta(Intensidad de señal, 0, Sensibilidad , 0, Nivel máximo de píxeles);   Para (Interior Yo = 0; Yo < Nivel máximo de píxeles; Yo++) {     Banda.Ajustar píxeles(Yo, 0, 0, 0);  Limpiar el color de los pixeles (en Ram)   }   Para (Interior Yo = 0; Yo < Hielo vu; Yo++) { Para cada pixel de la cinta...     UIT 32 ¡Oh! = Carpeta(Yo, Nivel máximo de píxeles - 1, 0, 0, 21800);     UIT 32 Color RGB = Banda.Color(¡Oh!, 255, Luminosidad); Conversación con la lgb.     Banda.Ajustar píxeles(Yo, Color RGB);         Establecer el color de los pixeles (en Ram)   }   Banda.Mostrar();   Actualizar la cinta para hacer coincidencias
}

Nulidad Limpiar color(UIT 32 Color, Interior Esperar) {   Para (Interior Yo = 0; Yo < Banda.Píxeles nucleares(); Yo++) { Para cada pixel de la cinta...     Banda.Ajustar píxeles(Yo, Color);         Establecer el color de los pixeles (en Ram)     Banda.Mostrar();                          Actualizar la cinta para hacer coincidencias     Retraso(Esperar);                           Detente.   }
}

Nulidad Arco Iris 2 blanco(Interior Esperar, Interior Llueve., Interior Anillos) {   Interior Decoloración = 0, Fardmark. = 100;   El primer tono de pixeles corre a través del color el ciclo completo de rainbowloops.   - ruedas.El alcance de la rueda es de 65.536, pero si se voltea, entonces...   / / / de 0 a 65.536 en la cuenca de lluvia, con 256 pasos.   Da la vuelta al volante a la velocidad adecuada.   Para (UIT 32 Píxeles primero = 0; Píxeles primero < Llueve. * 65536;        Píxeles primero += 256) {     Para (Interior Yo = 0; Yo < Banda.Píxeles nucleares(); Yo++) { Para cada pixel de la cinta...       Desplazar la pigmentación de píxeles a una cantidad que permita       Turbina de color a lo largo de la longitud del acero (gama 65.536)       / (strip.numpixels () Medidas):       UIT 32 Pigmentos de pixel = Píxeles primero + (Yo * 65.536 litros. / Banda.Píxeles nucleares());       / / strip.colorhsv () es aceptable uno o tres parámetros: tono (0 a 65.535) o       Añadir opcionalmente valores de saturación (luminosidad) (de 0 a 255 cada uno).       Aquí sólo usamos la variable triple, aunque...       El segundo valor (saturación) es la constante 255.       Banda.Ajustar píxeles(Yo, Banda.Gamma 32(Banda.Color(Pigmentos de pixel, 255,                                            255 * Decoloración / Fardmark.)));     }     Banda.Mostrar();     Retraso(Esperar);     Si (Píxeles primero < 65536) {                             El primer ciclo,       Si (Decoloración < Fardmark.) Decoloración++;                      - fundido.     } Hora prevista de despegue Si (Píxeles primero >= ((Llueve. - 1) * 65536)) { El último ciclo.       Si (Decoloración > 0) Decoloración--;                            - Cálmate.     } Hora prevista de despegue {       Decoloración = Fardmark.; Ciclos intermedios para asegurar el máximo nivel de entrada     }   }   Para (Interior Categoría C = 0; Categoría C < Anillos; Categoría C++) {     Para (Interior Tipo j = 0; Tipo j < 256; Tipo j++) { Añádase 0 a 255.       Rellenar toda la banda blanca en "J" del nivel de brillo de Corrección gamma:       Banda.Llenar(Banda.Color(0, 0, 0, Banda.Juego 8(Tipo j)));       Banda.Mostrar();     }     Para (Interior Tipo j = 255; Tipo j >= 0; Tipo j--) { Inclina 255 a cero.       Banda.Llenar(Banda.Color(0, 0, 0, Banda.Juego 8(Tipo j)));       Banda.Mostrar();     }   }
}

 

 

Ahora podemos conectar una señal de simulación NF del altavoz al altavoz.El nivel de entrada de línea no es suficiente para operar la tabla vu.Por consiguiente, la entrada de audio se conecta directamente a la salida de la fuente de audio (máximo 30 W).


En las dos siguientes partes de esta serie, construiremos un segundo canal para que también se pueda utilizar el instrumento Vu para mostrar las señales estereoscópicas y añadir algunas características, como:Aumentar la sensibilidad y la luminosidad.
Escribe tu pregunta o deseo en el comentario como siempre.

Le deseo mucha suerte antes de reconstruir el formulario vu y la próxima vez.

Für arduinoProjekte für fortgeschrittene

8 comentarios

Tobias

Tobias

Hallo Nils,
Du liegst richtig, die virtuelle Nullinie wird zum Startzeitpunkt des Arduinos eingelesen. Zu diesem Zeitpunkt sollte demnach noch kein Signal anliegen, da diese sonst ggf. verfälscht werden könnte. Dies ist nötig, da die Toleranzen der Bauteile selbst bei nur 1% Abweichung dazu führen könnten, das nach dem Start die eine oder andere VU Led dauerhaft leuchtet. Dies sieht sehr unschön aus. Daher diese Lösung der virtuellen Nullinie. Man könnte aber auch alternativ einmalig die Nullinie beim ersten Start einlesen, und ins EEPRom schreiben, wenn einen das stört.

Tobias

Tobias

Hallo Heiko,

Eine berechtigter Punkt. Jedoch steckt bei der Wahl der MB102 Breadboard Spannungsversorgung die Überlegung dahinter, das das VU Meter zunächst als auf dem Breadboard als TEST aufgebaut wird und später im festen Dauerbetrieb noch mal neu dauerhaft auf eine Platine gelötet wird. Für den festen und gelöteten Einsatz als Modul sollte dann passend dimensioniertes externes 5 Volt-Netzteil verwendet werden. Die MB102 Breadboard Spannungsversorgung ist, wie der Name schon vermuten lässt für den Breadboardeinsatz konzipiert.
Dennoch reicht die MB102 Breadboard Spannungsversorgung für den ersten Aufbau und Test der hier vorgestellten Schaltung aus, denn die 2,5 Ampere beziehen sich auf eine Helligkeitsaussteuerung von 100 % und eine Aussteuerung der LED’s von 100%. Bei dem og. Aufbau ist jedoch die Helligkeit der LED’s auf 39% der maximalen Helligkeit beschränkt, was den Stromverbrauch entsprechend reduziert. 39% von 2,5 A = 0,97 A bei Vollaussteuerung. Im mittleren Betrieb sollen darüber hinaus nur 50% der LED’s aktiv sein, d.h 0,97 A / 2 = 0,48 A. Somit unter den 0,7 Ampere des Moduls.
Zum testen der Schaltung also ausreichend. Im Festbetrieb sollte das Modul, wie du schon schreibst, durch ein normales Netzteil ersetzt werden.
Viele Grüße
Tobias

niko_at

niko_at

Meiner Meinung nach ist der Elko falsch gepolt, d.h. Kathode (Minus) muss an die Lautsprecherbuchse. And der LS-Buchse haben wir im Mittel 0V und am Mikrocontroller (Widerstandsteiler 2x 10kOhm) haben wir U/2 => +2,5V

Zudem fehlen Schutzdioden, dass am Mikrocontroller Eingang nicht Spannungen weit über Ub (5V) und nicht weit unter 0V gehen können!
Z.B: Mikrocontrollereingang über 10 kOhm (ggf. auch kleiner) und 2 Dioden (1N4148) jeweils in Sperrichtung gegen V und 0V. So kann die SPannung max. 0,7V üver V+ und 0,7V unter 0V gehen.

Nils

Nils

Moin,
cooles Projekt! Verstehe ich das richtig, dass im Setup der Base_Left eingelesen wird, um das virtuelle Null-Niveau (Nulllinie) zu ermitteln. Das funktioniert aber nur richtig, wenn beim Einschalten noch kein Audio Signal am Analog-Pin anliegt. Alternativ könnte man 2 1% Widerstände zum Teilen der Spannung nehmen und dann die Nullinie einfach mit 2.5V (also 512) definieren.
Eingangsspannungen kleiner 0V oder größer 5V am analogen Pin werden nicht richtig gemessen, können eventuell den Arduino sogar beschädigen? Vielleicht mit 2 Dioden das Signal auf GND und +5V klemmen?

Dirk

Dirk

Hi, cooles Projekt, da ich im Moment ein VU Meter suche.
Kann man die LED Module hintereinanderschalten? Ich stelle mir vor, 3 Module zu nehmen.
Oder gleich eine komplette LED Matrix 64×32.
Ein Modul mit den 8 LED’s sind zu wenig Auflösung.
Und natürlich muss das mit den Line IN/OUT Signalen funktionieren.
Mann sollte das VU Meter auch kalibrieren können.
Am Lautsprecherausgang macht es für mich keinen Sinn, da sich da die Laustärke ständig ändert.
Danke und Grüße

Heiko Schütz

Heiko Schütz

Frage: Im Beitrag steht, dass “im Betrieb bis zu 2,5 A durch den U64-LED Panel in der Spitze verbraucht werden”. Laut Datenblatt ist die MB102-Spannungsversorgung bis 700 mA ausgelegt. Hält die Spannungsversorgung diese Spitzen von 2,5 A ohne Schaden zu nehmen aus – das ist ja keine Dauerbelastung? Oder wäre es nicht besser (sicherer), gleich ein passend dimensioniertes externes 5 Volt-Netzteil zu verwenden (wie man es z.B. auch zum Betrieb von längeren Neopixel-Streifen benötigt)?

(Datenblatt: https://cdn.shopify.com/s/files/1/1509/1638/files/MB102_Breadboard_Kit_Datenblatt.pdf)

Gerrit

Gerrit

Es wäre schön das VU-Meter einmal in einem kurzen Video im Betrieb zu sehen, um entscheiden zu können ob sich der Nachbau für einen persönlich lohnt.

Gerhard Langner

Gerhard Langner

Hallo. Nicht neu aber cooles projekt. Ich denke eine leicht abgeänderte Vorschaltung wäre auch für die leute wie mich interesant die sowas lieber im linepegel haben möchten.

Deja un comentario

Todos los comentarios son moderados antes de ser publicados