The voltmeter is the remaining sore spot in this project. It's not very accurate, and it's got a relatively large temperature coefficient. It's bad enough that it effectively makes the watt-hour logging useless.
The non-linearity and temperature sensitivity is the fault of the optocoupler. The fix is to use a precision linear optocoupler. These have two photodiodes in the optical path, one is located on the input side, the other on the output side. The one on the input side is referred to as the "servo" photodiode and is placed in the feedback loop for the op amp that's used to pass the AC voltage across. For that, we use the existing 150 kΩ flameproof resistor along with an HV diode and a more ordinary 2.4 kΩ resistor to make a voltage divider. That should reduce 340 volts to 5 volts, giving us only one half-cycle ramping from 0 to 5 volts. That, in turn is designed to give us an LED forward current of 0-25 mA, which will be influenced by the servo current feedback. The transfer ratio (post correction) is about 0.01, so 25 mA turns into 250 µA. Across a 20 kΩ resistor, that's a 5 volt drop, so that should give us full scale on the ADC.
Of course, none of this is tested. I'm not entirely sure how I'm going to test it, really. HV makes me extremely nervous - which is why I went to such lengths to separate the HV from the logic system in the first place.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.