Dosierpumpen mit Schaltsteckdosen - Ein AquaGrow Mod

SInd das nur Testdaten bei dir, oder pumpst du echt 8x10ml rein. :pfeifen:
 
Das sind nur Testdaten

Jetzt hab ichs mal so eingepflegt:


Code:
#define PUMPCOUNTS 12      // Number Pumps

PUMP dosing[] = { 
{get_ts(10,0,5),1,"D1",8,10},
{get_ts(10,0,5),1,"D2",2,10},
{get_ts(10,0,5),1,"D3",3,10},
{get_ts(10,0,5),1,"D4",4,10},
{get_ts(10,0,5),1,"D5",5,10},
{get_ts(10,0,5),1,"D6",6,10},
{get_ts(10,0,20),1,"D1",8,10},
{get_ts(10,0,20),1,"D2",2,10},
{get_ts(10,0,20),1,"D3",3,10},
{get_ts(10,0,20),1,"D4",4,10},
{get_ts(10,0,20),1,"D5",5,10},
{get_ts(10,0,20),1,"D6",6,10},
};

Leider wirft er mir dann auf dem Display alles durcheinander.

Um 10:00:05 wirft er mir auf dem Display aus: (Das passt ja wie vorgegeben.

690 690 690 690
690 690

Um 10:00:20 kommt dann
690 690 690 690
-41 -41 -31 -21

Das verstehe ich jetzt nicht. Das ist aber Trockenversuch, ohne angeschlossene Pumpen.
 
Ich glaub 6x um 10:00:05 - 10:00:20 geht auch nicht
 
Hi Moritz
Kleines Problem, hättest du noch eine DIY Mini Platine Version 1 mit Bug für mich.
Hab meine im Aquarium versenkt beim reinigen. :( (kommt dann auch in den Schrank ich aufs Aqua :pfeifen: )
 
hugo1892":34xt7hx2 schrieb:
Das sind nur Testdaten

PUMP dosing[] = {
{get_ts(10,0,5),1,"D1",8,10},
{get_ts(10,0,5),1,"D2",2,10},
{get_ts(10,0,5),1,"D3",3,10},
{get_ts(10,0,5),1,"D4",4,10},
{get_ts(10,0,5),1,"D5",5,10},
{get_ts(10,0,5),1,"D6",6,10},
{get_ts(10,0,20),1,"D1",8,10},
{get_ts(10,0,20),1,"D2",2,10},
{get_ts(10,0,20),1,"D3",3,10},
{get_ts(10,0,20),1,"D4",4,10},
{get_ts(10,0,20),1,"D5",5,10},
{get_ts(10,0,20),1,"D6",6,10},
};[/code]

Müsten glaub immer fortlaufende zeiten sein.
so gehen 6 pumpen gleichzeitig um 10:05 und 6 pumpen um 10:20
oder meinst wie ich das Board versenkt habe
 
Hi,

hab ich probiert, geht leider nicht!

Es geht eine einfache Dosierung/Tag. Eine zweite oder dritte funktioniert so nicht.

Was sogar komisch ist, ich füge diesen Code ein:

Code:
#define PUMPCOUNTS 9      // Number Pumps

PUMP dosing[] = { 
{get_ts(10,0,5),1,"D1",8,10},
{get_ts(10,0,10),1,"D2",2,10},
{get_ts(10,0,15),1,"D3",3,10},
{get_ts(10,0,20),1,"D4",4,10},
{get_ts(10,0,25),1,"D5",5,10},
{get_ts(10,0,30),1,"D6",6,10},
{get_ts(10,0,35),1,"D1",8,10},
{get_ts(10,0,40),1,"D1",8,10},
{get_ts(10,0,45),1,"D1",8,10},
};

Er gibt mir auf dem oled folgende abgerechnete Werte aus

940 940 940 940
940 940 680 -91

Wenn 10:00:45 abgelaufen ist verändert es sich folgendermaßen:


940 940 940 940
-51 80 958 -91

Die farbigen Werte dürfte er gar nicht auswerfen, sondern jeweils von dem betehenden ersten Wert abziehen.

Was hab ich da nur wieder angefangen, SORRY
 
Könntest du mal deine komplette config.h posten
 
Klar

Code:
#include <RTClib.h>

#define PUMPCOUNTS 9      // Number Pumps
#define RELAYCHANNELS 4
#define RELAYTIMES 6
#define KEYPADI2C 0x20
#define LCD_ADR 0x27


  // PIN MAPPING NICHT ÄNDERN!!!
  #define PIN_TEMP A1   // Temperatur
  #define RELAY1 2
  #define RELAY2 3
  #define RELAY3 4
  #define RELAY4 5
  #define DOSE7 6  
  #define DOSE6 7   
  #define DOSE5 8  
  #define DOSE4 9     // Dosierpumpe 
  #define DOSE3 10      // Dosierpumpe 
  #define DOSE2 11     // Dosierpumpe 
  #define DOSE1 12     // Dosierpumpe 

// Größe Vorratsflaschen Dünger in ml
const int dose_val = 991;

// Neu zuordnung der Pins für Dosierung
const byte dosingPins[]={DOSE1,DOSE2,DOSE3,DOSE4,DOSE5,DOSE6,};
// Milliliter per minute in Reihenfolge wie Pumpen oben Achtung Maximum 255ml/Minute
const byte dosingMlMin[]={60,60,60,60,60,60,};

// Pumpen Einstellungen
// Uhrzeit, Aktive, Name, Pin Adresse (von array oben 0 ist erste Pumpe "Dose1"), Status (ignorieren, nur wichtig für Programm), Milliliter pro Dosierungconst 
PUMP dosing[] = { 
{get_ts(10,0,5),1,"D1",8,10},
{get_ts(10,0,10),1,"D2",2,10},
{get_ts(10,0,15),1,"D3",3,10},
{get_ts(10,0,20),1,"D4",4,10},
{get_ts(10,0,25),1,"D5",5,10},
{get_ts(10,0,30),1,"D6",6,10},

{get_ts(10,0,35),1,"D1",8,10},
{get_ts(10,0,40),1,"D1",8,10},
{get_ts(10,0,45),1,"D1",8,10},
};

// Wird verwendet um zu sehen ob schon dosiert wurde. Nicht Ändern!!!
boolean dosingState[PUMPCOUNTS];

const byte relayPIN[]= {RELAY1,RELAY2,RELAY3,RELAY4};
RELAY relays[RELAYCHANNELS][RELAYTIMES] = { 
  {{get_ts(11,24,5),1},{get_ts(11,24,10),0},{get_ts(11,24,15),1},{get_ts(11,24,20),0},{get_ts(11,24,25),1},{get_ts(11,24,30),0}},
  {{get_ts(11,24,5),1},{get_ts(11,24,10),0},{get_ts(11,24,15),1},{get_ts(11,24,20),0},{get_ts(11,24,25),1},{get_ts(11,24,30),0}},
  {{get_ts(11,24,5),1},{get_ts(11,24,10),0},{get_ts(11,24,15),1},{get_ts(11,24,20),0},{get_ts(11,24,25),1},{get_ts(11,24,30),0}},
  {{get_ts(11,24,5),1},{get_ts(11,24,10),0},{get_ts(11,24,15),1},{get_ts(11,24,20),0},{get_ts(11,24,25),1},{get_ts(11,24,30),0}}
};
 
Hi,

Moritz' Code greift auf die Arrays dosingMlMin, dosing und dosingState mit den Indizes 0 bis PUMPCOUNTS-1 zu. Da kommt bei PUMPCOUNTS = 9 und nur 6-elementigen Arrays nur Schrott bei den letzten drei raus.

Deine pinAddr in dosing sind auch falsch. Die sind der Index auf den Array dosingPins. Der hat bei Dir aber nur 6 Elemente.

Grüße, Markus
 
hugo1892":2wkd65le schrieb:
// Größe Vorratsflaschen Dünger in ml
const int dose_val = 991; Komische flasche, nimm 1000 immer die volle flasche, für 500ml 500 usw.

// Neu zuordnung der Pins für Dosierung
const byte dosingPins[]={DOSE1,DOSE2,DOSE3,DOSE4,DOSE5,DOSE6,}; nach DOSE6 das komma weg
// Milliliter per minute in Reihenfolge wie Pumpen oben Achtung Maximum 255ml/Minute
const byte dosingMlMin[]={60,60,60,60,60,60,};nach letzter60 komma weg

/

und wichtig wie Omega schrieb PumpCount passend zu den Pumpen die du verwendest
 
Hallo René,

das Komma am Ende einer Array-Initialisierung ist syntaktisch optional und korrekt.

Grüße, Markus
 
ok
bei mir im code ist es nicht da und es ging trotzdem. hätt ja klappen können
Kann leider nicht testen meins ist defekt.
 
HI Rene,

das mit der Flasche hab ich nur gemacht um es besser nachvolliehen zu können.

Das Markus schreibt kann ich nicht ganz nachvollziehen.

Deine pinAddr in dosing sind auch falsch. Die sind der Index auf den Array dosingPins. Der hat bei Dir aber nur 6 Elemente.

Wie muss ich es schreiben meisnt du?

DAnke Euch
 
Oben