DIY Arduino Dosierpumpe

  • Hallo


    @ Volker:
    Kein Problem ich wollte ja nur nachfragen nicht dass ich bei der Verkabelung irgendwas total falsch anstelle, oder ob das so einfach nicht besser möglich ist


    Ben:
    Das ist das Protoshield des Uno. Das passt definitiv auf den Mega. Nur halt ganz links (über dem USB Stecker).


    lG
    Michael

  • Hi zusammen,


    das Protoshield passt auf den Mega und zwar genau auf die Plätze wo sonst das Motorshield sitzen sollte. Das Motorshield hingegen passt aber nicht auf das Protoshield. Somit bin ich noch etwas ratlos wie ich das alles an den Mega anschließen soll.

  • So, also ich habe gestern mal eine Lötvorlage erstellt. Keine Angst, es sieht vielleicht für den einen oder anderen komplizierter aus als es ist.


    Diese Lötvorlage geht in erster Linie für das Mega Board also ein Mega Protoshield, weil ich weiss dass viele sich in diesem Forum an dem Aquagrow Projekt versucht haben und es nicht fertig bringen lässt.
    Somit existieren bei veinigen Usern schon Arduino Megas und damit die sich kein Uno kaufen brauchen, habe ich eben die Mega-Protoshield Lötvorlage erstellt.


    Grundsätzlich und glücklicherweise ist es jedoch so, dass diejenigen, die allerdings doch einen Uno und auch ein Uno-Protoshield zur Hand haben trotzdem damit arbeiten können. Einziger Untershied wird sein, dass das die beiden Leitungen SDA und SCL beim Mega Port 20 und 21 sind. Diese müssen dann bei einem Uno-Protoshield zu den beiden Analogports A4 und A5 gezogen werden. Alles andere habe ich versucht so zu gestalten, dass es für beide Shields passen müsste.
    Das I2C benötigen wir für das 20x4 LCD mit I2C Backpack.


    Da ich für die RTC (DS1307) die beiden Analogports A2 (als Digital 16) und und A3 (als Digital 17) positiv getestet habe und Analogports ohnehin sonst kaum benötigt werden, werde ich die beiden Ports auch dafür verwenden.


    Um die Dosierpumpe noch etwas aufzuwerten kommen noch optionale Features hinzu:
    1. Schwimmerschalter (für eine optional einstellbare Nachfüllregelung für eine der 4 Dosierpumpen)
    2. Thermometer (um z.B. die Wassertemperatur zu überwachen)
    3. Ein Buzzer/Alarmsignalgeber (um bei überschreiten/unterschreiten oder Ausfall des Thermometers Arlam zu schlagen)


    Später kann man dann noch überlegen, ob man ein 1-Port-Relayshield an einen der noch freien Digitalports dranhängt. Somit wäre es dann möglich die Wassertemperatur mit einem ungeregelten Heizstab zu steuern. Das sollte allerdings dann ein erfahrener Elektriker an eine Steckdose durchführen/ankoppeln. Diesen Teil werde ich aus Sicherheitstechnischen Gründen nicht posten (höchstens die Anbindung des Relais-Shields). Mit 230V ist nicht zu Spaßen!


    Neben Kabelgedöns (z.B. aus eurem DIY LED Lampenbau) und Lötzinn benötigen wir 3 bedrahtete Wiederstände: 100 Ohm (100R), 10 kOhm (10k) und 4,7 kOhm (4,7k)


    De Code werde ich dann entsprechend der Hardware anpassen wenn alles fertig zusammengefrickelt ist.


    So als nächstes kommt dann eine Fotostrecke mit den Einzelnen Lötschritten für das Protoshield.

  • Hallo Ben,


    die beiden quergesetzten PIN Header auf dem Protoshield kannste abmachen, dann sollte es passen. Aber besser besorgst Du dir ein Mega Protoshield. Ansonsten musst du Dir halt eine Strippe für den I2C-Bus vom Uno-Protoshield zu den beiden Ports 20 und 21 ziehen. Ist zwar unschön geht aber zur Not auch. Kommt ja nachher ein Decke drauf. 8)

  • Hallo zusammen,


    Habe jetzt meine RTC einfach auf das Protoshield gelötet, Quick and Dirty sozusagen :D Das UNO soll sowieso bei mir nur der Prototyp sein, wenn alles funktioniert wird wieder ein Mega geholt.


    Wenn es jemanden interessiert. Ich hab hier noch ein paar DS18B20 Temperatursensoren, ähnlich denen die Volker bereits verlinkt hat (vllt sinds sogar die gleichen) und hab die gleich mal mit eingebunden.


    Wichtig ist hier, dass zwischen 5V und dem Data Kabel ein 4,7K PullUp Widerstand gelötet wird. Hier sieht man die Schaltung auf dem Bild sehr schön. Theoretisch müsste sogar nur das Datakabel reichen, dann spart man sich auch den PullUp Widerstand. Erst bei sehr hohen Temperaturen über 80 °C sollen diese Temperatursensoren einen externen Stromanschluss benötigen weil sie sonst ungenau werden. Ich hab dennoch so angeschlossen wie in dem Link.


    Data Kabel an Digital 2 des Arduino, Gnd an Gnd und 5V an 5V.


    Die Libs und den Code habe ich angehängt. Ich hoffe dir, Volker, macht es nichts aus wenn ich deinen Code hier hergenommen habe?


    Zur Erläuterung:
    Ich habe rausgemacht, dass das Display ständig die 4 Dosierzeiten durchläuft. Wenn ich später auf das Display des Computers schaue will ich ja nicht wissen wann meine Dosierzeiten sind sondern was mich interessiert ist vor Allem was meine Sensoren gerade anzeigen.
    Wenn ihr die Dosierzeiten aber wieder angezeigt haben wollte einfach das auskommentierte im Sketch display wieder einkommentieren und im Hauptsketch

    Code
    const int DISPLAY_LETZTE_SEITE = 2;



    in


    Code
    const int DISPLAY_LETZTE_SEITE = 5;



    ändern.


    Ich glaube dass man mit diesen One Wire Temperatursensoren sogar mehrere Sensoren an einen DigitalPin hängen könnte. So könnte man später ganz einfach verschiedene Temperaturen messen und belegen damit nicht alle unserer Digital Pins (z.B. Temp Hauptbecken, Technikbecken, Lampe, Raumtemperatur). Hab dazu aber noch nichts gefunden, evtl teste ich das morgen mal.



    lG
    Michael

  • Hallo die DS18B20 können parallel an einen Port gehängt werden. Jeder hat seine eigene Adresse und können so einzeln ausgelesen werden. Es ist nur ein 4.7k erforderlich, egal wie viele DS18B20

    MFG Torsten


    Gesendet von meinem GT-N8000 mit Tapatalk 2

  • Hallo Thorsten,


    Vielen Dank aber hab das mitlerweile auch schon rausgefunden. Geht echt super mit den DS18B20 :thumbup:
    Deine Zeichung stimmt aber nicht. die 5V müssen an den 4,7K PullUp Widerstand und nicht mit Gnd kurz geschlossen. So wie auf der vorhin verlinkten Seite.


    Wie du schon geschrieben hast braucht man keinen weitereen PullUp Widerstand, man muss die Widerstände einfach nur parallel schalten.


    Die Adressierung funktioniert mit der Dallas Lib übrigens ganz einfach.


    Code
    lcd.print(sensors.getTempCByIndex(index));



    Hier einfach den gewünschten index Wert eingeben beginnend mit Null.


    Ich lass in meinem Sketch jetzt bereits 2 Sensoren auslesen, geht aber theoretisch mit beliebig vielen. Wenn jemand Interesse hat lad ich nochmal den aktuellen Sketch mit 2 Sensoren hoch.


    lG
    Michael

  • Hallo ok warst schneller. Kannst du bitte den mit 2 Ds18B20 hoch laden, ich brauche noch was zum genauen messen der Wasser temperatur.
    Mfg Torsten


    Gesendet von meinem GT-N8000 mit Tapatalk 2

  • Hallo Volker,


    Danke hatte gestern keine Lust mehr danach zu suchen wie man das Grad Zeichen macht :)


    Heute kam dieses I2C Display. Anbei der Code dafür. Die Lib hab ich von hier . Soweit so gut, funktioniert ja ganz einfach wenn man die richtige Adresse des LCD weiss.
    Habe jetzt auch alle Ports so belegt wie du (also auch die Uhr auf A2/A3).


    Als keypad nehme ich übergangsweise weiter das vom 16x2 LCD (bis ich ein schöneres gefunden habe).




    lG
    Michael

Jetzt mitmachen!

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