Hi!
I need some help for solving a problem i'm having, if it is even possible to solve this with an arduino.
I have a scooter dashboard with a temperature gauge which has one input pin that moves the gauge according to a low frequency square wave i send to it.
On the other side, the temperature probe in the engine is a ntc thermistor with a value of 2.25k ohms @ 20 degrees celsius and 108 ohms at 90 degrees. (These are the only values given in the manual)
After some fiddling with the gauge cluster and a function generator i've managed to figure out the frequencies that correspond to the gauge temperature readings:
20deg = 15Hz
40deg = 20Hz
60deg = 25Hz
80deg = 35Hz
90deg = 45Hz (eyeballed this one as 90deg is not marked on the cluster)
100deg = 60 Hz
120deg = 110Hz
Changing the amplitude or the duty cycle does nothing, But i found that the gauge works the smoothest at 50% duty cycle.
The lowest frequency the gauge registers is 14.65Hz, any lower it just maxes out the readout (the same happens if no signal is sent, i.e. sensor missing)
Using an online ntc calculator i got the approximate resistances for each temperature reading, as follows:
20deg = 2.25k ohm
40deg = 826 ohm
60deg = 342 ohm
80deg = 156 ohm
90deg = 108 ohm
100deg = 77 ohm
120deg = 41 ohm
I have also tried (and failed) making a board with a 555, but did not manage to get the required freq range for it to work properly.
My question now is, can the arduino do such low frequencies? As i've seen people use the tone library for generation, but the lowest that goes is around 30Hz.
Also would it be possible for the arduino to read the ntc's resistance and change the frequency accordingly?
I have some Pro micros and a few nano v3's on hand.
Also i cannot change the ntc as it is mounted in the cylinder head and seems to be manufacturer specific ![]()
Any help, advice or guidance would be greatly appreciated!