| |
arduino:bewaesserungsautomat [19.06.2016 09:12] – [Ansteuerung der Motoren mit MOSFETs] Frickelpiet | arduino:bewaesserungsautomat [18.05.2023 12:15] (aktuell) – Externe Bearbeitung 127.0.0.1 |
---|
====== Arduino Bewässerungsautomat ====== | ====== Arduino Bewässerungsautomat ====== |
Mein [[arduino:wasserstandsanzeiger|Arduino Wasserstandsanzeiger]] ist eine feine Sache, aber warum selber gießen, wenn das auch eine Maschine erledigen kann? | Mein [[arduino:wasserstandsanzeiger|Arduino Wasserstandsanzeiger]] ist eine feine Sache, aber warum selber gießen, wenn das auch eine Maschine erledigen kann? |
| <box 75% round red|**Achtung**>Da die Pumpen, die ich für diese Version des Bewässerungsautomats verwendet habe, nicht richtig funktionieren, werde ich im Winter 2018 eine neue Version bauen. Mehr dazu [[arduino:bewaesserungsautomat_v2|hier]].</box> |
| |
Aufgabenstellung für Ausbaustufe I: | Aufgabenstellung für Ausbaustufe I: |
| |
Verwendete Komponenten: | Verwendete Komponenten: |
* [[arduino:Arduino Due]] (overpowerd, aber liegt rum) | * [[arduino:Arduino Due]] |
* [[http://www.exp-tech.de/12-etape-liquid-level-sensor-extras|12" eTape Liquid Level Sensor]] | * [[http://www.exp-tech.de/12-etape-liquid-level-sensor-extras|12" eTape Liquid Level Sensor]] |
* unipolare Hallschalter (PIC H501) | * unipolare Hallschalter (PIC H501) |
===== Elektrischer Aufbau ===== | ===== Elektrischer Aufbau ===== |
==== Spannungsversorgung ==== | ==== Spannungsversorgung ==== |
Die Stromversorgung erfolgt durch eine Niedervolt-Buchse (5,5 mm Außen- und 2,5 mm Innendurchmesser; Minus-Pol außen, Plus-Pol innen) in der Unterseite des Gehäuses. Die Versorgungsspannung ist 5 Volt. Der Arduino wird mit dem Pololu 9V Step-Up/Step-Down Voltage Regulator S18V20F9 über den VIN-Pin mit 9 Volt versorgt. | Die Stromversorgung erfolgt durch eine Niedervolt-Buchse (5,5 mm Außen- und 2,5 mm Innendurchmesser; Minus-Pol außen, Plus-Pol innen) in der Unterseite des Gehäuses. **Die Versorgungsspannung ist 5 Volt.** Sie wird über ein Netzteil von Meanwell geliefert. Der Arduino wird mit dem Pololu 9V Step-Up/Step-Down Voltage Regulator S18V20F9 über den VIN-Pin mit 9 Volt versorgt. |
| |
In der Sektion I des Gehäuses ist außerdem eine Stromverteilerplatine untergebracht. Stromverteilerplatinen erleichtern die Verkabelung erheblich, da keine Kabelpeitsche gelötet werden muss. Außerdem können bei Bedarf weitere Verbraucher angeschlossen werden. | In der Sektion I des Gehäuses ist außerdem eine Stromverteilerplatine untergebracht. Stromverteilerplatinen erleichtern die Verkabelung erheblich, da keine Kabelpeitsche gelötet werden muss. Außerdem können bei Bedarf weitere Verbraucher angeschlossen werden. |
| |
Um die Neopixel vor Spannungsspitzen zu schützen (siehe dazu: https://learn.adafruit.com/adafruit-neopixel-uberguide/power) und die Spannung zu glätten wird ein Elko (10 V, 2200 Mikrofarrad) parallel geschaltet. | Um die Neopixel vor Spannungsspitzen zu schützen (siehe dazu: https://learn.adafruit.com/adafruit-neopixel-uberguide/power) und die Spannung zu glätten ist ein Elko (10 V, 2200 Mikrofarrad) parallel geschaltet. |
| |
==== Ansteuerung der Pumpen mit MOSFETs ==== | ==== Ansteuerung der Pumpen mit MOSFETs ==== |
{{:arduino:img_0985.jpg?100 |Die vier MOSFETs zur Ansteuerung der Pumpen}} Geschaltet werden die Pumpen mit einem FQP30N06L, der über einen Widerstand mit 470 Ohm an dem PWM-Ausgang des Arduinos angeschlossen ist. An den Pumpen sindFreilaufdioden (1N5817) angebracht. | {{:arduino:img_0985.jpg?100 |Die vier MOSFETs zur Ansteuerung der Pumpen}} Geschaltet werden die Pumpen mit einem FQP30N06L, der über einen Widerstand mit 470 Ohm an dem PWM-Ausgang des Arduinos angeschlossen ist. Das Gate ist über einen Widerstand mit 100 kOhm auf Masse gelegt. An den Pumpen sind Freilaufdioden (1N5817) angebracht. |
==== Hallschalter ==== | ==== Hallschalter ==== |
{{:arduino:img_0947.jpg?100 |Hallschalter mit Kabeln}} Für die Messung des Wasserpegels in den Blumenkästen kommen unipolare Hall-schalter (H501) zum Einsatz, die durch einen Neodymmagnet in einem Schwimmer geschaltet werden. Die Hallschalter werden mit 5 Volt betrieben. Nähert sich ein magnetischer Südpol, schaltet der Hallschalter den Signalpin auf GND. Im Arduino muss der interne Pullup-Widerstand aktiviert werden (INPUT_PULLUP), damit sauber zwischen HIGH und LOW differenziert werden kann (mehr zu den Pullups im [[https://www.arduino.cc/en/Tutorial/DigitalPins|Arduino-Tutorial]]). | {{:arduino:img_0947.jpg?100 |Hallschalter mit Kabeln}} Für die Messung des Wasserpegels in den Blumenkästen kommen unipolare Hall-schalter (H501) zum Einsatz, die durch einen Neodymmagnet in einem Schwimmer geschaltet werden. Die Hallschalter werden mit 5 Volt betrieben. Nähert sich ein magnetischer Südpol, schaltet der Hallschalter den Signalpin auf GND. Im Arduino muss der interne Pullup-Widerstand aktiviert werden (INPUT_PULLUP), damit sauber zwischen HIGH und LOW differenziert werden kann (mehr zu den Pullups im [[https://www.arduino.cc/en/Tutorial/DigitalPins|Arduino-Tutorial]]). |
| |
==== DHT22 ==== | ==== DHT22 ==== |
Um über eine erhöhte Feuchtigkeit im Gehäuse gewarnt zu werden, ist ein DHT22 in der Gehäusesektion I verbaut. Der Sensor kann direkt an einen digitalen Eingang angeschlossen werden, es muss aber der interne Pullup-Widerstand (INPUT_PULLUP) aktiviert werden. | {{:arduino:img_0982.jpg?100 |Der DHT22 ist das weiße Kästchen neben dem Spannungsregler}} Um über eine erhöhte Feuchtigkeit im Gehäuse gewarnt zu werden, ist ein DHT22 in der Gehäusesektion I verbaut. Der Sensor kann direkt an einen digitalen Eingang angeschlossen werden, es muss aber der interne Pullup-Widerstand (INPUT_PULLUP) aktiviert werden. |
| |
==== TSL2591 ==== | ==== TSL2591 ==== |
Ein Programm zu erstellen, das die Hallschalter überwacht und bei Bedarf die entsprechende Pumpe aktiviert ist ziemlich einfach ([[Bewässerungsautomat:Programmversion 0.1 alpha|Programmversion 0.1 alpha]]). In ([[Bewässerungsautomat:Programmversion 0.2 alpha|Programmversion 0.2 alpha]]) wurde die Einbindung des LC-Displays verworfen und die LEDs durch [[arduino:neopixels|Neopixels]] ersetzt. [[bewaesserungsautomat:programmversion_0.3|Programmversion 0.3]] wurde durch eine ganze Reihe verschiedener Funktionen erweitert. | Ein Programm zu erstellen, das die Hallschalter überwacht und bei Bedarf die entsprechende Pumpe aktiviert ist ziemlich einfach ([[Bewässerungsautomat:Programmversion 0.1 alpha|Programmversion 0.1 alpha]]). In ([[Bewässerungsautomat:Programmversion 0.2 alpha|Programmversion 0.2 alpha]]) wurde die Einbindung des LC-Displays verworfen und die LEDs durch [[arduino:neopixels|Neopixels]] ersetzt. [[bewaesserungsautomat:programmversion_0.3|Programmversion 0.3]] wurde durch eine ganze Reihe verschiedener Funktionen erweitert. |
| |
In Programmversion 0.4 wurde die Steuerung der Pumpen auf PWM umgestellt. In Programmversion 0.5 soll der Code so umgeschrieben werden, dass die NeoPixel nicht bloß ein- und ausgeschaltet werden können, sondern die Helligkeit pulsiert werden kann. Dafür ist es nötig, auf den Befehl delay() zu verzichten und stattdessen den Befehl millis() zu verwenden ([[bewaesserungsautomat:programmversion_0.5|Programmversion 0.5]]). | In Programmversion 0.4 wurde die Steuerung der Pumpen auf PWM umgestellt. In Programmversion 0.5 soll der Code so umgeschrieben werden, dass die NeoPixel nicht bloß ein- und ausgeschaltet werden können, sondern die Helligkeit pulsiert werden kann. Dafür ist es nötig, auf den Befehl delay() zu verzichten und stattdessen den Befehl millis() zu verwenden ([[bewaesserungsautomat:programmversion_0.5|Programmversion 0.5]]). [[bewaesserungsautomat:programmversion_0.6|Programmversion 0.6]] beschränkt sich auf eine Verbesserung des Fading-Effekts der NeoPixel. |
| |
Liste der Programmversionen: | Liste der Programmversionen: |
| |
| |
Tags: #3D-Druck #Arduino #Bewässerungsautomat #Elektronik | {{tag>3D-Druck Arduino Bewässerungsautomat Elektronik}} |