Rotary encoder controlling digital pot for AM/FM radio

I am building my first ever home brew AM/FM radio controlled by arduino. I have a good understanding of the radio itself, but I want both the volume and the tuner controlled by rotary encoders. The volume setting and station will both be displayed on a 2-line display.

The first part I want to figure out is how to get an arduino to control the volume in a radio that would normally use a resistive pot.

The obvious way would be to use a rotary encoder and a digital pot but that seems like a lot of stuff & programming just to control volume. Is there a simpler way to do this with an encoder?

A digital pot is a huge simplification over the previous methods. That little chip has the equivalent of hundreds of super accurate resistors.

So on your radio, what is the value of the pot that controls the volume? You need an equivalent digital pot to replace it. The volume setting can be saved to arduino's EEPROM or using EEPROM on the digital pot. I did some searching. This might be a good one with two pots for stereo:

It still needs to match your existing circuit though so post your circuit. Values are log/audio.

Also found an article about a decade old. Seems like most of the problems no longer apply except for the large resistance tolerance still seems to be around:

I guess a digital pot and rotary encoder is the way to go. Thanks for the info and to answer the question, the radio uses a 10k audio taper pot.

Hello,

I don't know of a other way to do this so I'm sorry if I'm bothering anyone.
So, I am currently working on a similar project.
I have a radio where I want to replace the analog potentiometers with something digital so I can use my arduino to control the FM-station and Volume.

I have been struggling for weeks and just can't figure it out.
I hope someone can help me!

Nick

Some of the radio specs,
It runs on 3V
FM pot is 100k ohm
Volume pot is 50k ohm

https://www.onlinekabelshop.nl/nedis-portable-fm-radio-1-5w-zwart-blauw?channable=e17871.NDk4NTE&gclid=Cj0KCQjw2PP1BRCiARIsAEqv-pRDePnQ6lM3cS90QI4REpbRACsYicWIZmPQwf2_DL8n0B5h-bVempsaAv_PEALw_wcB

toasthead:
I have a radio where I want to replace the analog potentiometers with something digital so I can use my Arduino to control the FM-station and Volume.

I am fascinated by a radio which uses an analog voltage to tune.

It would seem a design toss-up between a noisy potentiometer and a noisy variable capacitor. The latter problem leads me to avoid ever purchasing another radio which does not implement digital tuning, if not digital volume control.

This last enquiry is simply a waste of time. If you want Arduino control of your tuner, you need to start with a radio module which already implements digital tuning and has the digital volume control built in to the hardware. And no, sorry, I do not know of such a one. :roll_eyes:

PickyBiker:
The obvious way would be to use a rotary encoder and a digital pot but that seems like a lot of stuff & programming just to control volume. Is there a simpler way to do this with an encoder?

Its very little code really. Its a lot of learning, but little code!

There are digipots designed for audio, with logarithmic steps, but they are always fairly coarse steps like 1dB.

You can cascade two linear taper pots for a reasonable approximation to logarithmic, and linear taper digipots
are much more numerous and available upto 1024 taps. That's likely to be useful for the tuning voltage too.

Does your FM radio have AFC? Without that, the step-wise resistance of the digital pot will still need a manual pot to adjust the correct frequency. A radio with AFC will likely adjust itself to the center of the channel.

Paul