DIY Arduino Dosierpumpe

  • Kleine Info von mir. Ich hab den Code letzte Woche fundamental umgeschrieben und übersichtlicher gestaltet. Zudem auch die Anbindung von 2 Temperatursensoren und eine Alarmfunktion eingebaut.
    Ich werde den Code ende dieser oder anfang nächste Woche posten, weil ich diese Woche unterwegs bin und ich den Code moch testen muss.


    Der hat in dieser Ausführung leider den Nachteil, dass er gür den Arduino nicht mehr funktioniert, weil der Speicherplatz nicht ausreicht. :(
    Wenn man allerdingseine implementierten 10 Dosierzeiten reduziert, könnte es auch wieder für den Uno passen.
    Weitere Features werden dann noch Folgen.
    Ich denke wir sollten dann auch eine Erweiterung vorsehen um weitere Dosierpumpen zu addaptieren.


    Ich versuche die Bauanleitung nächsten Montag zu beginnen. Da hätte ich ein wenig Zeit.


    Gruß,
    Volker

  • Hallo Volker,


    Ich denke mal du meinst es geht nicht mehr für den Arduino UNO , der Mega sollte ja vom Speicherplatz ausreichend sein.


    Ich wollte aber eigentlich etwas anderes fragen. Ich hatte die Woche die Idee, dass man die Hintergrundbeleuchtung vom LCD nicht ständig laufen lässt (ist ja einfach nur unnütz). Gibt es da irgendeine Möglichkeit das Backlight auszuschalten und per Knopfdruck wieder anzumachen?
    Das rein im Code zu implementieren scheint wohl nicht so einfach zu sein. Ich hätte jetzt die Idee gehabt einfach einen ganz normalen Kippschalter zwischen 5V und dem LCD einzulöten. So könnte man ganz einfach das LCD ein und wieder ausschalten.


    Spricht da irgendwas dagegen?


    lG
    Michael

  • Ja, hab mich wohl falsch ausgedrückt.


    Klar,
    Baue ich auch noch in den Code mit ein. Dann kann man einstellen, wann man das Display aus haben möchte. Z.b. Nachts zu bestimmten Zeiten. Und wenn man im Menü herum spielt, geht das Display an.




    Sent from my iPhone using Tapatalk

  • Hi,
    ich hab mal ne Frage:
    Ich habe auch meine Pumpe fertig: Dadrin steckt ein Arduino mit RTC und ein 4fach Relaisboard (http://www.ebay.de/itm/Neu-4-C…chnik&hash=item4ab473efc6) aus Übersee.


    Dosierpumpen: 4x http://www.ebay.de/itm/Schlauc…umpen&hash=item51a0acb28b


    Die Stromversorgung sieht wie folgt aus:
    - 12 V liegen am Arduino an
    - die selben 12 V liegen an den 4 Relaisausgängen an
    - 5V zapfe ich hinter einem 7805 direkt ab und nutze sie als Schaltspannung für die Relais, da ich gemerkt habe, dass der Strom der 4 AUsgangspins nicht ausreicht


    Mein Problem ist, dass der Arduino sehr häufig abschmiert, wenn ich die Pumpen anschalte. Ich bin noch am checken ob es ein Softwarefehler ist, schließe das aber eigentlich aus.


    Was mich viel mehr interessieren würde: Läuft eure Pumpenstromversorgung über einen getrennten Stromkreis (extra Netzteil)?
    Oder habt ihr die Pumpen mittels Diode und Kondensator abgesichert? Bei Motoren macht man sowas ja.


    Vielleicht hat ja jemand einen guten TIpp für mich


    VG
    Thorsten


    Trotzdem hier mal mein aktueller Codestand, vielleicht habt ihr ja dazu Tipps:


  • Hallo Thorsten,


    Also mit dem iphone kann ich Deinen Code nicht richtig checken. Mir fällt nur auf, dass Deine ganzen Methoden innerhalb der Schleife steht. Das macht das lesen recht schwierig, würde deshalb empfehlen alle Methoden ausserhalb setup() und loop() zu schreiben. Aber das nur am Rande.


    Also ich besitze ein 5V Relaisboard um 230V zu schalten. Das funktioniert eigentlich auch ziemlich gut mit den 5V Digitalausgängen des Arduino. In der Regel sollten die Magnetspulen der Motoren immer gegen eine Freilaufdiode abgesichert werden. Ich muss mal schauen, ob im Motorshield welche integriert sind, wenn micht, müssen die noch dran.
    Des Weiteren werden unsere Pumpen bereits in einem elektrischem Gerät (von BASF) verbaut geliefert. Dort sind die Pumpen bereits abgesichert und somit könnte man deren Diode in der Verkabelung recyceln. Braucht sich also nicht extra eine Diode für den Motor besorgen.


    Gruß,
    Volker



    Sent from my iPhone using Tapatalk

  • Achso, bei uns wird eigentlich dasselbe Netzteil für arduino und Motorshield verwendet.
    Beides muss nur separat bestromt werden.
    Wer das Motorshield mit 24V betreiben möchte muss das Shield bei C7 und C8 mit 25V Kondensatoren ausrüsten und ein DC-DC Konverter (z.B. den günstigen einstellbaren aus meiner Stückloste) zwischen Netzteil und Arduino Stromversorgung zwischensetzen, weil der keine 24V verträgt.



    Sent from my iPhone using Tapatalk

  • Ich habe gerade gelesen, das jede der 4 H-Brücken über eine Diode ("kickback protection diode") abgesichert ist. Man benötigt also nicht unbedingt eine weitere Sicherung des jeweiligen Arduino-Ports über eine Schutzdiode.



    Sent from my iPhone using Tapatalk

  • Hi Volker,


    werde mir deinen Code mal alternativ anschauen. Aber eigentlich ist meiner schon recht übersichtlich.
    Was meinst Du mit "alle Methoden in der Setup/Loop"? Kürzer als bei mir geht die Loop doch gar nicht ;)

    Code
    void loop() {  if (neustart == true) {
    	milliliter = EEPROM.read(0);
    	neustart=false;
    	blinkNeu();
      }
      checkPower();
      getTime();
      autoDose();
      doseAll();   }



    Wie gesagt, ich habe nicht die gleichen Pumpen wie du. Aber ich werde es auf jeden Fall mal mit Dioden versehen und schauen, ob ich damit stabiler laufe. Wenn nicht, werde ich einfach mit 2 Netzteilen arbeiten.


    Werd mir auhc mal Deinen Part mit der Kalibrierung anschauen, die ist bei mir aktuell fix vercoded.

  • Hi Volker,


    Welchen Vorwiderstand braucht man denn? Hab ein bisschen rumgespielt und das Backlight bleibt bei mir dunkel :(
    Finde auch leider kein Datenblatt zum Display.


    Es ist das I2C Display von Sainsmart (20x4)


    lG
    Michael

  • Ich würds erstmal mit 1k machen. Ich hatte auch irgendwo mal etwas darüber gefunden. Finds aber grad nicht auf die Schnelle. Wuchtig ist erstmal dass man in dieser Version zumindest an den Backlight port des Display über den Jumper dran kommt.



    Sent from my iPhone using Tapatalk

  • Hallo Volker,


    Ich habe diese Version. Auf dem zweiten Bild sieht man den Jumper. Laut Sainsmart dient dieser der Hintergrundbelichtung.


    Funktioniert aber leider bei mir überhaupt nicht :(
    Habs schon mit allen Widerständen von 68 - 1kOhm probiert, ohne Erfolg. Muss der Widerstand in Reihe oder parallel?


    lG
    Michael

  • Hallo Michael,
    Ich habe diese Woche leider nicht die Möglichkeit das ausprobieren, da ich unterwegs bin, aber Grundsätzlich ist es so, dass die letzten beiden Pins des LCD für die Hintergrundbeleuchtung zuständig sind. Der vorletzte Pins ist + und mit dem Jumper verbunden. Der letzte Pin ist GND (-) und auch irgendwo verbunden. Verfolge einfach die Leuterbahn und konnektiere diesen Ground an einer geeigneten Stelle mit dem GND des arduino. Die Hintergrundbeleuchtung ist ja auch nur eine LED und müsste auf jeden Fall mit 1k funktionieren.


    Wie auch immer. Wenns nicht funktioniert, lass erstmal alles so wie es ist, d.h. Jumper wieder drauf und mit dem Befehl: "noBacklight" kann man die Hintergrundbeleuchtung zwar nicht dimmen aber schonmal ausschalten.


    Grüsse Volker



    Sent from my iPhone using Tapatalk

  • Hi,
    habe mir das gestern noch mal angeschaut, ich habe sogar schon Caps und Dioden eingebaut gehabt.
    Ich muss irgendein anderes Hardware Problem haben.
    Habe noch mal mit einer einfachen digitalWrite Abfolge getestet und selbst da spinnt die Anlage ein wenig.


    VIelleicht liegts am Relay. Habe mir jetzt auch mal ein MotorShield bestellt, ist vielleicht doch ganz sinnvoll. Zumindest ein Versuch wert und bei dir klappts ja wunderbar damit.


    Mal ne Frage dazu, da ich aus deinem Code nicht so ganz schlau werde:
    Wie steuerst du die Motoren an? Wenn ich das richtig sehe läuft das über I2C. Nutzt du dazu die adafruit Library? (https://github.com/adafruit/Adafruit-Motor-Shield-library)


    Man kann damit auch variable Pumpgeschwindigkeiten einstellen, dass müsste ja eigentlich auch mit den Pumpen funktionieren.
    Wie läuft das bei dir mit der Kalibrieirung? Wenn zwei Pumpen unterschiedlich viel pumpen, lässt Du sie unterschiedlich schnell laufen um die gleiche Menge zu erhalten oder einfach nur unterschiedlich lange bei voller GEschwindigkeit (255)?


    VG
    Thorsten

  • Derzeit laufen dieozmoen bei mir mit einem normalen Powershield ohne Library. Ich habe allerdings letztens schon die Adafruit getestet und sie auch bald in meinen Code einpflegen. Die derzeitige volumetrische Kalibrierung basiert erstmal auf 1 Geschwindigkeit. Ich werde den Code aber mit der Adafruit Library sukkzessive optimieren, sodass sodass die Kalibrierung auch für andere Pumpgeschwindigkeiten passen wird.
    Wenn gewünscht kann ich dann auch noch eine Schlauchlängenkalibrierung einbauen, sodass man ( ich glaube bei der Arka Pumpe habe ich das gelesen ) nach jedem Pumpzyklus das zu dosierende Element wieder zurück in das Konzentratbehältnis gepumpt wird.
    Das ist jetzt vielleicht ein interessantes Feature, aber ob es wirklich von Nöten ist glaube ich nicht.


    Zur Funktion der jetzigen Kalibrierung, die im zuletzt geposteten Sketch im Menü noch etwas unübersichtlich ist:


    Kalibriert wird folgendermaßen:
    1. Der Schlauch wird mit deranuell Funktion (An) komplett mit Testflüssigkeit (z.B. Wasser) befüllt.
    2. entweder eine 50ml Spritze oder einen kleinen Messzylinder am Schlauchende platzieren bzw. Spritze überstülpen.
    3. "Set Time Loop" aktivieren. Es wird 60 Sekunden Flüssigkeit gefördert.
    4. gepumptes Volumen in ml im Menü unter " Kalibrierung" eintragen. Fertig!


    Wie schon geschrieben. Optimierungen folgen!



    Sent from my iPhone using Tapatalk

  • Hallo Volker,


    Vielen Dank mit dem Tipp noBacklight(), genau das habe ich gesucht.


    Heute kam endlich mein Motorshield. Jetzt wollte ich mal wissen wie du das Motorshield anschliesst. Du hast ja bereits angesprochen, dass du entweder 24V mit Spannungswandler für ein Netzteil hernehmen willst (dafür muss ein Kondensator umgelötet werden), oder einfach 2 Spannungsquellen nutzen kannst.
    Wo schliesse ich dann das zweite Netzteil an und welche Leistung braucht man da ? Ich sehe am Shield nur ein 5V und einen 9V Eingang, brauche ich also ein 9V Netzteil?


    Wie schliesst man die Pumpen an. Die haben ja 2 Anschlüsse, + und -. Am Shield gibts auch zwei Ausgänge für jedes "M", aber ohne irgendwelche Polaritätsangaben. Zwischen zwei Pumpen ist dazu auch noch Gnd Anschluss?


    Wäre froh wenn du mir antworten könntest weil ich heute wsl noch zum Conrad komme :)


    Vielen Dank


    lG
    Michael

  • Hi Michael,


    ich würde dir raten, zwei Netzteile zu nehmen, wenn du die Pumpen mit 24v versorgen möchtest.
    12V lassen sich noch recht easy über einen 7805er SPannungsregler auf 5V runterregeln bzw. der Arduino hat den schon verbaut. FÜr 24v gibts den nicht, da brauchst du schon ne andere Schaltung. Außerdem ist es besser, beide Komponenten galvanisch zu trennen (meine Meinung).
    Ich denke, du musst dann den Jumper (schau mal im Link unten) ruasnehmen oder setzen, damit das Board nicht die Arduino Spannung sondern die externe Spannung nutzt.

    Das 5v (oder max 12v) Netzteil steckst du einfach in den Hohlstecker des Arduinos.
    Das 24V Netzteil kommt an die Inputklemme des Motorshields. Hier ist es wichtig auf Polarität zu achten, da du sonst das board schrotten kannst. Also kurz mit nem Multimeter Plus und Minuspol des Netzteils messen.




    Ich habe das shield noch nicht vorliegen, schau mal hier, da gibts einiges an INfos: http://learn.adafruit.com/adaf…shield/power-requirements



    VG



Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!