Hi, everyone , maybe the seeed gays do not express this module and it’s driver clearly.
- The current sensor module is an current transformer that has a turn ratio of 1800:1 , the current measured can be upto 30A. it also has a build-in sampling resistance of 62Ω, that is, when the input current is 30A, the output voltage would be : 30/180062≈1V. as the spider ADC ref is 3.3v and the ADC is 10bit , so the minimum resolution would be :303.3/1024≈100mA. Attached the datasheet of the module.
- Actully , this module is just a transformer, it can not convert AC to DC or measure the AC current directly. If in use of measuring AC, we need to sample the voltage repeatly, to find out the max of the sample voltage, the numbers of the ADC should be enough to guarantee the peak value or value close to the peak was sampled (that is to say, the sample times should be more than a period of the signal). like the code below:
public double GetCurrentReading()
{
double current = 0;
double max = 0;
for (int i = 0; i < 200; i++)
{
current = analogInput.ReadVoltage();
if (max < current)
{
max = current;
}
}
return max * 30;
}
we sampled 200 times and finds out the max, and then multiply with the ratio, to get the peak of the AC current. If we need the equivalencevalue, you can divide it with a 1.414…
in this way, I get the current of my air conditioner
10.1513671875
10.0546875
10.0546875
10.1513671875
3. as the spider kit in my hand, if I sample the voltage in my user application, the ADC speed is too low, but if I do the sample in the driver, it is much more faster. So , I think , how about modify the module driver like this: set 2 functions , one is GetDCCurrent() and the other is GetACCurrent(), in the GetDCCurrent(), only one ADC was needed. In the GetACCurrent(), hundreds of ADC was needed to find out the peak value. In this way, the driver would be more easy to use.
4. maybe we seeedstudio needs sometime to re-design the driver, before the new version release, maybe you can try to modify the driver by yourself, just modify the function: getcurrentreading() like above, to sample the signal repeatly and finds out the max , as i measured , 200 times would be ok. by this way , you can measure and monitor AC current with a 100mA resolution.
thanks.