Lüftungsassistent Loesung: Unterschied zwischen den Versionen
(→Hilfestellungen und Lösung zum Metronom) |
(→Komplettlösungen) |
||
Zeile 15: | Zeile 15: | ||
== Komplettlösungen == | == Komplettlösungen == | ||
− | + | <pre id="01"> | |
− | + | input.onButtonPressed(Button.A, function () { | |
− | + | grad_pfeil = 180 | |
+ | for (let index = 0; index < 30; index++) { | ||
+ | basic.pause(1000) | ||
+ | grad_pfeil = grad_pfeil - 6 | ||
+ | pins.servoWritePin(AnalogPin.P1, grad_pfeil) | ||
+ | } | ||
+ | music.playMelody("G B A G C5 B A B ", 120) | ||
+ | for (let index = 0; index < 30; index++) { | ||
+ | basic.pause(2000) | ||
+ | grad_pfeil = grad_pfeil + 6 | ||
+ | pins.servoWritePin(AnalogPin.P1, grad_pfeil) | ||
+ | } | ||
+ | music.playMelody("A F A F A F A F ", 120) | ||
+ | }) | ||
+ | let grad_pfeil = 0 | ||
+ | pins.servoWritePin(AnalogPin.P1, 180) | ||
+ | basic.forever(function () { | ||
+ | |||
+ | }) | ||
+ | |||
+ | </pre> |
Version vom 2. Januar 2022, 16:05 Uhr
Grundsätzliche Überlegungen
Der Servo-Motor funktioniert ähnlich wie der Minutenzeiger einer Uhr. Während der Minutenzeiger jedoch nur im Uhrzeigersinn läuft und 60 Minuten auf 360° aufteilt (6° pro Minute), bewegt sich der Servo-Motor in beide Richtungen und unterteilt die voreingestellte Zeitdauer auf 180°.
Hilfestellungen und Lösung zum Metronom
- Ausgangsstellung Servo-Motor und Pfeil
- Zu Beginn setzen wir den Winkel des Servo-Motors auf 180°.
- Der Pfeil wird passend auf den Servo-Motor geklebt. Der Pfeil zeigt auf das rote Ende der Skala ("Fenster öffnen").
- Pfeilbewegung und Zeitintervall
- Wir unterteilen die zur Verfügung stehenden1 180° in 6° Schritte.
- Nach einer bestimmten Dauer soll der Pfeil jeweils um 6° weiterspringen. Dieser Vorgang wird 30x wiederholt.
- Akustischer Hinweis
- Sobald der Pfeil bei 0°, bzw. 180° angekommen ist, soll uns der micro:bit ein akustisches Signal zum Öffnen und Schließen der Fenster geben.
Komplettlösungen
input.onButtonPressed(Button.A, function () { grad_pfeil = 180 for (let index = 0; index < 30; index++) { basic.pause(1000) grad_pfeil = grad_pfeil - 6 pins.servoWritePin(AnalogPin.P1, grad_pfeil) } music.playMelody("G B A G C5 B A B ", 120) for (let index = 0; index < 30; index++) { basic.pause(2000) grad_pfeil = grad_pfeil + 6 pins.servoWritePin(AnalogPin.P1, grad_pfeil) } music.playMelody("A F A F A F A F ", 120) }) let grad_pfeil = 0 pins.servoWritePin(AnalogPin.P1, 180) basic.forever(function () { })