Metronom Loesung
Grundsätzliche Überlegungen
Hilfestellungen und Lösung zum Metronom
- Feuchtigkeit messen
- Zu Beginn steuern wir den Pin P1 an und geben dort einen Strom aus.
- Um die Feuchtigkeit der Erde mit dem mirco:bit messen zu können, lesen wir die Spannung an Pin P0 aus.
- Der Wert dieses Pins liegt zwischen 0 (kein Strom) und 1023 (maximaler Strom) und kann als Variable abgebildet werden.
- Gib der Variable einen sinnvollen Namen, wie zum Beispiel Feuchtigkeit.
- Der Wert dieser Variable kann als Graph auf der LED Matrix ausgegeben werden.
- Mit dem Befehl "plot bar graph" können Werte von Variablen grafisch dargestellt werden.
- Versuch
- Setze die Nägel in trockene Erde. Es sollen nun die meisten LEDs abschalten.
- Setze die Nägel in feuchte Erde Nun sollten die meisten LEDs angehen.
- Sensordaten und Werte
- Bisher haben wir nur eine ungefähre Vorstellung davon, was der Sensorwert ist. Ergänzen wir, dass der aktuelle Messwert nur anzeigt wird, wenn die Taste A gedrückt wird.
- Versuch
- Setze die Nägel in die trockene Erde, drücke A und notieren den Wert. Der Wert sollte im Bereich von 250 liegen.
- Setze die Nägel in die feuchte Erde, drücke A und notieren den Wert. Der Wert sollte im Bereich von 1000 liegen.
- Verschwende keine Energie
- Wir möchten, dass die Batterien lange Zeit halten und daher können wir den Code optimieren. Unser Feuchtigkeitssensor soll nicht zu viel Energie verbrauchen.
- Wenn wir den Stromkreis direkt an den 3V Pin anschließen. Wird diese Messenheit dauerhaft mit Strom versorgt.
- Stattdessen können wir den Stromkreis mit Pin 3 (P1) verbinden und diesen Pin nur während der Messung einschalten. Dies spart Strom und vermeidet außerdem Korrosion an den Erdsonden (in unserem Fall Nägel).
- Wir können auch die Helligkeit des Bildschirms senken, um den Energieverbrauch der LEDs zu senken.
- Die Bodenfeuchtigkeit ändert sich sehr langsam, so dass wir sie nicht ständig messen müssen. Mit einer Pause von ca. 5 Sekunden kann zusätzlich Energie gespart werden.
Komplettlösungen
input.onButtonPressed(Button.A, function () { music.changeTempoBy(-5) }) input.onButtonPressed(Button.B, function () { music.changeTempoBy(5) }) music.setTempo(100) basic.forever(function () { music.playTone(262, music.beat(BeatFraction.Sixteenth)) music.rest(music.beat(BeatFraction.Whole)) }) basic.forever(function () { basic.showNumber(music.tempo()) })
- Eine mögliche Lösung