Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #define SQRT2 sqrt(2)
- uint16_t adc_min, adc_max, adc_vpp, adc_now;
- float adc_rms, adc_valx;
- void setup() {
- delay(1000);
- Serial.begin(57600);
- adc_min = 1024;
- adc_max = 0;
- }
- void loop() {
- uint32_t tn = millis();
- adc_min = 1024;
- adc_max = 0;
- while (millis() - tn <= 50) {
- adc_now = analogRead(0);
- if (adc_now < adc_min) {
- adc_min = adc_now;
- }
- if (adc_now > adc_max) {
- adc_max = adc_now;
- }
- }
- // peak to peak value
- adc_vpp = (adc_max - adc_min);
- adc_rms = ((float)adc_vpp / 2.0) / SQRT2;
- adc_valx = adc_rms * 5 / 1024;
- // Serial.println(millis() + " : " + String(adc_valx*63*2, 3) + " -- " +
- // String(adc_rms, 3) + " -- " + String(adc_vpp, DEC) + " -- "
- // +
- // String(adc_min, DEC) + " -- " + String(adc_max, DEC));
- Serial.println(millis() + " : " + String(adc_valx * 63 * 2, 3));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement