irei
Created March 24, 2019 © CC BY-SA

Calliope mini – Temperatur von Flüssigkeiten messen

Um die Temperatur von Flüssigkeiten zu messen, benötigen wir aber einen externen Fühler. Hierzu kann ein analoger Sensor genutzt werden.

IntermediateFull instructions provided1 hour3,362
Calliope mini – Temperatur von Flüssigkeiten messen

Things used in this project

Hardware components

Calliope mini
Calliope mini
×1
Temperaturfühler LM35 oder LM35DZ
×1

Software apps and online services

Open Roberta Lab - NEPOprog

Story

Read more

Schematics

Schaltungsaufbau

Der LM35 wird in einer wasserdichten Ausführung mit einer Anschlussleitung von mindestens 1 m geliefert. Die drei Adern unterteilen sich in Spannung (rot), Masse (blau) und Signal (weiß). Die Farbcodierung kann, je nach Hersteller, abweichend sein. Spannung und Masse werden mit dem Plus bzw Minus-Kontakt verbunden und das Signal an Pin 1 geklemmt. Die Spannungsversorgung erfolgt in diesem Beispiel über eine Powerbank.

NEPOprog Blöcke

Zu Beginn werden die Variablen deklariert. Die Konstanten zur Versorgungsspannung, dem Proportionalitätsfaktor (hier in V/K) und dem Offset sind an dieser Stelle anpassbar. In einer unendlichen Schleife wird dann nach Betätigung der Taste A der Wert an Pin 1 gelesen und nach Umrechnung in die Variable Temperatur geschrieben. Der Wert wird dann über die LED-Matrix ausgegeben.

Open Roberta Projekt Datei

Das kompilierte Programm als .hex-Datei ist unter folgendem Download-Link verfügbar. Nach dem Entpacken des Archivs kann die Datei einfach auf den Calliope kopiert werden und dann startet das Programm automatisch. Die Open Roberta Projektdatei ist ebenfalls als .xml im Archiv enthalten. Diese kann als Projekt in den Editor importiert werden.

Code

Code aus NEPOprog

C/C++
#define _GNU_SOURCE

#include "MicroBit.h"
#include "NEPODefs.h"
#include <list>
#include <array>
#include <stdlib.h>
MicroBit _uBit;

double Messwert;
double Temperatur;
double Faktor;
double Offset;
double Spannung;

int main()
{
    _uBit.init();
    Messwert = 0;
    Temperatur = 0;
    Faktor = 0.01;
    Offset = -3;
    Spannung = 3.3;
    
    while ( true ) {
        if ( _uBit.buttonA.isPressed() ) {
            Messwert = _uBit.io.P0.getAnalogValue();
            Temperatur = ( ( ( Messwert * Spannung ) / ((float) Faktor) ) / ((float) 1024) ) + Offset;
            _uBit.display.scroll(ManagedString(Temperatur));
        }
        _uBit.sleep(_ITERATION_SLEEP_TIMEOUT);
    }
    release_fiber();
}

Credits

irei

irei

2 projects • 0 followers

Comments