Tirando a média
Como podemos ver com este simples exemplo é facil fazer o Arduino lê repetidamente uma entrada analógica, calcular a média móvel e imprir-a no computador. Demonstrando com isso o uso de vetores.
Circuito
Ligue o potenciômetro à entrada analógica 0.
Código
// Defina o número de amostras a considerar. Quanto maior,
// mais homogênea serão as leituras, porém, mais lentamente a saída
// responderá à entrada.
#define NUMREADINGS 10
int readings[NUMREADINGS]; // qtde de amostras
int index = 0; // índice da leitura atual
int total = 0; // total móvel
int average = 0; // média
int inputPin = 0;
void setup()
{
Serial.begin(9600); // inicializa com. serial com o computador
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; // inicializa todas as leituras com 0
}
void loop()
{
total -= readings[index]; // subtrair a última leitura
readings[index] = analogRead(inputPin); // ler do sensor
total += readings[index]; // adicionar leitura ao total
index = (index + 1); // avançar ao próximo índice
if (index >= NUMREADINGS) // se estiver no fim do vetor...
index = 0; // ...meia-volta ao início
average = total / NUMREADINGS; // calcular a média
Serial.println(average); // enviá-la ao computador (em forma ASCII)
}
Bons projetos!
Bacana Administrador. |
Nenhum comentário:
Postar um comentário
teste comentario