DIY Arduino Dosierpumpe

  • Hallo zusammen,


    also ich ziehe das ganze jetzt mal von hinten auf.


    Ich habe meinen Arduino Sketch auf ein Minimum reduziert und daraus eine Dosierpumpensteuereinheit programmiert, mit der man initial 4 Dosierpumpen steuern kann. Soll heißen, man kann:


    1. Jeden Kanal manuell ein/aus-schalten
    2. Jeden Kanal auf volumetrische Dosierung kalibrieren. (Geht ganz einfach: Schlauch an Spritze; Set Time Loop-Button klicken, abwarten Volumen von Spritze ablesen und in einen dafür vorgesehenen Platzhlter eintragen; fertig!)
    3. Theoretisch unendlich viele Dosierzeiten pro Tag vergeben: Initial nur 1 (man düngt ja in der Regel nur 1 mal am Tag, abgesehen von Balling)


    Viele weitere Funktionen kann man natürlich noch hinzufügen, wie z.B. nachträglich eine Nachfüllautomatik mit zusätzlicher Schlauchpumpe, Temperaturüberwachung, etc.


    Natürlich alles ohne Ethernet gedöns. Man hat ein simples Menü, das man über ein Keypad steuern kann. Mehr nicht!


    Nun habe ich schonmal im Aquagrow Projekt angegeben, was man alles dafür braucht (Links hierfür sind beispielsweise im Post: 66). Neben dem Arduino (am Besten Mega für spätere Erweiterungsmöglichkeit) benötigt man halt ein RTC Modul, ein 16x2 LCD Keypad, ein Motordrive shield, um 4 Dosierpumpen anzuschließen am Besten ein Protoshield für den Mega (oder man bastelt sich selbst eine Huckepackplatine aus einer Lochrasterplatine) und natürlich 4 Dosierpumpen aus der Bucht und ein kleines Netzteil.


    Kostet in der Regel um 30-40 Euro für die Elektronik (exkl. Dosierpumpen). Vielleicht findet ihr ja auch günstigere Varianten


    Günstige Varianten gibts z.B. hier:


    Proto Kit:


    http://www.ebay.de/itm/2210412…_trksid=p3984.m1423.l2649


    Dosierpumpen:
    http://www.ebay.de/itm/1510936…_trksid=p3984.m1423.l2649



    Also wenn genug Interesse da ist, dann kann ich den gesamten Aufbau für jedermann simpel erklärt hier als Tutorium aufziehen.


    Die Sache hat dann nur einen kleinen Haken. Da ich auch sonst einen Hauptberuf habe, werde ich nicht immer direkt antworten können. Aber es gibt hier bestimmt einige Elektroniker die weiterhelfen können.

  • Hoi


    Natürlich ist da Interesse dran und ich denke nicht nur von meiner Seite aus.


    Jedoch hört sich das für mich sehr kompliziert an und da wäre ich dir sehr verbunden wenn du mal so einen schönen Leitfaden erstellen könntest.
    Vielleicht traue ich mich dann doch mal daran.


    Auf jedenfall super interessante Geschichte.


    Sven

  • Weil ich das immer über ein Relay Board gemacht habe und bin da bis jetzt immer gut mit aus gekommen.
    Naja ich schalte das aber auch über mein Raspberry.

  • Hallo Volker,


    also an einer Schritt für Schritt Erklärung samt Bildern für Neueinsteiger in die Materie gibts es sicherlich sehr viel Interesse! Vielen Dank schon einmal für deine Bemühungen!


    MfG Norman

  • So in etwa würde das Initialprogramm dann aussehen:


    [http://youtu.be/0WqGD90mcVc



    Hier ist jetzt noch kein Motorshield im Einsatz. Hier wird nur ein Arduino Mega, keypad LCD LCD und RTC-Modul (Real Time Clock, also eine Uhr mit Batterie) verwendet.


    Mit einem USB Kabel wird der Arduino mit dem PC zum Upload des Programmes verbunden, dazu aber später mehr. Das Gute hierbei ist, der Controler wird gleichzeitig über USB mit Strom versorgt.
    Alternativ steht später natürlich noch der vorhandene separate Netzstecker am Arduinoboard bereit.

  • Externer Inhalt m.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Hallo
    Super kommt gerade richtig habe sogar schon alle Teile hir liegen, muss mir nur noch das Display mit Tasten und das motorschield bestellen. Ich hatte schon versucht das selber hin zu bekommen aber leider bekomme ich das alles zusammen nicht ans laufen. Einzelne Teile ja aber alles zusammen nicht.


    Danke noch mal für deine Mühe Mfg Torsten


    Gesendet von meinem GT-N8000 mit Tapatalk 2

  • Hallo Torsten,



    das bekommen wir schon hin.


    Alternativ geht auch folgendes:


    http://www.lipoly.de/index.php…iption=1&keyword=keyboard



    Das benutze ich für meinen Riffcomputer, weil es sich besser ins Gehäuse basteln lässt. Man muss nur die Knopfbelegung anpassen.


    Und dazu halt ein HD44780, 2004 (also 20x4) LCD oder 16x2 ohne Keypad.


    http://www.ebay.de/sch/i.html?…d+2004&_sacat=0&_from=R40



    Wenn man sich dazu ein I2C LCD Backpack holt (gibts meisstens in der Bucht auch als Kombi) dann spart man sich einige Ports, weil alles mit nur 2 Pins (man sagt zu I2C auch two wire) gesteuert wird. Dafür gibts dan eine separate Library. Man verwendet dann nicht mehr die Liquid Crystal Library sondern diejenige mit dem Zusatz I2C.
    Aber für den Anfang kann man natürlich auch erstmal mit dem fertigen Kombi LCD beginnen, weil die Tasten schon direkt drauf sind.

  • Wer schon eingermaßen Fit ist kann schonmal mit dem Dosierpumpensketch rumspielen. Dazu gibts die Library für die Uhr, also das RTC-Modul von Henning Karlsen die einfach mit durch die vorhandene ersetzt wird (am Besten macht ihr aber eine Sicherheitskopie der vorhandenen!).


    Diese Library ist deswegen so interessant, weil sie es uns ermöglicht, jeden Pin des Boards zu benutzen. Man ist nicht auf die beiden Pins für SDL und SCA angewiesen. So stehen uns die beiden Ports SDA und SCL (Arduino Uno: Digital 4 und 5; Mega: Digital 20 und 21) für andere wichtigere Dinge bereit wie z.B. eine LCD Benutzung via I2C Backpack.


    Man muss im Code nur die beiden Pins 20,21 mit anderen Pins, die man benutzen möchte umbenennen. Ich verwende zum Beispiel ganz gerne Digital-Pin 40 und 41.



    Im Ürbrigen habe ich die Library ein bißchen modifiziert, sodass die deutsche Übersetzung der Tage angezeigt werden.


    Ansonsten werde ich dann mal in Kürze anfangen im Schnellverfahren die wichtigsten Basics zu erklären und eine Bauanleitung zu erstellen.

  • Hallo
    Super das teil von lipoy habe ich gesucht, jetzt nur noch das teil für i2c Ansteuerung, , für das Display. Ich habe immer mit den normalen Displays rumgespielt, und auch einige Sketche aus dem Netz durchprobiert, leider habe ich es durch die Verwendung des i2c Anschluss nicht hingekommen.
    Dann werde ich heute noch ein paar Teile bestellen, ich dosiere zur Zeit jeden Tag per Hand, das nerft langsam.
    Mfg Torsten


    Gesendet von meinem GT-N8000 mit Tapatalk 2

  • Hallo
    Habe gerade mir mal Sketch angeschaut, ich sehe gerade das ich eine math.h brauche. Habe schon danach im Netz geschaut ich finde sie nicht zum download. Ist es möglich das du alle erforderlichen Libraries online stellst. Die neue DS1307 habe ich schon im Libraries Ordner.


    das sind die Fehlermeldungen die ich bekomme :115E17~112:


    Danke Torsten


    Dosierpumpe_20130827:19: error: 'Time' does not name a type
    Dosierpumpe_20130827:21: error: 'Time' does not name a type
    Dosierpumpe_20130827:11: error: 'DS1307' does not name a type
    Dosierpumpe_20130827:30: error: 'Time' does not name a type
    Dosierpumpe_20130827:77: error: 'Time' does not name a type
    Dosierpumpe_20130827:89: error: 'Time' does not name a type
    Dosierpumpe_20130827:101: error: 'Time' does not name a type
    Dosierpumpe_20130827:113: error: 'Time' does not name a type
    Dosierpumpe_20130827.ino: In function 'void setup()':
    Dosierpumpe_20130827:141: error: 'rtc' was not declared in this scope
    Dosierpumpe_20130827:150: error: 'Dosierung1' was not declared in this scope
    Dosierpumpe_20130827:159: error: 'Dosierung2' was not declared in this scope
    Dosierpumpe_20130827:168: error: 'Dosierung3' was not declared in this scope
    Dosierpumpe_20130827:177: error: 'Dosierung4' was not declared in this scope
    Dosierpumpe_20130827.ino: In function 'void loop()':
    Dosierpumpe_20130827:195: error: 'Time' was not declared in this scope
    Dosierpumpe_20130827:195: error: expected `;' before 'time'
    Dosierpumpe_20130827:198: error: 'time' was not declared in this scope
    Dosierpumpe_20130827:237: error: 'time' was not declared in this scope
    Dosierpumpe_20130827:249: error: 'Dosierung1' was not declared in this scope
    Dosierpumpe_20130827:250: error: 'Dosierung2' was not declared in this scope
    Dosierpumpe_20130827:251: error: 'Dosierung3' was not declared in this scope
    Dosierpumpe_20130827:252: error: 'Dosierung4' was not declared in this scope
    display.ino: In function 'void Display(int)':
    display:14: error: 'rtc' was not declared in this scope
    display:18: error: 'FORMAT_SHORT' was not declared in this scope
    display:33: error: 'Dosierung1' was not declared in this scope
    display:48: error: 'Dosierung2' was not declared in this scope
    display:63: error: 'Dosierung3' was not declared in this scope
    display:78: error: 'Dosierung4' was not declared in this scope
    menuWerte.ino: At global scope:
    menuWerte:50: error: 'Time' does not name a type
    menuWerte:156: error: 'Time' does not name a type
    menuWerte.ino: In function 'void setDisplayDate(int, int, int)':
    menuWerte:237: error: 'Time' was not declared in this scope
    menuWerte:237: error: expected `;' before 't'
    menuWerte:242: error: 't' was not declared in this scope
    menuWerte:244: error: 't' was not declared in this scope
    menuWerte:246: error: 't' was not declared in this scope
    menuWerte:250: error: 't' was not declared in this scope
    menuWerte:252: error: 't' was not declared in this scope
    menuWerte:254: error: 't' was not declared in this scope
    menuWerte:272: error: 'rtc' was not declared in this scope
    menuWerte:272: error: 't' was not declared in this scope
    menuWerte.ino: In function 'void setDisplayDow(int, int, int)':
    menuWerte:292: error: 'Time' was not declared in this scope
    menuWerte:292: error: expected `;' before 't'
    menuWerte:297: error: 't' was not declared in this scope
    menuWerte:309: error: 'rtc' was not declared in this scope
    menuWerte:309: error: 't' was not declared in this scope
    menuWerteSetzen.ino: In function 'void MenuWerteSetzen()':
    menuWerteSetzen:22: error: 'rtcClock' was not declared in this scope
    menuWerteSetzen:22: error: 'rtc' was not declared in this scope
    menuWerteSetzen:23: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:28: error: 'rtcClock' was not declared in this scope
    menuWerteSetzen:28: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:29: error: 'rtc' was not declared in this scope
    menuWerteSetzen:84: error: 'Dosierung1' was not declared in this scope
    menuWerteSetzen:84: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:87: error: 'Dosierung1' was not declared in this scope
    menuWerteSetzen:87: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:150: error: 'Dosierung2' was not declared in this scope
    menuWerteSetzen:150: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:153: error: 'Dosierung2' was not declared in this scope
    menuWerteSetzen:153: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:216: error: 'Dosierung3' was not declared in this scope
    menuWerteSetzen:216: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:219: error: 'Dosierung3' was not declared in this scope
    menuWerteSetzen:219: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:282: error: 'Dosierung4' was not declared in this scope
    menuWerteSetzen:282: error: 'setDisplayTime' was not declared in this scope
    menuWerteSetzen:285: error: 'Dosierung4' was not declared in this scope
    menuWerteSetzen:285: error: 'setDisplayTime' was not declared in this scope

  • Das Keypad ist eigentlich von DFrobot, allerdings haben die das nicht mehr im Angebot auf der HP. Schade eigentlich. Dafür gibts bei denen jetzt größere Einbaukeypads.


    Ich werde hier allerdings erstmal alles ohne das I2C LCD Backpack erklären. Wer es unbedingt mit I2C machen möchte kann es gerne machen. Ist halt ein zusätzliches Bauteil was Geld kostet. Wer es allerdings schon hat kann froh sein, denn es ist schon eine echte Erleichterung.

  • Hallo Torsten,


    Papperlapapp, entpacke die gesamte Zip in einen Ordner. Dann öffnest Du "Dosierpumpe_20130827", alle anderen Files die benötigt werden öffnen sich dann automatisch in Arduino.


    Wichtig: Alles Files müssen unbedingt im selben Ordner sein, sonst findet die SW nicht die dazugehörigen Files.


    Du hast wahrscheinlich das falsche File geöffnet!


    math brauchst du nicht!

Jetzt mitmachen!

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