Created
January 20, 2020 01:53
-
-
Save carlosdelfino/609db07bf319465535086c4b576e987f to your computer and use it in GitHub Desktop.
Códigos de Teste Sampling Sinais Analógicos com Arduino, começando do mais óbvio para o iniciante até o mais óbvio para o especialista
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
O Objetivo deste código é educacional, é puramente didático, | |
onde demonstro como é feito a leitura da porta analógica e | |
como obtenho as médicas das taxas deleitura. | |
Para tirar proveito deste cóidgo você deve usar o Arduino Plotter ou copiar a saida da porta serial para uma planilha e plotar um gráfico com os dados gerados, pode também jogar diretamente para o Octave ou MathLab; | |
*/ | |
void setup() { | |
Serial.begin(115200); | |
Serial.println(); | |
Serial.print("Time_(s)"); | |
Serial.print("\t"); | |
Serial.print("Analog_1"); | |
Serial.print("\t"); | |
Serial.print("Piezo_1"); | |
Serial.print("\t"); | |
Serial.print("Piezo_media_1"); | |
Serial.print("\t"); | |
Serial.print("Intervalo_geral_(s)"); | |
Serial.print("\t"); | |
Serial.print("Freq_geral_(*1Hz)"); | |
Serial.print("\t"); | |
Serial.print("Frequência_sample_(*0.1Hz)"); | |
Serial.print("\t"); | |
Serial.print("Freq_sample_media_(*0.1Hz)"); | |
Serial.println(); | |
} | |
// the loop routine runs over and over again forever: | |
void loop() { | |
static float last = millis(); | |
Serial.print( (float)millis() / 1000, 4); // tempo em segundos | |
Serial.print("\t"); | |
Serial.print(analogRead(A1)); // leitura na porta analógica, tempor variável conforme estabilidade do hardware do ATMega | |
Serial.print("\t"); | |
Serial.print(analogRead(A4)); // Leitura do sinaldo Piezo na porta A4 | |
Serial.print("\t"); | |
static double lastAr1M2 = 0; | |
static int lastAr1M2C = 0; | |
long ar1M = 0; | |
int i = 0; | |
double lastAr1M = 0; | |
double lastAr1 = 0 ; | |
for (; i < 400; i++) { | |
ar1M += analogRead(A4); | |
lastAr1M += (millis() - lastAr1); | |
lastAr1 = millis(); | |
} | |
lastAr1M /= i; | |
ar1M /= i; | |
Serial.print(ar1M); // média das leituras; | |
Serial.print("\t"); | |
Serial.print( (millis() - last) / 1000 , 4); // intervalo (s) geral entre leituras | |
Serial.print("\t"); | |
Serial.print(1 / ((millis() - last) / 1000), 4); // Frequêncial Geral | |
Serial.print("\t"); | |
Serial.print(1 / (lastAr1M / 1000), 4); // Frequência do Sampling | |
Serial.print("\t"); | |
lastAr1M2 += lastAr1M; | |
Serial.print(1 / (lastAr1M2 / ++lastAr1M2C / 1000), 4); // Frequência media do Sampling | |
Serial.println(); | |
last = millis(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment