Trying to read potentiometer from an audio control with Arduino

Hi,

I'm trying to read the value of the potentiometter of the audio controller of my speaker, but I'm unable to do that.

I've uploaded a simple program to the Arduino, to read on the A5 pin and print the result on the console.

void setup() {
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(A5);

  Serial.println(value);
  delay(500);
}

When I connecte the wire to one of the output of the potentiometter, it always display "0" even if I turn the potentiometter. I don't know if this is a special potentiometter or anything else, but I can't read the value of it.

I also noticed something weird, my multimeter doesn't detect any voltage from the input of it, even if I turn it, but the sound still get control by it.

The potentiometter has 6 output (see the img linked bellow)

Any suggestion? Thank you!

You can't read the pot setting but you should be able to read the audio signal...

Typically, audio signals into a volume control pot are about line level which is around 1V (AC RMS) depending on the "loudness"

You should read something as long as audio is playing.

The output can be a lot lower depending on the volume control setting.

Normal audio is AC, which is a problem because negative voltages can damage the Arduino, and/or the audio signal can be "damaged" (distorted).

Here is a bias circuit - Audio Input Schematic

It biases the input at 2.5V which means silence should read about 512 (on a regular Arduino with a 10-bit ADC) and instead of going negative the audio will go above and below that. (You can subtract-out the bias in software.)

Or here is a negative-voltage protection circuit-
Audio input 2

With the protection circuit half of the readings will be zero (the negative half of the waveform). The advantage of the protection circuit is that you can use the optional 1.1V analog reference for about 5 times as much sensitivity.

Since you are reading a waveform the readings will "look random". You'll have to find the peaks. And, take the delay out of your program. Audio signals have a frequency of hundreds or thousands of cycles-per-second and you have to read frequently to get anything useful.

Hi, @jt9090
Welcome to the forum.

Why do you want to know the position of the volume potentiometer?
To measure its resistance you need to pass a current though it and measure the volt drop, then use Ohms Law to calculate resistance.
You cannot do this with audio already passing through it.

Tom... :smiley: :+1: :coffee: :australia:

Thank you @TomGeorge !

It's for display the potential of the volume. (Ex.: if the potentiometter is turn to the max, it will display "Volume: 100%")

So, I can't retrieve the value if the potentiometer is powered by another way than the Arduino? So how can I do that?

Thanks for you response!

You can't even measure the value of the potentiometer if it is still in the original circuit. You must disconnect at least two of the three legs. I have no idea what you have there, but a normal potentiometer does not have 6 connections.
Paul

Hi,

Could be a custom dual pot for miniature application.
Ops "speaker" could be a stereo pair!!

Tom.. :smiley: :+1: :coffee: :australia:

Hi Tom,

Do you have a little idea of how I could achieve to still read the value of it? With all the info I gave you, because I'm a newbie in electronic and I really don't know how to do that tbh.

Thanks!

From the photo of the pcb underside I see the points labelled 0V and 5V both connected to the ground plane with thermal reliefs so I don't believe that "5V" legend you've added. Those two large pads are for mechanical support and grounding the shield of the pot.

Its a dual log pot directly handling analog audio signals as far as I can see.

1 Like

P.S.
In order to "read" the audio signal you need a common ground between the audio circuit and the Arduino. (And again, you do need to protect the Arduino from the negative-half of the AC audio signal.)

@jt9090

Other post/duplicate DELETED
Please do NOT cross post / duplicate as it wastes peoples time and efforts to have more than one post for a single topic.

Continued cross posting could result in a time out from the forum.

Could you also take a few moments to Learn How To Use The Forum.

Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

P.P.S
Maybe you should tell us what you are trying to accomplish...

Thank you for your response.

I'm trying to display the volume percentage as I turn the pot. (Ex.: The pot is turned at max for max volume, arduino will display: Volume 100%, if the pot is only turned at 25%, it will display: Volume 25%...).

I know I could try to get that value from the Windows sound by connecting the arduino to the computer, but the pot I'm talking about doesn't control the volume on the Windows system, but on the speaker and the sub directly, so that's why I have to retrived the value directly from the pot itself.

As @MarkT mentionned, this is a Dual-gang potentiometer and the 2 pins that I though it was the 5V and gnd input for it (see the picture from the question above), was effectivly 2 GND pins. I also observe that, the 3 first output pins was for the LEFT speaker and the 3 last output pins was for the RIGHT speaker (see the picture underneath)

But when I try to read the value with an Analog pin, lets say I connect it to on of the output, it only display a "0".

As I said too, I'm a complete newbie in electronic, so there's some terms that I don't understand and etc...

Thank you!

Did you read answer #3 which suggests you are doomed to failure. This is carrying an AC signal, but you want to read the resistance - mutually incompatible goals.

The way this would be factory-done is what is called a "ganged potentiometer" or a "stacked" deck... essentially, the audio is a log pot and the stacked one would be a linear pot, maybe 10K - 50K ...

The linear pot would have a constant voltage across the element and the wiper would result in a linear voltage relative to the position of the shaft. The wiper would easily be interfaced to an Arduino.

But, you are pretty much at the mercy of your ability to locate and stack a low-profile potentiometer and "merge" the two shafts. This appears to me to be a lots of effort, but with 3D printing and some luck sourcing parts, it may be "do-able."

Screenshot from 2021-11-22 11-18-05