Dosierpumpen mit Schaltsteckdosen - Ein AquaGrow Mod

MajorMadness

Active Member
unsigned long time = long(60000L * dosing.mldosing / dosingMlMin[dosing]); kann nicht funktionieren! Dabei will er ein Opjekt als Zahl auswerten und führt dazu das er den Pointer verwendet. Hier nochmaql die ganzen dateien, so wie sie bei mir komplett kompliliert:
Code:
void resetPumps(){
  if(rtc.daystamp>get_ts(23,59,30)){
    pumpReset=true;
  }
  if(rtc.daystamp<60 && pumpReset==true){
    pumpReset=false;
    for( int i=0;i < sizeof(dosingState)/sizeof(dosingState[0]); i++){
        dosingState[i]=false;
    }
  }
}
void setDosing(){
  resetPumps();
    for( int i=0;i < sizeof(dosing) / sizeof(dosing[0]); i++){
      if(dosing[i].active!=0){
        if(rtc.daystamp>=dosing[i].time && rtc.daystamp<=dosing[i].time+10 && digitalRead(dosingPins[dosing[i].pinAddr])==LOW && dosingState[i]==false){
	  unsigned long time = long(60000L * dosing[i].mldosing / dosingMlMin[dosing[i].pinAddr]);
          t.pulseImmediate(dosingPins[dosing[i].pinAddr],time, HIGH);
          dosingState[i]=true;
          printDose(dosing[i].pinAddr,dosing[i].mldosing);
        }
      }
    }
}
Code:
#define PUMPCOUNTS 7      // 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      // Dosierpumpe 
  #define DOSE6 7       // Dosierpumpe 
  #define DOSE5 8      // Dosierpumpe 
  #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 = 1000;

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

// Pumpen Einstellungen
// Uhrzeit, Aktive, Name, Pin Adresse (von array oben 0 ist erste Pumpe "Dose1") Milliliter pro Dosierung
const PUMP dosing[] = {  
{get_ts(10,0,0),1,"D1",0,5},
{get_ts(11,0,0),1,"D2",1,6},
{get_ts(11,25,0),1,"D3",2,3},
{get_ts(11,26,0),1,"D4",3,3},
{get_ts(11,23,0),1,"D3",4,3},
{get_ts(11,28,0),1,"D1",5,5},
{get_ts(11,28,0),1,"D1",6,5},
};

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

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

Ich lade es aber auch noch in github hoch als Beispiel der IDE.
 

hugo1892

Member
Hi Moritz,

mein Bau schreitet voran ;-)

Hab mal ne neue Frage.

könntest du dem Arduino auch beibrigen das z.B. Pumpe 1 nur alle 2 Tage oder 3 Tage gedüngt soll?

Pumpe 2 nur Freitags, ............

Ich hoffe ich tu dich nicht überstrapatzieren.

Danke Dir.
 

MajorMadness

Active Member
Kann ich der sicher beibringen. Ich muss dafür aber den code und libarie umschreiben da ich Tage quasi komplett ignoriere...
Habe ich grade nicht die Zeit für außer zwischendurch. Will also nix versprechen...
 

hugo1892

Member
Das ist ein Sonderwunsch und muss nicht unbedingt sein!

Mir fallen gerade eben nur Sachen ein die eben zum Komfort gehören und du vielleicht irgendwann mal mit übernehmen kannst. Dann wird die Sache nämlich für andere auch immer interessanter.
 

hugo1892

Member
Hallo Zusammen,

man soll es nicht glauben, aber ich hab es endlich auch geschafft das Teil zum laufen zu bekommen.

Natürlich dank Eurer und natürlich Moritz Unterstützung.

Hier mal ein Bild:


Ja, ich habe 6 Pumpen in das kleine Geäuse rein bekommen (schön kuschelig da drin) :gdance:

Ich hatte echt große Probleme mit den Kabelverbindungen über D-Sub, Wackelkontakte, .... aber habe es letzten Endes doch hinbekommen ohne das ständig irgend welche Kabel abfliegen :bier:

Jetzt fehlen nur noch die Düngerflaschen (müssen erst neu gemischt werden) :grow:

Eines habe heute Morgen nach der ersten Nacht jedoch feststellen müssen:

Die Uhrzeit hat sich aufgehängt und es war nichts mehr schaltbar. Nur nach einem kurzen Reset ging es wieder.

Hat das Auswirkungen auf die Schaltzeiten, oder hängt sich da nur das Display (Oled) auf?

Euch einen schönen Tag
 

Anhänge

  • IMG_0696.JPG
    IMG_0696.JPG
    525,2 KB · Aufrufe: 524

rrnetz

Member
hugo1892":2r0nkeww schrieb:
Hat das Auswirkungen auf die Schaltzeiten, oder hängt sich da nur das Display (Oled) auf?
Hi
Sehr cool gemacht, Hast noch nen besseres Bild vom dem" Schaltkasten" im Schrank.
Nein es hat keine auswirkung auf die zeiten denn die stehen ja im Sketch fest, und dann lädst es ja erst auf den Nano, also kein problem deswegen.
Aufhängen ! weis net, war es nur einmal oder passiert es jeden Tag?

Gruss Rene
 

hugo1892

Member
Hi Zusammen,

ja, die Freude währt nicht lange.

Also wie gesagt, heute morgen schau ich aufs Display, die Uhrzeit steht. (Aus und wieder an: geht)

Heute Mittag um 14 Uhr ruft mich meine Frau an: "Da rattert ständig was". (Eine Pumpe lief im Dauermodus)

Heim gekommen, Aus wieder an und die Pumpe mal abgeklemmt: Läuft erst mal wieder.

Gerade eben schau ich wieder rein: Uhr steht wieder.

Was mir auch auffällt, wenn alles unter Strom ist und ich den USB Stecker reinschieb und dann in den PC. Schalten immer wieder die Relais, bzw. alles geht aus und wieder an.

Ich hab gestern noch ein zusätzliches 5Volt Netzteil ran geklemmt um die Relais überhaupt zum schalten zu bekommen. Wie sollte ich das den anschließen.

Als erstes hab ich es zu den eh schon am VCC und GND gesteckten Kabel mit drauf gehängt (An den Relais). War das richtig?

Erst dachte ich, ich muss das Netzteil direkt an die Relais mit + und - anschließen ohne VCC und GND von der Platine. Da ging aber gar nix.

Oder ist das Netzteil zu schwach mit 5V und 500 mAh. Oder hat mein Nano einen Schuss weg?

Danke euch

P.S. ein Bild von allem gibts erst wenns funktioniert :tnx:
 

rrnetz

Member
hugo1892":vzoxv6ah schrieb:
Was mir auch auffällt, wenn alles unter Strom ist und ich den USB Stecker reinschieb und dann in den PC. Schalten immer wieder die Relais, bzw. alles geht aus und wieder an.
Das ist normal, ist bei mir auch so. Denk das liegt anm Pc wegen der erkennung.
Würd mal sagen ein 12V 1A wäre besser. Wieso hast du Relays dran, hast du 220V pumpen?
du kannst doch die pumpen direkt am Controller anschliessen.
Wegen dem stehen bleiben bzw aufhängen, müsste dir Moritz drauf antworten. Iss ja sein Code. :glaskugel:
Hast du denn sonnt noch was am code geändert ausser deine Schaltzeiten einzutragen?

Gruss
 

hugo1892

Member
Hi René,

die pumpen laufen auch ganz normal über den Controller.

Die Relais sind ja für die 230Volt Steckdosen.

Ich habe ein 12 Volt Netzteil der am Controller hängt. Das Problem ist das dieses Netzteil nicht ausreicht um die Relais noch mit zu schalten. Die Ausgangsleistung vom Nano reicht scheinbar nicht aus.

Moritz hat empfohlen noch ein weiters Netzteil anzuschließen. Jetzt ist nur die Frage ob ich das richtig angeschlossen habe. Ich hab das einfach dazwischen gepackt.

D. h. vom Controller kommt VCC und GND zur Relais Platine. dazwischen hab ich noch das 5Volt Netzteil gehängt.
Ist das richtig?

Oder GND vom Controller, dazwischen GND vom 5V Netzteil und Plus nur direkt vom Netzteil an die Relais Platine.

So hab ich es im Moment laufen. Mal schauen ob es klappt.
 

rrnetz

Member
kann ich dir nicht sagen da ich keine Relays/Steckdosen drann hat.
Hab aber irgenwo mal von Moritz gelesen das 12V 1A schon besser ware für Nano und Pumpen.
Aber schau noch mal ind den Beitrag von Moritz vom 21 Sep 2014, bei ist es seite 8,da steht einigen dazu.
Hoffe es hilft weiter
 

rrnetz

Member
Re: AW: Dosierpumpen mit Schaltsteckdosen - Ein AquaGrow Mod

Moin
Poste mal deine config

getapatalkt
 

hugo1892

Member
Guten Morgen,

das ist die Original Datei von gitHub die ich gestern runter geladen habe. Nur meine Reilais Zeiten habe ich angepasst.

Code:
#define PUMPCOUNTS 7      // 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      // Dosierpumpe 
  #define DOSE6 7       // Dosierpumpe 
  #define DOSE5 8      // Dosierpumpe 
  #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 = 1000;

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

// Pumpen Einstellungen
// Uhrzeit, Aktive, Name, Pin Adresse (von array oben 0 ist erste Pumpe "Dose1") Milliliter pro Dosierung
const PUMP dosing[] = {  
{get_ts(10,0,0),1,"D1",0,5},
{get_ts(11,0,0),1,"D2",1,6},
{get_ts(11,25,0),1,"D3",2,3},
{get_ts(11,26,0),1,"D4",3,3},
{get_ts(11,23,0),1,"D3",4,3},
{get_ts(11,28,0),1,"D1",5,5},
{get_ts(11,28,0),1,"D1",6,5},
};

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

const byte relayPIN[]= {RELAY1,RELAY2,RELAY3,RELAY4};
RELAY relays[RELAYCHANNELS][RELAYTIMES] = { 
  {{get_ts(0,0,0),1},{get_ts(10,10,0),1},{get_ts(13,30,0),1},{get_ts(14,30,0),0},{get_ts(20,0,0),0},{get_ts(20,30,0),1}},
  {{get_ts(0,0,0),1},{get_ts(10,0,0),1},{get_ts(13,30,0),0},{get_ts(14,30,0),0},{get_ts(20,0,0),1},{get_ts(20,30,0),1}},
  {{get_ts(0,0,0),0},{get_ts(10,0,0),0},{get_ts(13,30,0),0},{get_ts(14,30,0),0},{get_ts(20,0,0),0},{get_ts(20,30,0),0}},
  {{get_ts(0,0,0),1},{get_ts(10,0,0),1},{get_ts(13,30,0),1},{get_ts(14,30,0),1},{get_ts(20,0,0),1},{get_ts(20,30,0),1}}
};
 

MajorMadness

Active Member
Hi, sehr komisch das der Arduino sich weg hängt wenn er eigentlich nichts machen sollte. Ich frage mich ob es am Code liegt oder da ein anderes Problem gibt. Bisher lief es bei allen Platinen immer Störungsfrei (soweit mir bekannt ist). Bei dir scheint aber definitiv was falsch zu laufen. Meine bitte daher erstmal:
Steck die Relais und Pumpen ab und lass den Controller nur durchlaufen über 24 Stunden (Testen ob Platine Störungsfrei läuft). Dann teste nur mit Dosierpumpen, dann nur Relais, dann wieder alles. Wann und womit er hängt ist erstmal wichtig für's eingrenzen des Problems...
 
Ähnliche Themen
Themenersteller Titel Forum Antworten Datum
bastifantasti Hat Jemand Erfahrung mit elektr. Dosierpumpen?? Technik 13
B Dosierpumpen, verschiedene Hersteller? Technik 1
Mr-K Inline Dosierer für Dosierpumpen Bastelanleitungen 9
T Dosierpumpen Jebao DP-4 und Kamoer KSP-F03A Technik 2
M Dosierpumpen über Homematic steuern Technik 6
Erwin Dosierpumpen - Es wird immer unerträglicher.... Technik 5
T Dosierpumpen für Düngerautomatisierung ;) Bastelanleitungen 8
M Dünger über Dosierpumpen zuführen! Technik 5
O Dosierpumpen Anlage bauen Technik 21
R Pflanzenwachstum bei KH 0 mit Tropica Soil – Erfahrungen und Empfehlungen? Pflanzen Allgemein 11
S Start in die Aquaristik mit einem Zimmer Teich Paludarien 6
H Probleme mit Mangelerscheinung Erste Hilfe 7
H Chihiros LED A251 mit Denerle 20L Nanobecken zu viel Licht? Beleuchtung 6
D Wasserpantscher Photometer mit „Fremdtests“ Technik 0
L RF Wireless mit Solid LS verbinden Technik 0
Heiko Muth (Sumpfheini) Cryptocoryne siamensis jetzt wieder mit Art-Status Pflanzen Allgemein 1
Maj.Monogwam Biete Co2 Flasche mit Diffusor 500g Biete Technik / Zubehör 0
Maj.Monogwam Biete Eheim 126L Aquarium mit Unterschrank! Raum Erfurt/Thüringen Biete Technik / Zubehör 0
Maj.Monogwam Biete 2KG Co2-Anlage US-Aquaristik mit TÜV! Biete Technik / Zubehör 0
N Osmoseanlage Proline X3 mit sera GH/KH-plus 250 ml und sera shrimp mineral salt 100 ml Aufsalzen Nährstoffe 42

Ähnliche Themen

Oben