Olá amigos,
Estou fazendo um projetinho com Arduino UNO e gostaria de uma ajuda. Através de um sensor de corrente, quero capturar cerca de 4096 amostras em 1s (não preciso de mais informações além do 1º s), mas não estou encontrando onde consigo mexer no tempo de amostragem do Arduino, para que ele me dê essa quantidade de informação.
Alguém tem alguma ideia ?
Acredito que para isso eu precise definir um Tempo de Amostragem (Ts) em torno de 976us, para conseguir uma Frequência de Amostragem (fs) de 1025 Hz +/- ( fs = 1/ Ts ) .
Preciso desses valores para trabalhar com banda de 500 Hz, da qual consigo verificar freqûencias até a 7ª harmônica para uma alimentação de 60 Hz.
Δ f = fs/N = 1025/4096 = 0,25 Hz
f máx = ( N x Δf ) / 2 = ( 4096 x 0,25 ) / 2 = 512,5 Hz
Segue meu código:
(Projeto usa o sensor SCT 30A para capturar os valores da corrente elétrica). O código foi retirado do "Medidor de Energia" do site FilipeFlop
//Programa : Medidor de energia elétrica com Arduino e SCT-013
//Autor : FILIPEFLOP
//Baseado no programa exemplo da biblioteca EmonLib
//Carrega as bibliotecas
#include "EmonLib.h"
#include <LiquidCrystal.h>
EnergyMonitor emon1;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//Tensao da rede eletrica
int rede = 127.0;
//Pino do sensor SCT
int pino_sct = 1;
void setup()
{
lcd.begin(16, 2);
lcd.clear();
Serial.begin(9600);
//Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29.
emon1.current(pino_sct, 30);
//Informacoes iniciais display
lcd.setCursor(0,0);
lcd.print("Corr.(A):");
}
void loop()
{
//Calcula a corrente
double Irms = emon1.calcIrms(1480);
//Mostra o valor da corrente
Serial.print("Corrente: ");
Serial.print(Irms); // Irms
Serial.println();
lcd.setCursor(10,0);
lcd.print(Irms);
delay(1000);
}