Pflanzenbewässerung Lösung: Unterschied zwischen den Versionen
(→Detailschritte) |
(→Detailschritte) |
||
Zeile 13: | Zeile 13: | ||
== Detailschritte== | == Detailschritte== | ||
− | |||
Die Messeinheit wurde bereits beim Pflanzenwächter entwickelt und programmiert | Die Messeinheit wurde bereits beim Pflanzenwächter entwickelt und programmiert | ||
<ol> | <ol> | ||
+ | <pre id="pre01"> | ||
let reading = 0 | let reading = 0 | ||
led.setBrightness(64) | led.setBrightness(64) | ||
Zeile 34: | Zeile 34: | ||
}) | }) | ||
+ | </pre> | ||
</ol> | </ol> | ||
+ | |||
+ | |||
+ | <htmlet>makecode_embed</htmlet> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Für das Pumpwerk wird parallel zur Anzeige der Servo programmiert | Für das Pumpwerk wird parallel zur Anzeige der Servo programmiert |
Version vom 18. Januar 2022, 17:48 Uhr
Inhaltsverzeichnis
Grundsätzliche Überlegungen
Wir wissen vom Pflanzenwächter, dass die Leitfähigkeit des Bodens von der Kombination von Wasser- und Bodennährstoffen abhängig ist. Ist die Erde zu trocken, soll ein Pumpwerk Wasser aus einem Glas in den Blumentopf pumpen. Als Pumpwerk dient ein 180 Grad Servo und z.B. ein Strohhalm.
Hilfestellung
Wenn der micro:bit mit Strom versorgt ist, wird die Feuchtigkeit der Erde gemessen. Wird ein Wert (Erfahrungsgemäß 500) unterschritten ist die Erde sozusagen trocken und die Pumpe schaltet sich aktiv. (Für Demonstrationen kann als Auslöser auch z.B. die Taste B programmiert werden) Der Servo pumpt immer wieder bist der Schwellenwert wieder überschritten wird.
Detailschritte
Die Messeinheit wurde bereits beim Pflanzenwächter entwickelt und programmiert
let reading = 0 led.setBrightness(64) basic.forever(function () { pins.analogWritePin(AnalogPin.P1, 1023) reading = pins.analogReadPin(AnalogPin.P0) pins.analogWritePin(AnalogPin.P1, 0) led.plotBarGraph( reading, 1023 ) if (input.buttonIsPressed(Button.A)) { basic.showNumber(reading) } })
Für das Pumpwerk wird parallel zur Anzeige der Servo programmiert
-
</pre>
basic.forever(function () {
if (input.buttonIsPressed(Button.A)) {
basic.showNumber(reading)
}
if (reading < 500) {
basic.showIcon(IconNames.Umbrella)
pins.servoWritePin(AnalogPin.P2, 0)
basic.pause(3000)
pins.servoWritePin(AnalogPin.P2, 80)
basic.pause(3000)
pins.analogWritePin(AnalogPin.P2, 0)
}
basic.pause(5000)
})
</pre>
Komplettlösungen