Arduino based LDR volume and source selection controller

It’s still under test. It requires a hard modified version of Arduino Nano with Atmega328PB to utilise all available 16bit timers. There is no more high/low range switching causing volume bumps, so the dac hardware is also modified. Power supply is fully on 5v, no 12v any more.

Work ahead I see, yes. It's good you finished your power amp so I guess this is gonna be the new time spender. Have fun.
BTW, have you ever tried an active stage (buffer or with gain) between LDR and your amp ?
 
I just received my boards and most of the parts and I look forward to building this project. As I have some changes in mind, I need more digital pins than the Nano has available. I'm thinking of migrating the code to a Mega2560 pro embedded, can anyone share any potential obstacles I might encounter. I was planning on having the mega off board and running jumpers to the Nano header.

Comments please!
 
I have a question regarding the power supply jumpers. I have jumpered the primary voltage for 110V. But I am unclear as what to do about the secondary jumpers. I used the transformer on the BOM, do I jumper it as 2x12V?

Sounds about right :) Please do test output voltage before soldering anything behind secondary, I never tested 110V variant.
 
Well I finally powered up for the first time and I have run into an issue. I first used a 20x4 LCD and every second row was solid squares, thinking it might be defective, I used a 16x2 LCD that I know is good and the first row is solid squares.

Both LCD's use the PCF8574, I've set to the address to 0x20 which should be correct for all jumpers open.

Does anyone have any ideas? What am I missing? BTW I didn't bother with the backlight for this test, I have the power jumpered.


***UPDATE*** found the problem PCF8574T chip uses 0x27 as the address***
 
Last edited:
Updated code for 20x4 LCD. Added impedance adjustment. Hold down encoder button at startup and rotate to change. Range is 5 to 50K in 5K increments. Also added pseudo HT bypass input (comment out #define INPUT_FOR_HT to disable).

New code can likely be ported to other display versions.
 

Attachments

  • VxD_LCD_4x2.zip
    18.4 KB · Views: 67
Bug fix - system would not calibrate @ 5K or > 30K due to casting problem from byte variable. Now seems to calibrate OK on all impedance selections.

Edit : @Theodosis O. if you want to try this please let me know what OLED source code version you are using and I will try to port it for you.
 

Attachments

  • VxD_LCD_4x2.zip
    18.4 KB · Views: 124
Last edited:
Bug fix - system would not calibrate @ 5K or > 30K due to casting problem from byte variable. Now seems to calibrate OK on all impedance selections.

Edit : @Theodosis O. if you want to try this please let me know what OLED source code version you are using and I will try to port it for you.

Hi Wineds,

The OLED display I have bought is one of these cheap 1.3” from ebay:

1.3" IIC I2C Serial 128x64 OLED LCD Display LCD Module Arduino AVR PIC STM32 CA | eBay

1.3" IIC I2C Serial SPI 128x64 OLED LCD Display LCD Module Arduino AVR PIC STM32

Thanks