Cómo dar entrada al microcontrolador desde un conector estéreo de 3.5 mm

3

Necesito conectar un conector estéreo de 3.5 mm al microcontrolador atmega8, y encender un led si se reproduce música en el dispositivo estéreo. ¿Alguien podría decirme cómo conectar el conector de 3.5 mm al microcontrolador?

No tengo ninguna idea sobre electrónica. Así que cualquier ayuda en el circuito será apreciada.

    
pregunta inventive

2 respuestas

5

Aquí hay un video de exactamente lo que quieres (creo) Tutorial de Arduino: Medidor de audio a través de audífonos

Si solo quieres saber cuándo hay sonido, no procesarlo realmente, entonces todo lo que necesitas hacer es usar un pin ADC.

ADC es solo un convertidor de analógico a digital, puede obtener más información sobre eso aquí . Las resistencias en la imagen de abajo se usan como un divisor de voltaje para evitar que > 5volts lleguen a la MCU. Es posible que no los necesite en absoluto, ya que de acuerdo con esto el voltaje no debería ser tan alto.

Puedes conectarlo de esta manera, excepto que el voltaje de entrada sería el cable estéreo + y tierra (si es estéreo, tendrás una izquierda + y una derecha +, puedes conectarlos si no te importa el Si le importa el sonido, use un pin para la izquierda y otro para la derecha.)

Aquíhayunenlaceatodalaconfiguración: enlace

    
respondido por el Garrett Fogerlie
2

Ya que no tienes una idea electrónica, esto puede ser excesivo. Solo use un chip LM3915 simple para un medidor VU más fácil.

Aquí hay un código simple para un medidor VU arduino. Puede usar cualquier cantidad de LED, simplemente recorte el código (lastLED)

int sound[4];
int soundav;
const int inputPIN =8; //audio input pin, gnd other end of 3.5mm jack
const int firstLED= 34; //first output pin for leds
const int lastLED = 53; //last output pin for leds
int leds;
int x;
int y;

void setup ()
{
pinMode (inputPIN, INPUT); // put input pin in input state
for (int a=firstLED; a <=lastLED; a++){ // loop output state
pinMode(a, OUTPUT);
}
leds = (firstLED + lastLED) +1; //total leds + 1 for off
}

void loop ()
{
for (int num=0; num < 4; num++) {
sound[num]= analogRead (inputPIN);
if(num==3) {
soundav=(sound[0]+sound[1]+sound[2]+sound[3])/4; // average level
x = map(soundav, 1, 255, 0,leds); // 0 to 20 sound levels
y = firstLED + x; //correct pin required
for (int b= firstLED; b < y; b++) { //loops all leds from firstLED to sound level
digitalWrite(b,HIGH);ll
}
for (int c = y; c <= lastLED ; c++) { //loops all leds from lastLED to sound level
digitalWrite(c,LOW);
}

Buena suerte.

    
respondido por el Ranger1

Lea otras preguntas en las etiquetas