Muy buenas tengo el siguiente código
#include "EmonLib.h" // Include Emon Library
EnergyMonitor emon1; // Create an instance
EnergyMonitor emon2;
EnergyMonitor emon3;
float Sensibilidad=0.104; //sensibilidad en V/A para nuestro sensor
float offset=0.150; // Equivale a la amplitud del ruido
int puerto;
float PotReal1;
float PotReal2;
float PotReal3;
void setup()
{
Serial.begin(9600);
emon1.current(A0, 60); // Current: input pin, calibration.
emon2.current(A1, 60);
emon3.current(A2, 60);
//calibration is explained bellow
}
void loop(){
// Lectura sensores ACS712
float Ip1=get_corriente(A3);//obtenemos la corriente pico
float Ip2=get_corriente(A4);
float Ip3=get_corriente(A5);
float Irms1=Ip1*0.707; //Intensidad RMS = Ipico/(2^1/2)
float Irms2=Ip2*0.707;
float Irms3=Ip3*0.707;
float PACS1=Irms1*110.0; // P=IV watts
float PACS2=Irms2*110.0;
float PACS3=Irms3*110.0;
// Lectura sensores SCT-013-000
double ISCT1 = emon1.calcIrms(1480); // Calcula Irms only
double PSCT1 = ISCT1*110.0;
double ISCT2 = emon2.calcIrms(1480);
double PSCT2 = ISCT2*110.0;
double ISCT3 = emon3.calcIrms(1480);
double PSCT3 = ISCT3*110.0;
// Comparaciones entre cada sensor
// Comparación 1
if(PSCT1 <= 1){ //
PotReal1 = PACS1;
}
else{
PotReal1 = PSCT1;
}
// Comparación 2
if(PSCT2 <= 1){
PotReal2 = PACS2;
}
else{
PotReal2 = PSCT2;
}
// Comparación 3
if(PSCT3 <= 1){
PotReal3 = PACS3;
}
else{
PotReal3 = PSCT3;
}
// Se envía al puerto serial
Serial.print(PotReal1,3);
Serial.print(" ");
Serial.print(PotReal2,3);
Serial.print(" ");
Serial.println(PotReal3,3);
}
// Función para sensor ACS712
float get_corriente(puerto)
{
float voltajeSensor;
float corriente=0;
long tiempo=millis();
float Imax=0;
float Imin=0;
while(millis()-tiempo<500) //realiza mediciones durante 0.5 segundos
{
voltajeSensor = analogRead(puerto) * (5.0 / 1023.0);//lectura del sensor
corriente=0.9*corriente+0.1*((voltajeSensor-2.527)/Sensibilidad); //Ecuación para obtener la corriente
if(corriente>Imax)Imax=corriente;
if(corriente<Imin)Imin=corriente;
}
return(((Imax-Imin)/2)-offset);
}
Cuando lo compilo me sale el siguiente error:
C:\Users\Jhonathan\Desktop\Codigo_completo2\Codigo_completo2.ino: In function 'void loop()':
Codigo_completo2:25: error: 'get_corriente' cannot be used as a function
float Ip1=get_corriente(A3);//obtenemos la corriente pico
^
Codigo_completo2:26: error: 'get_corriente' cannot be used as a function
float Ip2=get_corriente(A4);
^
Codigo_completo2:27: error: 'get_corriente' cannot be used as a function
float Ip3=get_corriente(A5);
^
C:\Users\Jhonathan\Desktop\Codigo_completo2\Codigo_completo2.ino: At global scope:
Codigo_completo2:77: error: redefinition of 'float get_corriente'
float get_corriente(puerto)
^
C:\Users\Jhonathan\Desktop\Codigo_completo2\Codigo_completo2.ino:77:7: note: 'float get_corriente' previously declared here
float get_corriente(puerto)
^
exit status 1
'get_corriente' cannot be used as a function
Alguna idea de cómo solucionarlo? Haber qué burrada estoy cometiendo jeje