#1,206
16-05-2015, 10:13 PM
(Última modificación: 17-05-2015, 03:31 PM por
beleitor.)
Creo que he añadido los parámetros necesarios en los módulos CAO1_1x.ino, CAO1_CONFIG.h, CAO1_Parm.h y CAO1_Sensor.
En la pantalla al igual que en el monitor serial, sale información de los tres sensores, pero solo sale información del dimeo del pin 45 ventilador acuario.
Como deduces estoy utilizando la función de velocidad variable. He probado a intercambiar los pins por software y por cableado. Cuando intercambio por software solo funciona el pin definido a refrigeración acuario ya sea el 44, 45, 46 y cuando lo hago por cableado solo funciona el ventilador conectado en el pin de salida arduino de refrigeración acuario.
Estos son los trozos del código añadido:
CAO1_1.1.x.ino
Cao1_Sensor SensTempCaja; // sensor temperatura caja electronica
SensTempCaja.Read();
LCD.SetLine_SerNL( SerFmt.Fmt(F("%s %s"),
SensTempLeds.StrValSt(false), SensTempCaja.StrValSt(false)), false, 2);
int GetTempCaja(){
return ds18x20.GetTempAddr(ADDR_DS18X20_TEMP_CAJA);
int PosSensTempAcua, PosSensTempLEDs, PosSensTempCaja;
PosSensTempCaja=ds18x20.GetPosSensor(ADDR_DS18X20_TEMP_CAJA);
// *** Controlador temperatura Caja *********************
if (PosSensTempCaja==-1){
LCD.PrintLn_Ser(SerFmt.Fmt(F("NO Sens.Temp.Caja")));
SensTempCaja.IniBroken( EP_MIN_TMP_CAJA, 0, PinDecrTempCaja, false, false
}
else{
LCD.PrintLn_Ser(SerFmt.Fmt(F("OK Sens.Temp.Caja")));
LCD.PrintLn_Ser(ADDR_DS18X20_TEMP_CAJA);
NumSensTemp--;
SensTempCaja.Ini( EP_MIN_TMP_CAJA, 0, PinDecrTempCaja, false, true,
GetTempCaja, 1, StrUnitSensor, true);
}
CAO1_CONFIG.h
#define ADDR_DS18X20_TEMP_CAJA "28FF.DD2E.4A04.00FF" // Temperatura caja electronica
#define Pin_RefrigCaja 46 // Motor dimeable ççç
#define PinDecrTempCaja 46
extern Cao1_Sensor SensTempCaja; // sensor temperatura Caja electronica
Cao1_Parm.h
EP_MIN_TMP_CAJA,
EP_LOW_TMP_CAJA,
EP_HGH_TMP_CAJA,
EP_MAX_TMP_CAJA,
EP_HST_TMP_CAJA,
EP_ALA_TMP_CAJA,
EP_ENA_TMP_CAJA,
EP_MAX_VENT_CAJA,
// * Sensor Temp Caja
{EP_MIN_TMP_CAJA, "MinTmpCaja", P_US_DECIM, 0, 999, 50},
{EP_LOW_TMP_CAJA, "L_TmpCaja", P_US_DECIM, 0, 999, 200},
{EP_HGH_TMP_CAJA, "H_TmpCaja", P_US_DECIM, 0, 999, 380},
{EP_MAX_TMP_CAJA, "MaxTmpCaja", P_US_DECIM, 0, 999, 410},
{EP_HST_TMP_CAJA, "HstTmpCaja", P_US_DECIM, 0, 20, 5},
{EP_ALA_TMP_CAJA, "AlaTmpCaja", P_BOOLEAN, 0, 1, 1},
{EP_ENA_TMP_CAJA, "EnaTmpCaja", P_BOOLEAN, 0, 1, 1},
{EP_MAX_VENT_CAJA, "MaxVntCaja", P_US_INT, 0, 255, 200},
Cao1_Sensor.h
int GetP_MaxVentCaja();
Cao1_Sensor.cpp
int Cao1_Sensor::GetP_MaxVentCaja(){
return Parm.EEP_Read( EP_MAX_VENT_CAJA) ;
}