Wetterstation Lösung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 16: | Zeile 16: | ||
<li>Ändere nun im Block '''zeige LEDs''' z.B. das mittlere LED der Anzeige und setz hier einen Punkt. So signalisiert uns der micro:bit, dass er zum Messen bereit ist nachdem das Programm gestartet wurde. <spoiler text="Schritt 2 - Blöcke"><pre id="pre02">basic.showLeds(`. . . . . . . . . . . . # . . . . . . . . . . . .`)</pre></spoiler></li> | <li>Ändere nun im Block '''zeige LEDs''' z.B. das mittlere LED der Anzeige und setz hier einen Punkt. So signalisiert uns der micro:bit, dass er zum Messen bereit ist nachdem das Programm gestartet wurde. <spoiler text="Schritt 2 - Blöcke"><pre id="pre02">basic.showLeds(`. . . . . . . . . . . . # . . . . . . . . . . . .`)</pre></spoiler></li> | ||
<li>Wähle unter dem rosa gefärbten Begriff '''Eingabe''' den Block '''wenn Knopf A gedrückt''' und ziehe ihn nach rechts in den Arbeitsbereich. Klicke auf das kleine, nach unten zeigende Pfeilzeichen '''A'''. Wir wollen den digitalen Wert der Temperatur bei Druck auf den Knopf A auslesen und anzeigen. <spoiler text="Schritt 3 - Blöcke"><pre id="pre03">input.onButtonPressed(Button.B, function () {}</pre></spoiler></li> | |||
<li>TESTESTESTESTESTESTEST</li> | |||
<li>Wähle unter dem neu hinzugekommen orangen Begriff '''DHT11/DHT22''' den großen Block '''Query DHT11''' und ziehe ihn nach rechts in den Arbeitsbereich. Klicke auf das kleine, nach unten zeigende Pfeilzeichen '''A''' und ändere dies auf '''B'''. Wir wollen den analogen Wert bei Druck auf den Knopf B auslesen und anzeigen. <spoiler text="Schritt 1 - Blöcke"><pre id="pre01">input.onButtonPressed(Button.B, function () {}</pre></spoiler></li> | <li>Wähle unter dem neu hinzugekommen orangen Begriff '''DHT11/DHT22''' den großen Block '''Query DHT11''' und ziehe ihn nach rechts in den Arbeitsbereich. Klicke auf das kleine, nach unten zeigende Pfeilzeichen '''A''' und ändere dies auf '''B'''. Wir wollen den analogen Wert bei Druck auf den Knopf B auslesen und anzeigen. <spoiler text="Schritt 1 - Blöcke"><pre id="pre01">input.onButtonPressed(Button.B, function () {}</pre></spoiler></li> | ||
<li>Klappe die schwarz gefärbte Kategorie '''Fortgeschritten''' auf und ziehe den Block '''analoge Werte von Pin P0''' unter dem dunkelrot gefärbten Begriff '''Pins''' direkt in den '''weißen Bereich 0''' des Blocks '''setze TempWert auf 0'''. <spoiler text="Schritt 3 - Blöcke"><pre id="pre03">input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0)}</pre></spoiler></li> | <li>Klappe die schwarz gefärbte Kategorie '''Fortgeschritten''' auf und ziehe den Block '''analoge Werte von Pin P0''' unter dem dunkelrot gefärbten Begriff '''Pins''' direkt in den '''weißen Bereich 0''' des Blocks '''setze TempWert auf 0'''. <spoiler text="Schritt 3 - Blöcke"><pre id="pre03">input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0)}</pre></spoiler></li> |
Version vom 29. Dezember 2021, 18:18 Uhr
Schritt für Schritt
Öffne den micro:bit Block-Editor, um ein Programm für den BBC micro:bit zu schreiben: https://makecode.microbit.org/
Grundgerüst der Lösung
- Durch Ansteuern des digitalen Sensors (Erweiterung) über einen Pin übergibt dieser die aktuellen Messwerte an den micro:bit.
- Wir lesen danach entweder die Temperatur oder die Luftfeuchtigkeit, und geben diese Werte jeweils auf Knopfdruck aus.
- Wenn der Knopf A gedrückt wird soll die Temperatur erscheinen. Und bei Drücken von Knopf B soll die Luftfeuchtigkeit angezeigt werden.
Lösungsschritte
- Klappe die schwarz gefärbte Kategorie Fortgeschritten auf und klicke dort auf Erweiterungen. Tippe in der erscheinenden Suchmaske dht22 und EINGABE ein. Nun fügst du durch Klicken auf das Bild DHT11_DHT22 die Erweiterung für den hier verwendeten Sensor hinzu. <spoiler text="Vorbereitung - Erweiterung"></spoiler>
- Wähle unter dem blau gefärbten Begriff Grundlagen den Block zeige LEDs und ziehe diesen nach rechts in den Arbeitsbereich direkt in den Block beim Start. <spoiler text="Schritt 1 - Blöcke">
basic.showLeds(`. . . . . . . . . . . . . . . . . . . . . . . . .`)
</spoiler> - Ändere nun im Block zeige LEDs z.B. das mittlere LED der Anzeige und setz hier einen Punkt. So signalisiert uns der micro:bit, dass er zum Messen bereit ist nachdem das Programm gestartet wurde. <spoiler text="Schritt 2 - Blöcke">
basic.showLeds(`. . . . . . . . . . . . # . . . . . . . . . . . .`)
</spoiler> - Wähle unter dem rosa gefärbten Begriff Eingabe den Block wenn Knopf A gedrückt und ziehe ihn nach rechts in den Arbeitsbereich. Klicke auf das kleine, nach unten zeigende Pfeilzeichen A. Wir wollen den digitalen Wert der Temperatur bei Druck auf den Knopf A auslesen und anzeigen. <spoiler text="Schritt 3 - Blöcke">
input.onButtonPressed(Button.B, function () {}
</spoiler> - TESTESTESTESTESTESTEST
- Wähle unter dem neu hinzugekommen orangen Begriff DHT11/DHT22 den großen Block Query DHT11 und ziehe ihn nach rechts in den Arbeitsbereich. Klicke auf das kleine, nach unten zeigende Pfeilzeichen A und ändere dies auf B. Wir wollen den analogen Wert bei Druck auf den Knopf B auslesen und anzeigen. <spoiler text="Schritt 1 - Blöcke">
input.onButtonPressed(Button.B, function () {}
</spoiler> - Klappe die schwarz gefärbte Kategorie Fortgeschritten auf und ziehe den Block analoge Werte von Pin P0 unter dem dunkelrot gefärbten Begriff Pins direkt in den weißen Bereich 0 des Blocks setze TempWert auf 0. <spoiler text="Schritt 3 - Blöcke">
input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0)}
</spoiler> - Wähle unter dem blau gefärbten Begriff Grundlagen den Block zeige Zahl 0 und füge diesen Block in die Klammer wenn Knopf B gedrückt als letzte Zeile hinzu. <spoiler text="Schritt 4 - Blöcke">
input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(0)}
</spoiler> - Wähle unter dem rot gefärbten Begriff Variablen den Block TempWert und ziehe den Block direkt in den weißen Bereich 0 des Blocks zeige Zahl 0. <spoiler text="Schritt 5 - Blöcke">
input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(TempWert)}
</spoiler> - Wähle unter dem blau gefärbten Begriff Grundlagen den Block pausiere (ms) 100 und füge diesen Block in die Klammer wenn Knopf B gedrückt als letzte Zeile hinzu. Ändere den Wert 100 auf 1000 ms zur Verbesserung der Anzeige. <spoiler text="Schritt 6 - Blöcke">
input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(TempWert) basic.pause(1000)}
</spoiler>
Fertig, dein Messinstrument ist einsatzbereit!
Miß nun zwei mindestens 10 ° Celsius unterschiedliche Temperaturwerte und schreibe dir jeweils Temperatur ° Celsius/ Temperaturwert micro:bit (0-1023) auf.
Danach führst du die Errechnung der Kalibrierungswerte wie angegeben durch.
Großartig, du hast es geschafft. Gratuliere!
Flussdiagramm
TO DO
Lösung
Eine vollständige Lösung kannst du hier vergleichen. <spoiler text="Lösung">
</spoiler>