Smoothing PWM output

I was waiting until I got an arduino to do any further investigation into the calibration - this looks like it will be another 3-4 weeks, I think (I wanted to order the large 20*4 LCD & controller from NKCelectronics but they won't be in stock 'til then). So like you, Aero, I'm in information gathering stage at the moment.

The idea is that an LDR is used on each audio channel (2 or more) and it's resistive element takes the place of a potentiometer for vol control. Why? Because these LDRs have very low distortion. The idea is to vary the LED current to vary the vol.

The ideal curve of R versus I is given by the control Law for these NSL-32SR2 devices: R= K1/(I*K2) where K1=2000, K2=1.6 (this is taken from: http://www1.silonex.com/audiohm/constants.html)

The problem is that these devices have wide manufacturing tolerances (even the sorted ones NSL-32SR2) & matching them along the curve is necessary for ensuring the same volume on each channel for a particular vol setting. (AFAIK, multichannel use has been avoided due to the difficulty of the matching between devices)

So I figured to use the Arduino to calibrate each LDR. There are two possibilities for LDR calibration

  • doing it out of the main vol control operational circuit
  • doing it in-circuit while temporarily connecting it the calibration circuit

The first would be simpler than the second option & I can't see any downsides to doing it this way at the moment.

Here's where some group thinking could help:

  • What we want to achieve is that for a particular volume setting each LDR would be giving the same resistance (ie volume). This requires that each LDR's LED will be fed a slightly different current given by the offset stored during the calibration stage.

Two things needed:

  • a circuit by which the arduino can accurately sense the resistance of the LDR
  • a program which will cycle through each vol setting(?) and adjust the LED current (PWM?)until the ideal resistance of the LDR is reached.
  • all current settings stored for all volume settings for all LDRs in an array which would be looked-up & used during operation.

Advantages to all this rigmarole:

  • a very high quality potentiometer is realised cheaply by using unmatched LDRs (the sorted ones are expensive & still need a batch for matching = expensive)
  • this will be combined with an arduino preamp that I had intended to do also which will use LDRs for source selesction
  • possibility to do balanced vol control or multichannel vol control
  • recalibration at any stage i.e over the lifetime of the equipment

All comments & suggestions welcome