Hi,
In Xiao SAMD21, I designed a PCB to measure Voltage using Xiao SAMD21 internal ADC. But always getting Noise data details are attached below. In program
- ADC set to 12 bit mode.
- Using analogRead function.
Tried many ways to clear the noise, none of them are not working. Pls suggest a way to solve.
Hi, Jaishankar
If you just want to remove the noise, I assume you can just average it out, but how did you average it out?
With a little more information, I might be able to make a suggestion.
1.The vertical axis of the graph [volt/div] and the horizontal axis [sec/div]
2.What are you measuring? Approximate voltage and frequency
3.If possible, connection diagram and sketch
Above data is captured by Microcontroller itself with 50mSec time interval
Input to ADC i manually varied three times with + or - 0.5V
To make this graph i subtract the offset value(set voltage) and plot it.
Hi, Jaishankar
I wrote a comment on the following graph, is this correct?
How is the voltage for measurement generated?
I connected DAC and ADC and measured about 1V and 2V. I can measure without any problem.
Would you like to give it a try?
//XIAO SAMD21
void setup() {
Serial.begin(115200);
while(!Serial);
pinMode(A0, OUTPUT); //DAC output pin
pinMode(A1, INPUT); //ADC input pin
analogReadResolution(12);
analogWriteResolution(10);
}
void loop() {
analogWrite(A0, 310); //about 1[V]
for(int i=0; i<100; i++) { //50mS 100 times
Serial.println(analogRead(A1));
delay(50);
}
analogWrite(A0, 620); //about 2[V]
for(int i=0; i<100; i++) {
Serial.println(analogRead(A1));
delay(50);
}
}
To capture the noise i have subtract set voltage from the collected. Graph plot with subtracted value(only noise). Each sample is collected with 20ms time interval. So Noise voltage is around 10-40mV.
As shown in the example below, a simple averaging will reduce the noise.
As for hardware, connecting a ceramic capacitor of about 1uF between the ADC input pin and GND and between the 3.3V pin and GND can also be effective.
Okay i will try again with the capacitor