Metronom Loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Zeile 3: Zeile 3:


== Hilfestellungen und Lösung zum Metronom ==
== Hilfestellungen und Lösung zum Metronom ==
;Feuchtigkeit messen
;Dauerhafte Audio- und LED-Ausgabe
:Zu Beginn steuern wir den Pin P1 an und geben dort einen Strom aus.
:Damit die LEDs das Tempo in Zahlen zeitgleich mit dem Abspielen der Tönen darstellen, sind zwei Blöcke "dauerhaft" nötig. <spoiler text="Block"><pre id="pre01">
:Um die Feuchtigkeit der Erde mit dem mirco:bit messen zu können, lesen wir die Spannung an Pin P0 aus.
basic.forever(function () {
:Der Wert dieses Pins liegt zwischen 0 (kein Strom) und 1023 (maximaler Strom) und kann als Variable abgebildet werden.
    basic.showNumber(music.tempo())
: Gib der Variable einen sinnvollen Namen, wie zum Beispiel Feuchtigkeit.
})
:Der Wert dieser Variable kann als Graph auf der LED Matrix ausgegeben werden.
basic.forever(function () {
:Mit dem Befehl "plot bar graph" können Werte von Variablen grafisch dargestellt werden.
    music.playTone(262, music.beat(BeatFraction.Sixteenth))
    music.rest(music.beat(BeatFraction.Whole))
})
 
</pre>
</spoiler>


== Komplettlösungen ==
== Komplettlösungen ==

Version vom 3. Januar 2022, 19:23 Uhr

Grundsätzliche Überlegungen

Bei diesem Beispiel dreht sich alles um die Variable Tempo. Sie ist schon vorgefertigt und unter dem Abschnitt Musik zu finden. Ihr Wert wird in bpm (= beats per minute) angegeben und kann jederzeit verändert und abgerufen werden.

Hilfestellungen und Lösung zum Metronom

Dauerhafte Audio- und LED-Ausgabe
Damit die LEDs das Tempo in Zahlen zeitgleich mit dem Abspielen der Tönen darstellen, sind zwei Blöcke "dauerhaft" nötig. <spoiler text="Block">

basic.forever(function () { basic.showNumber(music.tempo()) }) basic.forever(function () { music.playTone(262, music.beat(BeatFraction.Sixteenth)) music.rest(music.beat(BeatFraction.Whole)) })

</spoiler>

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())
})



Zurück zur Aufgabe