@ALL:
As measurements with Arduino approach I'd like to share some notions in order to convert innocent expectations in real working units.
We need to accept all conditions we throw Arduino into and deal with them in order to get our little dwarf running smoothly.
Noise and EMC:
Only those whose circuits once suffered severely on noise and EMC disturbance can feel what I intend to share next. The rest of you please get it by your mind only.
As I postred recently our setups emit EMC much more than indiustrial grade accepted. Hence we need to prepare provisions preventing us from being fooled. You pobably red my posts regarding how our meters fool us - and most of them are professional made. What about a tinkered Ardunio meter - will it fool less?
Please accept I am not an anxious man but I am used to submit rugged circuits for medical care and hence claim to know some of our future implications and solutions as well. Fortunately solutions are mostly simple but nevertheless inevitable.
Implications with analog signals
Analog sinals are called "analog" because they reflect seamlessly real conditions as "analog" electric signal. The drawback ist any disturbance - independently from where it was sourced - will be part of the signal as well, it will stick on the real signal und distort it. This component called noise.
We know the difficulty to understand words in a (analog) noisy environment. Understanding is only possible because our brain supports plenty of computing power and tricks like massive redundance in order to correlate and filter what we want to hear. Unfortunately our dwarf has no brain power and we ourselves need to keep signals clear from dirt.
As allway in life: if we konw the danger we can fight agains successfully.
Sources for noise:
1. Unfortunately the first source for noise is our Arduino itself. Any current from an digital pin like our pulse outputs add their contribution to GND noise. Apart that Artmel submitted knowledge on how to get rid of some self noise. There is a special ADC mode to adjust, we can add a smooth reference voltage. But the most disturbance will be the pulsing digital pins for motor control.
2. Another source of noise is the noisy environment. Semiconductors tend to rectify any incoming noise and submit it as DC offset. Do not expect that simple transitors ar digital circutis do not receive energy from mobile phones (up to 100V/m - that is severe!!!!!). The truth is they are not specified for those frequencies but they very probably will react in an unspecified manner.
Last but not least we have the distubance from our setup - not specified as well.
3. Mostly overseen are GND currents. Any conductor is a resistor and any 100mA current as peak on GND line will fool analog digital converters. Please accept that Arduino owns a 10Bit ADC (analog to digital converter). 10 bit makes 1024 steps possible. We will get maximum 9 bit usable = 512 steps. Now devide 100V by 512 and we get steps of about 200mV precision - maximum!!!!! in clear environment.
So you can understand why I would prefer to read current and voltage by a 12Bit (16K steps) ADC directly at unit under test.
How to procede
1. Separated supply is essential. Fortunately Ardunio does not consume much power. A battery is possible but I recommend simple socket chargers for initial setup. You will possibly get some 5V from USB chargers from mobile phones.
2. ONE SINGLE GND point possible for reference. More connections will generate severe and unpredictable noise ground currents.
3. Maximum one single GND connection to unit under test. All others need to be isolated. We need it for measuring voltage. Hence Allegro current sensor with 1KV isolation.
4. Using twisted pairs of wires. They help in some extent to cancel out external noise. All other shapes of wiring will add a superb areal for receiving distubance. The gain of such an antenna is direct proportinal to the area those wires encircle.
5. Shielded electonic box and shielded cables. Think in terms of a glove. The glove is the metal shield. Your plam is Ardunio sitting in a metal box and the fingers are the shielded cables. On teh tips of teh glove fingers we find sitting our sensors.
6. I strongly recommend to separate thoroughly motor control and pure measurement equipment. It makes all tasks much more simpler. Hardware, programming, debugging ....... And in the end it will save money because less components killed.
BTW: I am so sticky because we need to supply some proves later on and I do not want you to struggle with unreliable tools. Imagine we can prove the battery supplying 300W while charging up!
Please do not despair if your brain does not get those facts above for now. You will get it later on. But please be prepard to do some thigns differnt than expected and to use multiple and dedicated Arduinos.
JS
As measurements with Arduino approach I'd like to share some notions in order to convert innocent expectations in real working units.
We need to accept all conditions we throw Arduino into and deal with them in order to get our little dwarf running smoothly.
Noise and EMC:
Only those whose circuits once suffered severely on noise and EMC disturbance can feel what I intend to share next. The rest of you please get it by your mind only.
As I postred recently our setups emit EMC much more than indiustrial grade accepted. Hence we need to prepare provisions preventing us from being fooled. You pobably red my posts regarding how our meters fool us - and most of them are professional made. What about a tinkered Ardunio meter - will it fool less?
Please accept I am not an anxious man but I am used to submit rugged circuits for medical care and hence claim to know some of our future implications and solutions as well. Fortunately solutions are mostly simple but nevertheless inevitable.
Implications with analog signals
Analog sinals are called "analog" because they reflect seamlessly real conditions as "analog" electric signal. The drawback ist any disturbance - independently from where it was sourced - will be part of the signal as well, it will stick on the real signal und distort it. This component called noise.
We know the difficulty to understand words in a (analog) noisy environment. Understanding is only possible because our brain supports plenty of computing power and tricks like massive redundance in order to correlate and filter what we want to hear. Unfortunately our dwarf has no brain power and we ourselves need to keep signals clear from dirt.
As allway in life: if we konw the danger we can fight agains successfully.
Sources for noise:
1. Unfortunately the first source for noise is our Arduino itself. Any current from an digital pin like our pulse outputs add their contribution to GND noise. Apart that Artmel submitted knowledge on how to get rid of some self noise. There is a special ADC mode to adjust, we can add a smooth reference voltage. But the most disturbance will be the pulsing digital pins for motor control.
2. Another source of noise is the noisy environment. Semiconductors tend to rectify any incoming noise and submit it as DC offset. Do not expect that simple transitors ar digital circutis do not receive energy from mobile phones (up to 100V/m - that is severe!!!!!). The truth is they are not specified for those frequencies but they very probably will react in an unspecified manner.
Last but not least we have the distubance from our setup - not specified as well.
3. Mostly overseen are GND currents. Any conductor is a resistor and any 100mA current as peak on GND line will fool analog digital converters. Please accept that Arduino owns a 10Bit ADC (analog to digital converter). 10 bit makes 1024 steps possible. We will get maximum 9 bit usable = 512 steps. Now devide 100V by 512 and we get steps of about 200mV precision - maximum!!!!! in clear environment.
So you can understand why I would prefer to read current and voltage by a 12Bit (16K steps) ADC directly at unit under test.
How to procede
1. Separated supply is essential. Fortunately Ardunio does not consume much power. A battery is possible but I recommend simple socket chargers for initial setup. You will possibly get some 5V from USB chargers from mobile phones.
2. ONE SINGLE GND point possible for reference. More connections will generate severe and unpredictable noise ground currents.
3. Maximum one single GND connection to unit under test. All others need to be isolated. We need it for measuring voltage. Hence Allegro current sensor with 1KV isolation.
4. Using twisted pairs of wires. They help in some extent to cancel out external noise. All other shapes of wiring will add a superb areal for receiving distubance. The gain of such an antenna is direct proportinal to the area those wires encircle.
5. Shielded electonic box and shielded cables. Think in terms of a glove. The glove is the metal shield. Your plam is Ardunio sitting in a metal box and the fingers are the shielded cables. On teh tips of teh glove fingers we find sitting our sensors.
6. I strongly recommend to separate thoroughly motor control and pure measurement equipment. It makes all tasks much more simpler. Hardware, programming, debugging ....... And in the end it will save money because less components killed.
BTW: I am so sticky because we need to supply some proves later on and I do not want you to struggle with unreliable tools. Imagine we can prove the battery supplying 300W while charging up!
Please do not despair if your brain does not get those facts above for now. You will get it later on. But please be prepard to do some thigns differnt than expected and to use multiple and dedicated Arduinos.
JS
Comment