Hello everyone,
I am using a autotransformer which voltage 0-220 volt Ac now i want to measure it by arduino.
So first am using a transformer which convert 200 to 5 v for Arduino measurable range after that am using ad737 which is rms to dc converter the output of transformer connected to input of ad737 but ad737 maximum input 2v so so i am using voltage devider to scale down 5v to 2v now the voltage scaling like when the autransformer voltage is 220 the output of ad737 is 1.8v and then autransformer voltage is 110 the ad737 voltage 0.9 so now what is the scaling factor and what is the correct Arduino code for readi 0-220 v
Sorry I do not work with word problems. Post an annotated schematic showing how you have connected this thing. Be sure to show all connections, power, ground and power sources. Research the map() function, it would do what you want. Hopefully you have some experience or somebody with you that is experienced in mains voltages. Have you considered a simple filament transformer? We prefer you do not become a crispy critter.
That all depends on what you get for raw values from the Arduino A/D converter. And those values are????
If everything was perfect, the scaling factor would be (5V/200V) X (2V/5V) = 0.01
So 110V RMS should be 110 X 0.01 = 1.1V
However, since you read 0.9V the real scale factor is 0.9/110 = 0.008181
To get the original voltage from the AD737 output, multiply it by 110/0.9 = 122.222
Can u write code for me please
You should be able to do your own calculation - I assume you have a multimeter? Feed-in 100V, note the ADC reading and figure-out the ratio.
Or the regular Arduino has a 10-bit ADC with a default 5V (Vcc) reference so 5V should read 1023 and you can just calculate the ratio, including the step-down transformer and voltage divider. But a measured calibration is usually helpful because transformers have tolerance and so does your 5V Vcc.
FYI - You don't really NEED the ad737. You can use a bias circuit (2 resistors and a capacitor) or a protection circuit (a resistor and diode) so you're not feeding negative voltages into the Arduino.
Then since you know you have a sine wave, RMS is 0.707 x peak. Your software is a little more complicated since you have to find the peak, but your hardware is simplified.
I need to study the AD737 data sheet but I think you made a mistake about the input voltage range. It's 200mV RMS not 2V
Yes you are right it's 200mV please write code for me . I will be thankful
float RMS_value;
int ADC_value;
void setup()
{
Serial.begin(9600);
}
void loop()
{
// read the ADC
ADC_value = analogRead(A0);
// Scale the value
// RMS_value = (5.0/1024.0) * (220.0/1.8) * ADC_value
RMS_value = (1100.0/1843.2) * ADC_value;
Serial.print("RMS = ");
Serial.println(RMS_value);
delay(1000);
}
RMS_value = (1100.0/1843.2) * ADC_value;
Can u clear why you use this?
See the comment right above that line.
5x220=1100
1024x1.8=1842.2
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.