Metronom Loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Wechseln zu: Navigation, Suche
(Grundsätzliche Überlegungen)
(Hilfestellungen und Lösung zum Metronom)
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, 20: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. Block


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