Calliope und Mbed              

           
Elektronik-Labor   Projekte   Microbit 



Das Ziel ist eine möglichst schnelle Datenerfassung mit dem Calliope. Und das Programm soll möglichst voll kompatibel zum Micro:bit sein. In Mbed wird daher die Datei mbed.h eingebunden, nicht aber microbit.h, die spezifische Details nur für den Micro:bit enthält. Außerdem war die Hoffnung, dass damit mehr freier Speicher im RAM für Messdaten bleibt. Tatsächlich konnten 1000 Float-Werte (32 Bit) gespeichert werden. Die Daten stammen vom analogen Eingang an P2.

Hier der Quelltext zum Kopieren:

include "mbed.h"

DigitalOut col0(P0_4, 0);
DigitalOut myled(P0_13);
AnalogIn u2(p2);

int main() {
float d[1000];
uint16_t n=0;
for (n=0; n<1000;n++){
d[n]=(u2.read());

}
for (n=0; n<1000;n++){
//printf("%d\r\n",n);
printf("%f\r\n",255*d[n]);
}
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}


Die Daten werden mit maximaler Geschwindigkeit gemessen und dann mit 9600 Baud gesendet. Um sie leichter darstellen zu können, wird der Messbereich auf  0...255 verschoben.



Für die Ausgabe wurde der serielle Plotter in der aktuellen Arduino-IDE verwendet. Die Messung zeigt die Störspannung, wenn ich mit dem Finger den Eingang P2 berühre. Man sieht genau zwei volle 50 Hz-Schwingungen in 500 Messpunkten, verziert mit Oberwellen und Störsignalen, die teilweise von einer Leuchtstoffröhre stammen. Man beachte die exakte Übereinstimmung der Signale bei beiden Schwingungen. Zwei volle 50-Hz-Perioden bedeuten 40 ms, die Abtastzeit beträgt also 0,08 ms und die Abtastrate 12,5 kHz. Gar nicht mal so schlecht für ein kleines Oszilloskop.



Elektronik-Labor   Projekte   Microbit