Wetterstation Lösung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Wechseln zu: Navigation, Suche
K (Lösung)
(Lösungsschritte)
 
(57 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
 
==Grundgerüst der Lösung==
 
==Grundgerüst der Lösung==
 
:<ol>
 
:<ol>
:Teil 1 - vor Messung von zwei Temperaturwerten und Errechnung der [[Thermometer_kalibrieren |Kalibrierungswerte]]
+
:<li>Durch Ansteuern des digitalen Sensors mit der Makecode Erweiterung DHT11/22 über einen Daten-Pin übergibt dieser die aktuellen Messwerte an den micro:bit.</li>
:<li>Durch Auslesen des analogen Spannungswertes eines Pins kann der micro:bit als Messgerät verwendet werden.</li>
+
:<li>Wir lesen danach entweder die Temperatur oder die Luftfeuchtigkeit, und geben diese Werte jeweils auf Knopfdruck aus.</li>
:<li>Die Spannung des micro:bits von 3 Volt wird durch die elektronische Schaltung (Thermistor + Widerstand) und etwas Wartezeit (ca. 5-10 Min.) auf die aktuelle Temperatur eingestellt.</li>
+
:<li>Wenn der Knopf A gedrückt wird soll die Temperatur erscheinen. Und bei Drücken von Knopf B soll die Luftfeuchtigkeit angezeigt werden.</li>
:<li>Dann lesen wir die Spannung an PIN 0 aus und bilden diesen Wert in einer Variable ab.</li>
 
:<li>Den Spannungswert der Variablen geben wir zur Kalibrierung bei Drücken des Knopfs B im Display aus.</li>
 
:Teil 2 - nach Errechnung der [[Thermometer_kalibrieren |Kalibrierungswerte]]
 
:<li>Die eingelesene Variable muss nur noch in eine Temperatur umgewandelt werden, </li>
 
:<li>Der umgerechnete Wert wird durch Drücken des Knopfs A im Display angezeigt.</li>
 
 
</ol>
 
</ol>
  
==Lösungsschritte - Teil 1==
+
==Lösungsschritte==
<ol>
+
<ol start=0>
<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''' 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 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">[[Datei:Dht11-22-erweiterung.png|200px]]</spoiler></li>
  
<li>Wähle unter dem rot gefärbten Begriff '''Variablen''' den Block '''Erstelle eine Variable...''' auf gib der Variable den Namen '''TempWert'''. Ziehe den Block '''setze TempWert auf 0''' nach rechts in den Arbeitsbereich direkt in den Block '''wenn Knopf B gedrückt'''. <spoiler text="Schritt 2 - Blöcke"><pre id="pre02">input.onButtonPressed(Button.B, function () {TempWert = 0}</pre></spoiler></li>
+
<li>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"><pre id="pre01">basic.showLeds(`. . . . . . . . . . . . . . . . . . . . . . . . .`)</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&nbsp;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>Ä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 blau gefärbten Begriff '''Grundlagen''' den Block '''zeige Zahl&nbsp;0''' und füge diesen Block in die Klammer '''wenn Knopf B gedrückt''' als letzte Zeile hinzu. <spoiler text="Schritt 4 - Blöcke"><pre id="pre04">input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(0)}</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. 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>Wähle unter dem rot gefärbten Begriff '''Variablen''' den Block '''TempWert''' und ziehe den Block direkt in den '''weißen Bereich&nbsp;0''' des Blocks '''zeige Zahl &nbsp;0'''. <spoiler text="Schritt 5 - Blöcke"><pre id="pre05">input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(TempWert)}</pre></spoiler></li>
+
<li>Wähle nun den neu hinzugekommen '''orangen''' Begriff '''DHT11/DHT22''' für die Erweiterung von Makecode zur Verwendung des externen Sensors. Ziehe den dort einzig vorhandenen großen Block '''Query DHT11''' nach rechts direkt in den Block '''wenn Knopf A gedrückt'''. <spoiler text="Schritt 4 - Blöcke">[[Datei:Dht11-22-block.png|300px]]</spoiler></li>
  
<li>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"><pre id="pre06">input.onButtonPressed(Button.B, function () {TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(TempWert) basic.pause(1000)}</pre></spoiler></li>
+
<li>Ändere den neuen '''orangen''' Block '''Query DHT11''' auf DHT22, falls du diese Sensortype, wie hier im Beispiel angegeben, benutzt. Setzte im selben Block '''Data pin P0''' auf den PIN P0 und alle drei weiteren Einstellungen auf '''wahr'''. <spoiler text="Schritt 5 - Blöcke">[[Datei:Dht11-22-block-fertig.png|300px]]</spoiler></li>
  
Fertig, dein Messinstrument ist einsatzbereit!<br>
+
<li>Wähle unter dem blau gefärbten Begriff '''Grundlagen''' den Block '''zeige Text "&nbsp;"''' und füge diesen Block in die Klammer '''wenn Knopf A gedrückt''' als letzte Zeile unter den großen Block '''Query DHT22''' hinzu. Ändere den leeren Platz ("&nbsp;") gleich, sodass '''zeige Text "T"''' zur Anzeige der Temperatur erscheint. <spoiler text="Schritt 6 - Blöcke">[[Datei:Dht11-22-zeigeT.png|300px]]</spoiler></li>
Miß nun zwei mindestens 10 &deg; Celsius unterschiedliche Temperaturwerte und schreibe dir jeweils Temperatur &deg; Celsius/ Temperaturwert micro:bit (0-1023) auf.<br>
 
Danach führst du die [[Thermometer_kalibrieren |Errechnung der Kalibrierungswerte wie angegeben durch.]]
 
</ol>
 
 
 
==Lösungsschritte - Teil 2==
 
<ol start=7>
 
<li>Kopiere dir den Lösungsteil 1 durch rechts Klicken auf die Klammer '''wenn Knopf B gedrückt''' und anschließend '''Duplizieren'''. Klicke auf das kleine, nach unten zeigende Pfeilzeichen '''B''' und ändere dies auf '''A''' damit dein Code nicht schraffiert angezeigt wird und ungültig bleibt.
 
<spoiler text="Schritt 7 - Blöcke">
 
<pre id="pre07">
 
    input.onButtonPressed(Button.A, function () {
 
    TempWert = pins.analogReadPin(AnalogPin.P0)
 
    basic.showNumber(TempWert)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
 
 
<li>Für die Errechnung (Kalkulation) des Temperaturwertes benötigen wir eine neue Variable. Wähle unter dem rot gefärbten Begriff '''Variablen''' den Block '''Erstelle eine Variable...''' auf gib der Variable den Namen '''TempCalc'''. Ändere im Block '''setze TempWert auf analoge Werte von Pin P0''' auf '''TempCalc'''. Klicke dazu auf das kleine, nach unten zeigende Pfeilzeichen '''TempWert''' und ersetze es mit '''TempCalc'''. Erledige diese Änderung auch bei '''zeige Zahl TempWert''' und stelle auf '''TempCalc''' um.
 
<spoiler text="Schritt 8 - Blöcke">
 
<pre id="pre08">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0)
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
 
 
<li>Die Umrechnung des Messwertes erfolgt in drei Teilaufgaben. <br>
 
1. Teilaufgabe: Nullpunktverschiebung.<br>
 
Da der micro:bit keinen negativen Strom an den Pins misst, wir der Nullpunkt zur ev. Messung von Minusgraden nach unten verschoben. Aus der Errechnung der Kalibrierungswerte ergibt dies z.B. '''199.65'''. Dieser Wert wird nun vom gemessenen analogen Wert von Pin P0 abgezogen.<br>
 
Wähle dazu unter dem violett gefärbten Begriff '''Mathematik''' die Subtraktion '''0 - 0''' und ziehe sie in den Platz bei Knopf A bei '''analoge Werte von Pin P0''' hinein. Dadurch rutscht '''analoge Werte von Pin P0''' wieder heraus und wird schraffiert daneben angezeigt. Keine Sorge, wir reparieren das im nächsten Schritt gleich wieder.
 
<spoiler text="Schritt 9 - Blöcke">
 
<pre id="pre09">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = 0 - 0
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>Ziehe den schraffiert angezeigten Block '''analoge Werte von Pin P0''' in den ersten weißen Bereich '''0''' wieder hinein und tippe mit der Tastatur in den zweiten weißen Bereich '''0''' den errechneten Wert z.B. '''199.65''' ein. <br>Damit ist die 1. Teilaufgabe erledigt und sieht etwa so aus.
+
<li>Wähle unter dem blau gefärbten Begriff '''Grundlagen''' den Block '''pausiere (ms) 100''' und füge diesen Block in die Klammer '''wenn Knopf A gedrückt''' als letzte Zeile hinzu.  Ändere den Wert '''100''' auf '''1000''' ms zur Verbesserung der Anzeige. <spoiler text="Schritt 7 - Blöcke">[[Datei:Dht11-22-pausiere.png|300px]]</spoiler></li>
<spoiler text="Schritt 10 - Blöcke">
 
<pre id="pre10">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>2. Teilaufgabe: Umrechnung und auf eine Kommastelle runden.<br>
+
<li>Wähle unter dem blau gefärbten Begriff '''Grundlagen''' den Block '''zeige Text ""''' und füge diesen Block in die Klammer '''wenn Knopf A gedrückt''' als letzte Zeile hinzu. <spoiler text="Schritt 8 - Blöcke">[[Datei:Dht11-22-zeigeT2.png|300px]]</spoiler></li>
Die Umrechnung erfolgt durch Division des TempCalc-Wertes mit dem errechneten Steigungswert der Geraden z.B. 13.066. Dazu wähle den Block '''setze TempCalc auf 0''' aus dem Bereich der '''Varaiblen''' und platziere ihn direkt in die zweite Zeile unter '''setze TempCalc auf analoge Werte von Pin P0 - 199.65'''.
 
<spoiler text="Schritt 11 - Blöcke">
 
<pre id="pre11">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = 0
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>Bring den Divisionsblock aus dem Bereich Mathematik in den weißen Bereich '''0''' und füge die Variable '''TempCalc''' und die Zahl 1.3066 durch eintippen in das Feld der Division ein. Warum hier die Steigung um eine Kommastelle nach rechts verschoben wurde, wird im nächsten Schritt erklärt.
+
<li>Wähle unter dem neu hinzugekommen '''orangen''' Begriff '''DHT11/DHT22''' den Block '''Read humidity''' und ziehe ihn gleich in der leeren Bereich von '''zeige Text "&nbsp;"''' aus vorigem Schritt hinein. Ändere '''Read humidity''' sogleich in '''Read temperature''', da wir ja bei Knopf A die Temperatur anzeigen wollen. <spoiler text="Schritt 9 - Blöcke">[[Datei:Dht11-22-leseTemp.png|300px]]</spoiler></li>
<spoiler text="Schritt 12 - Blöcke">
 
<pre id="pre12">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = TempCalc / 1.3066
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>Der micro:bit kann runden, aber nur auf ganze Zahlen! Daher füge aus dem Bereich '''Mathematik''' die Berechnung '''runden 0''' an die Stelle wo '''TempCalc / 1.3066''' in der zweiten Zeile der Klammer '''wenn Knopf A gedrückt''' steht ein. Dadurch rutscht '''TempCalc / 1.3066''' wieder heraus und wird schraffiert daneben angezeigt. Keine Sorge, wir reparieren das im nächsten Schritt gleich wieder.
+
Du bist schon beinahe fertig, dein Messinstrument für die Temperatur ist einsatzbereit.<br>
<spoiler text="Schritt 13 - Blöcke">
 
<pre id="pre13">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = Math.round(0)
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>Ziehe den schraffiert angezeigten Block '''TempCalc / 1.3066''' in den weißen Bereich von '''runden 0''' wieder hinein. <br>Damit ist die 2. Teilaufgabe erledigt und sieht etwa so aus.
+
<li>Zur Komplettierung der Aufgabe ist nun Kopieren erlaubt ;-). Kopiere den gesamten Code des Blocks '''wenn Knopf A gedrückt''' durch Drücken der rechten Maustaste und der Auswahl '''Duplizieren'''. Der kopierte Code wird nun schraffiert dargestellt. Keine Sorge, das reparieren wir gleich wieder.</li>
<spoiler text="Schritt 14 - Blöcke">
 
<pre id="pre14">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = Math.round(TempCalc / 1.3066)
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>3. Teilaufgabe: Verschiebung um eine Kommastelle nach rechts.<br>
+
<li>Wähle im schraffierten Bereich der Kopie '''wenn Knopf A gedrückt''' das kleine, nach unten zeigende Pfeilzeichen A und ändere dies auf B damit dein Code nicht schraffiert angezeigt wird und wieder gültig wird.</li>
Der Wert von '''TempCalc''' wird nun durch einfache Division um eine Dezimalstelle nach rechts verschoben, d.h. '''/ 10'''. Dazu wähle den Block '''setze TempCalc auf 0''' aus dem Bereich der '''Varaiblen''' und platziere ihn direkt in die dritte Zeile unter '''setze TempCalc auf runden(TempCalc /1.3066)'''.
 
<spoiler text="Schritt 15 - Blöcke">
 
<pre id="pre15">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = Math.round(TempCalc / 1.3066)
 
    TempCalc = 0
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>Bring den Divisionsblock aus dem Bereich Mathematik in den weißen Bereich '''0''' und füge die Variable '''TempCalc''' und die Zahl 10 durch eintippen in das Feld der Division ein. Damit wird '''TempCalc''' um eine Dezimalstelle nach rechts verschoben und wir erhalten das Ergebnis der Umrechnung mit genau einer Nachkommastelle. <br>Damit ist die 3. Teilaufgabe erledigt und die Umrechnung komplett. Das Ergebnis sieht etwa so aus.
+
<li>Nun müssen nur noch die Einstellungen von '''Temperatur''' auf '''Luftfeuchtigkeigt''' ''engl. hunmidity'' geändert werden. Klicke dazu in '''zeige Text "T"''' und ändere dies auf '''zeige Text "H"'''. Ändere danach '''zeige Text Read temperature''' auf '''zeige Text Read humidity'''. <spoiler text="Schritt 12 - Blöcke">[[Datei:Dht11-22_knopfB.png|300px]]</spoiler></li>
<spoiler text="Schritt 16 - Blöcke">
 
<pre id="pre16">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = Math.round(TempCalc / 1.3066)
 
    TempCalc = TempCalc / 10
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
  
<li>Zum besseren Verständnis der Anzeige des Temperaturwertes kannst du noch den Block '''zeige LEDs''' aus dem Bereich '''Grundlagen''' einfügen und '''&deg; C''' im Display erscheinen lassen gefolgt von einer kurzen Pause. Hol dir die zwei Blöcke und füge sie direkt nach der dritten Zeile '''setze TempCalc...''' ein. Der fertige Code sieht dann etwa so aus.
+
Voila, du hast es geschafft. Gratuliere!
<spoiler text="Schritt 17 - Blöcke">
 
<pre id="pre17">
 
    input.onButtonPressed(Button.A, function () {
 
    TempCalc = pins.analogReadPin(AnalogPin.P0) - 199.65
 
    TempCalc = Math.round(TempCalc / 1.3066)
 
    TempCalc = TempCalc / 10
 
    basic.showLeds(`
 
        # . # # .
 
        . # . . .
 
        . # . . .
 
        . # . . .
 
        . . # # .
 
        `)
 
    basic.pause(300)
 
    basic.showNumber(TempCalc)
 
    basic.pause(1000)
 
})</pre></spoiler></li>
 
 
 
Großartig, du hast es geschafft. Gratuliere!
 
 
</ol>
 
</ol>
 
==Flussdiagramm==
 
TO DO
 
  
 
==Lösung==
 
==Lösung==
 
Eine vollständige Lösung kannst du hier vergleichen. <spoiler text="Lösung">
 
Eine vollständige Lösung kannst du hier vergleichen. <spoiler text="Lösung">
<pre id="pre99">
+
[[Datei:Dht11-22-komplett.png|400px]]
input.onButtonPressed(Button.A, function () {
 
    dht11_dht22.queryData(
 
    DHTtype.DHT22,
 
    DigitalPin.P0,
 
    true,
 
    true,
 
    true
 
    )
 
    basic.showString("T")
 
    basic.pause(1000)
 
    basic.showString("" + (dht11_dht22.readData(dataType.temperature)))
 
})
 
input.onButtonPressed(Button.B, function () {
 
    dht11_dht22.queryData(
 
    DHTtype.DHT22,
 
    DigitalPin.P0,
 
    true,
 
    true,
 
    true
 
    )
 
    basic.showString("H")
 
    basic.pause(1000)
 
    basic.showString("" + (dht11_dht22.readData(dataType.humidity)))
 
})
 
basic.showLeds(`
 
    . . . . .
 
    . . . . .
 
    . . # . .
 
    . . . . .
 
    . . . . .
 
    `)
 
</pre>
 
 
</spoiler>
 
</spoiler>
  
[[Temperatur_(digital)_und_Luftfeuchtigkeit|zurück zur Aufgabe]]
+
[[Wetterstation|zurück zur Aufgabe]]
  
 
<htmlet>makecode_embed</htmlet>
 
<htmlet>makecode_embed</htmlet>

Aktuelle Version vom 11. März 2022, 19:52 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

  1. Durch Ansteuern des digitalen Sensors mit der Makecode Erweiterung DHT11/22 über einen Daten-Pin übergibt dieser die aktuellen Messwerte an den micro:bit.
  2. Wir lesen danach entweder die Temperatur oder die Luftfeuchtigkeit, und geben diese Werte jeweils auf Knopfdruck aus.
  3. Wenn der Knopf A gedrückt wird soll die Temperatur erscheinen. Und bei Drücken von Knopf B soll die Luftfeuchtigkeit angezeigt werden.
  4. Lösungsschritte

    1. 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. Vorbereitung - Erweiterung
    2. 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. Schritt 1 - Blöcke
    3. Ä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. Schritt 2 - Blöcke
    4. Wähle unter dem rosa gefärbten Begriff Eingabe den Block wenn Knopf A gedrückt und ziehe ihn nach rechts in den Arbeitsbereich. Wir wollen den digitalen Wert der Temperatur bei Druck auf den Knopf A auslesen und anzeigen. Schritt 3 - Blöcke
    5. Wähle nun den neu hinzugekommen orangen Begriff DHT11/DHT22 für die Erweiterung von Makecode zur Verwendung des externen Sensors. Ziehe den dort einzig vorhandenen großen Block Query DHT11 nach rechts direkt in den Block wenn Knopf A gedrückt. Schritt 4 - Blöcke
    6. Ändere den neuen orangen Block Query DHT11 auf DHT22, falls du diese Sensortype, wie hier im Beispiel angegeben, benutzt. Setzte im selben Block Data pin P0 auf den PIN P0 und alle drei weiteren Einstellungen auf wahr. Schritt 5 - Blöcke
    7. Wähle unter dem blau gefärbten Begriff Grundlagen den Block zeige Text " " und füge diesen Block in die Klammer wenn Knopf A gedrückt als letzte Zeile unter den großen Block Query DHT22 hinzu. Ändere den leeren Platz (" ") gleich, sodass zeige Text "T" zur Anzeige der Temperatur erscheint. Schritt 6 - Blöcke
    8. Wähle unter dem blau gefärbten Begriff Grundlagen den Block pausiere (ms) 100 und füge diesen Block in die Klammer wenn Knopf A gedrückt als letzte Zeile hinzu. Ändere den Wert 100 auf 1000 ms zur Verbesserung der Anzeige. Schritt 7 - Blöcke
    9. Wähle unter dem blau gefärbten Begriff Grundlagen den Block zeige Text "" und füge diesen Block in die Klammer wenn Knopf A gedrückt als letzte Zeile hinzu. Schritt 8 - Blöcke
    10. Wähle unter dem neu hinzugekommen orangen Begriff DHT11/DHT22 den Block Read humidity und ziehe ihn gleich in der leeren Bereich von zeige Text " " aus vorigem Schritt hinein. Ändere Read humidity sogleich in Read temperature, da wir ja bei Knopf A die Temperatur anzeigen wollen. Schritt 9 - Blöcke
    11. Du bist schon beinahe fertig, dein Messinstrument für die Temperatur ist einsatzbereit.

    12. Zur Komplettierung der Aufgabe ist nun Kopieren erlaubt ;-). Kopiere den gesamten Code des Blocks wenn Knopf A gedrückt durch Drücken der rechten Maustaste und der Auswahl Duplizieren. Der kopierte Code wird nun schraffiert dargestellt. Keine Sorge, das reparieren wir gleich wieder.
    13. Wähle im schraffierten Bereich der Kopie wenn Knopf A gedrückt das kleine, nach unten zeigende Pfeilzeichen A und ändere dies auf B damit dein Code nicht schraffiert angezeigt wird und wieder gültig wird.
    14. Nun müssen nur noch die Einstellungen von Temperatur auf Luftfeuchtigkeigt engl. hunmidity geändert werden. Klicke dazu in zeige Text "T" und ändere dies auf zeige Text "H". Ändere danach zeige Text Read temperature auf zeige Text Read humidity. Schritt 12 - Blöcke
    15. Voila, du hast es geschafft. Gratuliere!

    Lösung

    Eine vollständige Lösung kannst du hier vergleichen. Lösung


    zurück zur Aufgabe