O Arduino lê repetidamente a uma entrada analógica, calcula a média móvel e imprime-a no computador. Demonstra o uso de vetores.
Ligue o potenciômetro à entrada analógica 0.
// 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) }