i want to create a automatic volume control for my boat stereo. While we are pulling a rider (16mph+) the engine and wind drown out the stereo so i have to turn it up, then if the rider falls we either get blasted by loud music or i have to turn down the stereo. I decided i want to make a volume controller that will adjust the volume based on those two conditions. I'm not sure what best way to go about it though. here are my options:
gps speed based control (im pretty novice when it comes to arduino and coding so nema is a bit of a stumbling block for me)
throttle position sensor
rpm sensor
3 axis acclerometer
or a diy sensor to detect the throttle position (not interfering with the engine ecu is a plus)
Personally I think all of the approaches suggest are indirect and therefore not optimal.
I assume that the engine strains more when it is pulling a skier and so at the same RPM you get two different noise levels depending on skier or no skier.
The problem you are trying to address is noise level, not RPM or speed so measure noise using a microphone - cheap and easy.
I would suggest using something like an LM3916 to convert the microphone output to a series of digital levels.
wouldn't recording the sound level compound when increasing the volume of the stereo though?
the sound is relatively constant once the rider is pulled up out of the water. my thoughts would be to have a 'fine adjustment' knob that give a user adjustable input to dial in the max volume increase.
the gps may work with tiny gps. but i've tried a speed based switch before and have failed. i'll have to look into this some more.
wouldn't recording the sound level compound when increasing the volume of the stereo though?
True, so you can either position the mic nearer the engine/exhaust noise or [i am goimg out on a limb here] use an opamp to deduct the stereo signal from the mic input, i am sure its not as easily done as that, but its an interesting approach to look into.