14-05-2015, 12:58 PM
Problemilla con una libreria de Arduino, help!
Resulta que tengo que capturar una señal analógica irregular comprendida entre 0 y 5V por la entrada Analógica del arduino, para hacer la captura más fina tengo puesto algunos filtros y todo correcto, con el Labview recibo una buena calidad pero para mayor "refinado" de la señal debo hacer la media de, por ejemplo 10 capturas. Con arduino, hacer la media de 10 capturas lo he logrado hacer con arrays y historias, pero he pensado que seria más util utilizar una libreria dedicada a ello, que además de calcular la media lograra darte el máximo, mínimo, etc. He encontrado esta librería http://playground.arduino.cc/Main/Average
El problema es que, después de descargar el zip de https://github.com/MajenkoLibraries/Average e instalar la librería correctamente, reiniciar el programa de Arduino, al intentar compliar el primer ejemplo de abajo, me salta un error que dice 'mean' was not declared in this scope y me lo dice tanto con mode, max, min... etc, es como si no pillara bien la función pero la librería se la ha tragado bien, incluso me marca en color la librería y mean, mode, max... cosa que destaca y que entiende que en el programa es una función. Obviamente me salta el mismo error cada vez que quiero acceder a la función para que me devuelva el mean, mode, etc. Estoy declarando mal la función, me falta algo de código? No he encontrado tampoco ningún caso parecido.
Tampoco es que necesite utilizar esta librería a muerte, si alguien conoce alguna otra que me pueda hacer trabajo parecido me iría de coña. Saludos al hilo!
Resulta que tengo que capturar una señal analógica irregular comprendida entre 0 y 5V por la entrada Analógica del arduino, para hacer la captura más fina tengo puesto algunos filtros y todo correcto, con el Labview recibo una buena calidad pero para mayor "refinado" de la señal debo hacer la media de, por ejemplo 10 capturas. Con arduino, hacer la media de 10 capturas lo he logrado hacer con arrays y historias, pero he pensado que seria más util utilizar una libreria dedicada a ello, que además de calcular la media lograra darte el máximo, mínimo, etc. He encontrado esta librería http://playground.arduino.cc/Main/Average
El problema es que, después de descargar el zip de https://github.com/MajenkoLibraries/Average e instalar la librería correctamente, reiniciar el programa de Arduino, al intentar compliar el primer ejemplo de abajo, me salta un error que dice 'mean' was not declared in this scope y me lo dice tanto con mode, max, min... etc, es como si no pillara bien la función pero la librería se la ha tragado bien, incluso me marca en color la librería y mean, mode, max... cosa que destaca y que entiende que en el programa es una función. Obviamente me salta el mismo error cada vez que quiero acceder a la función para que me devuelva el mean, mode, etc. Estoy declarando mal la función, me falta algo de código? No he encontrado tampoco ningún caso parecido.
Tampoco es que necesite utilizar esta librería a muerte, si alguien conoce alguna otra que me pueda hacer trabajo parecido me iría de coña. Saludos al hilo!
Código:
#include <Average.h>
#define CNT 600
int d[CNT];
void setup()
{
Serial.begin(9600);
}
void loop()
{
int i;
for(i=0; i<CNT; i++)
{
d[i] = random(500);
}
Serial.print("Mean: ");
Serial.print(mean(d,CNT),DEC);
Serial.print(" Mode: ");
Serial.print(mode(d,CNT),DEC);
Serial.print(" Max: ");
Serial.print(maximum(d,CNT),DEC);
Serial.print(" Min: ");
Serial.print(minimum(d,CNT),DEC);
Serial.print(" Standard deviation: ");
Serial.print(stddev(d,CNT),4);
Serial.println("");
Serial.println("");
delay(5000);
}