Problem with MSGEQ7 and Arduino

Hi,

Following this tutorial (http://www.uduino.com/Tutorials/7) I hooked up an Uno with a MSGEQ7 display filter IC. Using his code:

int analogPin = 0; // read from multiplexer using analog input 0
int strobePin = 2; // strobe is attached to digital pin 2
int resetPin = 3; // reset is attached to digital pin 3
int spectrumValue[7]; // to hold a2d values

void setup()
{
 Serial.begin(9600);
 pinMode(analogPin, INPUT);
 pinMode(strobePin, OUTPUT);
 pinMode(resetPin, OUTPUT);
 analogReference(DEFAULT);

 digitalWrite(resetPin, LOW);
 digitalWrite(strobePin, HIGH);

 Serial.println("MSGEQ7 test by J Skoba");
}

void loop()
{
 digitalWrite(resetPin, HIGH);
 digitalWrite(resetPin, LOW);

 for (int i = 0; i < 7; i++)
 {
 digitalWrite(strobePin, LOW);
 delayMicroseconds(30); // to allow the output to settle
 spectrumValue[i] = analogRead(analogPin);

 // comment out/remove the serial stuff to go faster
 // - its just here for show
 if (spectrumValue[i] < 10)
 {
 Serial.print(" ");
 Serial.print(spectrumValue[i]);
 }
 else if (spectrumValue[i] < 100 )
 {
 Serial.print(" ");
 Serial.print(spectrumValue[i]);
 }
 else
 {
 Serial.print(" ");
 Serial.print(spectrumValue[i]);
 }

 digitalWrite(strobePin, HIGH);
 }
 Serial.println();
}

See pics for breadboarding and setup. I'm using my iPhone for audio input, and I've verified that I am using the ground and the left channel.

All I get is a repeat of the same numbers:

803 803 798 803 803 803 802 803 803 802 803 802 803 803 803 803 800 803 803 802 803 799 803 802 803 802 804 802 804 803 802 801 803 804 803 803 803 802 803 804 797 804 802 803 803 803 803 799 803 804 801 802 802 803 801 803 803 800 803 801 803 803 803 803 802 802 802 803 803 803 804 803 804 803 803 801 804 804 803 803 804 801 803 803

When I remove the wires for audio input the readout does not change. What am I doing wrong here?

What's the sound your sampling fixed tone or a song

Song, so I was hoping to see a lot of variance in the readings.

You might have blown the input to the chip. I would have suggested a 22k resistor before the capacitor on the input, to help limit the input.

I don't remember the wiring offhand to see if thaats right, but I remember when I first starting playing around with the msgeq7 the biggest problem was miswiring, aalso I couldn't tell from the pic but make sure the audio source ground is connected properly do you have an a small speaker you can connect to the audio source using the same connections? Idk how you connected to it but sometimes if you just cut the cord off eearphones that wire is enameled and maybe its not connected well enough, if you have an oscilloscope take a look at the audio while its connected as well as the output of the msgeq7 and see if it doesn't match the arduinos serial output

Also idk how much experience you have with breadboards or the specs on that one but make sure the rails are connected all the way across, I notice to get a ground from the middle of the rail and usually the rails are actually separated in groups

I have this identical problem. I'm wondering if OP found a solution.

Thanks, Dan

[quote author=James C4S date=1352760786 link=msg=993799] You might have blown the input to the chip. I would have suggested a 22k resistor before the capacitor on the input, to help limit the input. [/quote]

Input of the audio or input of the 5V? I want to do a similar project using following scematic, but there's no 22k before audio input too there and I don't want to blow my chip up:

Audio out from an iPhone is at least 1 V pk to pk. The chip input should be 100 mV. Your audio input should be AC coupled with a 10: 1 voltage divider to reduce the input to 100 mV. As noted, you're missing both of the 22k ohm resistors on the input. (one for the L , one for the R)

MSGEQ7 TUTORIAL

MSGEQ7 TUTORIAL-2

MSGEQ7 TUTORIAL-3

MSGEQ7 TOTORIAL-4

raschemmel: Audio out from an iPhone is at least 1 V pk to pk. The chip input should be 100 mV. Your audio input should be AC coupled with a 10: 1 voltage divider to reduce the input to 100 mV. As noted, you're missing both of the 22k ohm resistors on the input. (one for the L , one for the R)

Tanks for your answer, but I'm still not following completely, sorry :-[

I had already taken a look at most of the four tutorials you gave, but can't find anywhere a voltage divider on the 'audio in'. So is that 22k ohm resistor part of the voltage divider? Or is the 10:1 voltage divider something apart from that 22k resistor? And when I split up the sound with a Y-splitter first (between my speakers and my Arduino input), would that make me in need of a 5:1 divider instead of a 10:1?

EDIT: I found following scmatic of the 2 22k ohm resistors: Guess that's exactly what you were talking about. So do I still need to add a voltage divider now? And I only have 20k and 2350 ohm(2x 47k parallel) . I guess that can't be a problem?

Thanks! Bram

I would add a potentiometer with the signal input at one end, ground at the other and the wiper connected to the 22 k ohm resistors . This allows you to control the amplitude. If the pot is unnecessary, you'll find out if you have to turn it all the way up to get the chip to work and you will not risk blowing the chip. The pot would replace the 10:1 voltage divider. You can try a pot on one input only to test it. More than likely the 22 k ohm resistors are "dropping resistors" to limit the input current and the chip schematic assumes a standard LINE LEVEL signal, and the pots are not necessary. (all cell phones have headphone volume controls anyway)

Your Problem is about IC. With serial 1908 & 0251 is run, 1902 nót run.