Попробовал посмотреть, сколько времени занимает опрос напряжения на аналоговом пине. На мониторе показывается, что 500 (!) циклов измерения напряжения и пересчета в RMS занимает 4 (!) микросекунды.
Или я что-то в скетче напоганил?
//UNO
//Переменные
int n=0; //Количество измерений
long volt_in_code; //Измеренное напряжение на А3, выраженное в 0-1023
long volt_in_summa; //Сумма квадратов измерений
long volt_in_code_rms; //Среднеквадратичное напряжение в 0-1023
long volt_in_rms; //Среднеквадратичное напряжение в вольтах
long prev_micros; //Переменная для счета времени
int vremya; //Время исполнения скетча
void setup()
{
pinMode(A3, INPUT);//Назначение пина ваттметра на вход
Serial.begin(115211);// Объявляем скорость порта
}
void loop()
{
volt_in_summa=0;
prev_micros=micros();
if (n<501) //Если счетчик измерений меньше 501
{
prev_micros=micros();
//Измеряем и вычисляем rms напряжение на А3
volt_in_code=analogRead(A3); //Читаем вход А3
volt_in_code=volt_in_code*volt_in_code; //Возводим в квадрат
volt_in_summa=volt_in_summa+volt_in_code; // Складываем квадраты измерений
volt_in_rms=sqrt(volt_in_summa);
int vremya= micros()-prev_micros;
n++;
}
int vremya= micros()-prev_micros;
Serial.println (vremya);
}