AcquaPortal Forum Acquario Dolce e Acquario Marino

AcquaPortal Forum Acquario Dolce e Acquario Marino (http://www.acquariofilia.biz/forum.php)
-   Tecnica marino (http://www.acquariofilia.biz/forumdisplay.php?f=57)
-   -   Reef Angel (http://www.acquariofilia.biz/showthread.php?t=296451)

LukeLuke 04-04-2011 22:39

le funzioni che tu hai messo doppie:

ReefAngel.MHLights(Port1);
ReefAngel.StandardLights(Port2);
ReefAngel.MHLights(Port3);
ReefAngel.DosingPump1(Port6);
ReefAngel.DosingPump2(Port7);
ReefAngel.StandardLights(Port8);


tipo StandardLights e MHLights , sappi che partiranno all'orario che tu setti nel menu della board....

per MHLights non potrai settare due orari diversi uno per la porta 1 ed uno per la 3, perchè il setup è unico.

rita87 04-04-2011 22:45

no lo puoi vedere nel pde che ho postato standardfan port6, standardheater port7, parte il relè della porta 7. Mica può essere che legge la T in celsius ma fa partire i relè al raggiungimento dei 79 farenheite?

lucaeff 04-04-2011 23:31

Quote:

Originariamente inviata da rita87 (Messaggio 3547248)
no lo puoi vedere nel pde che ho postato standardfan port6, standardheater port7, parte il relè della porta 7. Mica può essere che legge la T in celsius ma fa partire i relè al raggiungimento dei 79 farenheite?

io nel display dell RA visualizzo le T in °C però se entro nell settaggio T mi visualizza °F

lucaeff 04-04-2011 23:53

Quote:

Originariamente inviata da LukeLuke (Messaggio 3545543)
Quote:

Originariamente inviata da lucaeff (Messaggio 3545417)
come impostare il ritardo dello skimmer dopo un blackout?


prendi spunto dalla funzione per le HQI che trovi nel file ReefAngel.cpp:


void ReefAngelClass::MHLights(byte LightsRelay, byte OnHour, byte OnMinute, byte OffHour, byte OffMinute, byte MHDelay)
{
unsigned int MHTimer = MHDelay;
MHTimer *= SECS_PER_MIN;
if ( now()-RAStart > MHTimer )
StandardLights(LightsRelay, OnHour, OnMinute, OffHour, OffMinute);
}

puoi provare così:

nel file .pde sopra al void setup() inserisci questo:

void RitardoSkimmer(byte SKPort, byte SKDelay)
{
unsigned int SKTimer = SKDelay;
SKTimer *= SECS_PER_MIN;
if ( now()-RAStart > SKTimer )
ReefAngel.Relay.On(SKPort);
}

Poi nella sezione loop() del .pde inserisci questo:

RitardoSkimmer(Port4,60)

dovrebbe funzionare .... provate ... :-D
------------------------------------------------------------------------
in linea generale... per capire cosa fà il vostro controller... andatevi a vedere il file ReefAngel.cpp e da lì potete prendere anche diversi spunti https://github.com/curtbinder/ReefAn.../ReefAngel.cpp

mi dà questo errore, sbaglio qualcosa?



http://s2.postimage.org/qduwm2xw/Untitled_1.jpg

rita87 05-04-2011 00:06

copia tutto il pde

lucaeff 05-04-2011 07:31

questo è il pde intero
Quote:

//*Autogenerated*file*by*RAGen*(v1.0.4.92),*(04/02/2011*09:57)
//*Memory_040211_0957.pde
//
//*This*file*sets*the*default*values*to*the*Internal *Memory
//


#include*<ReefAngel_Features.h>
#include*<ReefAngel_Globals.h>
#include*<Time.h>
#include*<OneWire.h>
#include*<Phillips6610LCDInv.h>
#include*<avr/pgmspace.h>
#include*<ReefAngel_EEPROM.h>


Phillips6610LCDInv*e;

void RitardoSkimmer(byte SKPort, byte SKDelay)
{
unsigned int SKTimer = SKDelay;
SKTimer**=*SECS_PER_MIN;
if ( now()-RAStart > SKTimer )
ReefAngel.Relay.On(SKPort);
}

void setup()
{
****e.lcd_init();
****e.lcd_clear(COLOR_WHITE,0,0,132,132);
****e.lcd_BacklightOn();

****InternalMemory.MHOnHour_write(8);
****InternalMemory.MHOnMinute_write(0);
****InternalMemory.MHOffHour_write(15);
****InternalMemory.MHOffMinute_write(0);
****InternalMemory.MHDelay_write(5);
****InternalMemory.StdLightsOnHour_write(8);
****InternalMemory.StdLightsOnMinute_write(0);
****InternalMemory.StdLightsOffHour_write(15);
****InternalMemory.StdLightsOffMinute_write(0);
****InternalMemory.DP1OnHour_write(20);
****InternalMemory.DP1OnMinute_write(0);
****InternalMemory.DP2OnHour_write(22);
****InternalMemory.DP2OnMinute_write(30);
****InternalMemory.DP1Timer_write(10);
****InternalMemory.DP2Timer_write(10);
****InternalMemory.DP1RepeatInterval_write(60);
****InternalMemory.DP2RepeatInterval_write(60);
****InternalMemory.ATOTimeout_write(60);
****InternalMemory.ATOHighTimeout_write(60);
****InternalMemory.ATOHourInterval_write(0);
****InternalMemory.ATOHighHourInterval_write(0);
****InternalMemory.FeedingTimer_write(900);
****InternalMemory.LCDTimer_write(600);
****InternalMemory.LEDPWMActinic_write(50);
****InternalMemory.LEDPWMDaylight_write(50);
****InternalMemory.WM1Timer_write(200);
****InternalMemory.WM2Timer_write(354);
****InternalMemory.HeaterTempOn_write(780);
****InternalMemory.HeaterTempOff_write(791);
****InternalMemory.ChillerTempOn_write(810);
****InternalMemory.ChillerTempOff_write(785);
****InternalMemory.OverheatTemp_write(1500);
****InternalMemory.PHMax_write(840);
****InternalMemory.PHMin_write(550);
}

void loop()
{
**RitardoSkimmer(Port4,60)
****// display the values
****char buf[128];
****sprintf(buf,*"MH %2d:%02d-%2d:%02d,%d", InternalMemory.MHOnHour_read(), InternalMemory.MHOnMinute_read(),
*****************************************InternalM emory.MHOffHour_read(),*InternalMemory.MHOffMinute _read(),
*****************************************InternalM emory.MHDelay_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW,*buf);
****sprintf(buf,*"Std %2d:%02d-%2d:%02d", InternalMemory.StdLightsOnHour_read(), InternalMemory.StdLightsOnMinute_read(),
******************************************Internal Memory.StdLightsOffHour_read(),*InternalMemory.Std LightsOffMinute_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*2,*buf);
****sprintf(buf,*"LED A: %d%% D: %d%%", InternalMemory.LEDPWMActinic_read(), InternalMemory.LEDPWMDaylight_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*3,*buf);
****sprintf(buf,*"WM1: %ds", InternalMemory.WM1Timer_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*4,*buf);
****sprintf(buf,*"WM2: %ds", InternalMemory.WM2Timer_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*5,*buf);
****sprintf(buf,*"F: %ds", InternalMemory.FeedingTimer_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*6,*buf);
****sprintf(buf,*"S: %ds", InternalMemory.LCDTimer_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*7,*buf);
****sprintf(buf,*"H On: %d -> %d", InternalMemory.HeaterTempOn_read(), InternalMemory.HeaterTempOff_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*9,*buf);
****sprintf(buf,*"C On: %d -> %d", InternalMemory.ChillerTempOn_read(), InternalMemory.ChillerTempOff_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*10,*buf);
****sprintf(buf,*"PH %d - %d", InternalMemory.PHMax_read(), InternalMemory.PHMin_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*11,*buf);

****delay(10000);
****e.lcd_clear(COLOR_WHITE,0,0,132,132);

****sprintf(buf,*"OH: %dF", InternalMemory.OverheatTemp_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW,*buf);
****sprintf(buf,*"ATO L: %ds (%dh)", InternalMemory.ATOTimeout_read(), InternalMemory.ATOHourInterval_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*2,*buf);
****sprintf(buf,*"ATO H: %ds (%dh)", InternalMemory.ATOHighTimeout_read(), InternalMemory.ATOHighHourInterval_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*3,*buf);

****sprintf(buf,*"DP1: %2d:%02d", InternalMemory.DP1OnHour_read(), InternalMemory.DP1OnMinute_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*5,*buf);
****sprintf(buf,*" %ds", InternalMemory.DP1Timer_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*6,*buf);
****sprintf(buf,*"DP2: %2d:%02d", InternalMemory.DP2OnHour_read(), InternalMemory.DP2OnMinute_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*7,*buf);
****sprintf(buf,*" %ds", InternalMemory.DP2Timer_read());
****e.lcd_draw_text(COLOR_BLACK,*COLOR_WHITE,*MENU _START_COL,*MENU_START_ROW*8,*buf);

****delay(10000);
****e.lcd_clear(COLOR_WHITE,0,0,132,132);
}


LukeLuke 05-04-2011 08:14

ma stai usano l'internal memory modificato ?

l'internal memory serve solo per popolare la memoria interna con dei valori base.... lo carichi la prima volta e basta....

poi ti scarichi RAMenus.pde e lavori su quello.... l'ho spiegato qui http://www.acquariofilia.biz/showpos...4&postcount=78

Psyco 05-04-2011 08:29

Bene...dopo una bella giornata di prove su RaGen posso dirvi che il programma ha bisogno di esser molto migliorato, presenta tantissimi bug...credo che la cosa migliore sia utilizzarlo per aver una base dei pde da modificare e per rendersi conto di cosa cambia nei files cambiando le opzioni...mio consiglio:
fate a mano che fate prima..ahaha

rita87 05-04-2011 08:32

Quote:

Originariamente inviata da Psyco (Messaggio 3547558)
Bene...dopo una bella giornata di prove su RaGen posso dirvi che il programma ha bisogno di esser molto migliorato, presenta tantissimi bug...credo che la cosa migliore sia utilizzarlo per aver una base dei pde da modificare e per rendersi conto di cosa cambia nei files cambiando le opzioni...mio consiglio:
fate a mano che fate prima..ahaha

Verissimo!

LukeLuke 05-04-2011 08:57

è una vita che ve lo dico... di fare tutto a mano...

rita hai una mail.... fallo... secondo me non è normale che non ti compaiano le temperature sul display e ti inverte le accensioni... sicuramente mancano delle cose....

Allora per aiutarvi ho fatto un pacchetto con già tutte le librerie nei punti giusti http://rapidshare.com/files/455960989/arduino.zip

scaricatelo, scompattatelo e poi entrate sotto libraries/ReefAngel_Features e modificate il file ReefAngel_Features.h abilitando e disabilitando le cose che vi servono.

#### LO FARAI SOLO LA PRIMA VOLTA
6 - Ora per evitare di dover inserire, la prima volta, tutti i valori a mano... Curt ha creato un file chiamato SetIntervalMemory, lo scarichi https://github.com/curtbinder/SketchBook e lo appoggi sotto documenti....

7- Lanci il software di Arduino, setti nelle impostazioni, come Board --> Arduino 2009 . Setti la porta USB corretta... e fai open e scegli il file SetIntervalMemory.pde... ora modificalo in base alle tue impostazioni di orario e varie.... poi lo salvi e lo installi

########

8 - Scarichi il file RAMenus.pde da qui https://github.com/curtbinder/SketchBook e lo metti sempre sotto Documenti

9- Fai open e scegli il file RAMenus.pde, è qui che definisci le funzioni del relè e i °C, non credo tu debba fare modifiche particolari.... poi lo salvi e lo compili .... ed il gioco è fatto....


Tutti gli orari sono GMT +2. Attualmente sono le 15:17.

Powered by vBulletin versione 3.8.9
Copyright ©: 2000 - 2025, Jelsoft Enterprises Ltd.
Traduzione italiana Team: AcquaPortal
User Alert System provided by Advanced User Tagging v3.2.5 Patch Level 2 (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Copyright Zero Pixel Srl

Page generated in 0,33013 seconds with 13 queries