quinta-feira, 18 de agosto de 2011

Calculando a media com o Arduino

Veja o código para calculo da media de varias leituras realizadas em uma porta analógica do Arduino

unsigned long tempo; // float tempo;
float pinoentrada; //declara "pinientrada" como a variavel que fara a leitura da porta analogica (em bits)
float tensao; //declara a variavel que fara a conversao do "pinoentrada" de bits para Volt (em Volts)
char leitura; // declara a variavel que fara a leitura da Serial a partir do teclado
int i = 0; // variavel de contagem
float soma = 0; // variavel que soma os valores obtidos
float media = 0; // variavel que calcula a media


void setup(){
pinMode(A0, INPUT); // declara o pino de entrada
Serial.begin(9600);
}
void loop()
{
leitura = Serial.read(); // faz a leitura do teclado
soma = 0; // forca a variavel soma iniciar com o valor zero
i = 0; // forca a variavel i iniciar com o valor zero

if (leitura =='l') { // inicia a leitura se for teclado l (ele) na Seria

while(i < 10){ // faz dez leituras do pino de entrada

tempo= millis(); // base de tempo para a coleta em microssegundos
pinoentrada = analogRead(A0); // le o pino de entrada
tensao = (pinoentrada*5.00000)/1024.00000; // converte o valor lido para tensao
soma =(soma + tensao); // soma a tensao atual com a anterior

Serial.print("Medida ");
Serial.print(i+1);
Serial.print(" : ");
Serial.print("pino de entrada (bits)");
Serial.print(" : ");
Serial.print(pinoentrada);
Serial.print(" "); // introduz um espaço para as colunas
Serial.print("pino de entrada (volts)");
Serial.print(" : ");
Serial.println(tensao,5); // imprime a tensao com 5 casas decimais e pula uma linha
i++; // soma uma unidade na variavel i
delay(1000); // espera 1 segundo para a proxima leitura
}
media = soma/10; // calcula a media da tensao
Serial.print("Valor Medio (volts): ");
Serial.println(media,5); //imprime a media com 5 casas decimais
}
}

------------------------------ Bom Trabalho :)

Um comentário:

  1. Olá, possuo um sensor I2C (bmp085) que mede temperatura e pressão atmosférica. Como faço para calcular a média horária das leituras???

    ResponderExcluir