Programmierung des Arduino Due

Für unseren Stratosphärenballon haben wir uns einen eigenen NTC-Temperatursensor angeschafft, um herauszufinden wie sich die Temperatur verändert je nach Höhe des Ballons. Allerdings funktioniert so ein Heißleiter ja nicht von alleine, sondern ist lediglich ein Widerstand, der sich je nach Temperatur verändert. Bei einem NTC wird der Widerstand größer, je kleiner die Temperatur wird, was sich in einer besseren Auflösung innerhalb der Minusgerade widerspiegelt.

Um also unseren NTC auszulesen, haben wir uns einen Arduino Due angeschafft. Arduino sind kleine Computer ohne Bildschirme oder ähnliches und können kleinere Aufgaben erledigen: es sind Microcontroller. Wir haben uns für dieses Modell entschieden, da es über die Möglichkeit verfügt, Sensoren in einer 12-Bit-Auflösung auszulesen, was 4-mal so genau ist wie das, was andere Arduino mit 10 Bit auslesen. Da der Arduino nun aber keinen Widerstand ausliest, sondern nur Spannungen, haben wir einen Spannungsteiler mit einem 5600 Ω-Widerstand gebaut, um über dem NTC eine Spannung abzugreifen. Nun konnte der Arduino Werte von 0 bis 4095 lesen, die wiederum in Spannungen umgerechnet wurden, um über die Spannungsteiler-Gleichung den Widerstand des NTC zu ermitteln. Durch eine Kennlinie haben wir eine Formel zum Berechnen der Temperatur aus dem Widerstand des NTC aufgestellt. Somit kann der Arduino nun zum Beispiel die Temperatur im Raum an unseren Computer weitergeben, der diese uns dann mitteilt.

Nun haben wir aber keinen Computer an Bord, der die Daten erhält, geschweige denn einen Passagier, der die Daten einsieht. Also haben wir uns ein Speichermodul angeschafft in Form einer SD-Karte, die in einem Lesegerät für den Arduino steckt. Der Arduino kommuniziert mit ihr über den SPI-Bus (kann man mit einem USB-Kabel vergleichen von der Funktionsweise her). Die Temperatur konnte nun also auf unserer SD-Karte gespeichert werden und ist jederzeit auf einem Computer abrufbar.

Um das Auswerten der Daten zu vereinfachen, braucht man eine Art Zeitangabe, am besten eine Uhrzeit. Theoretisch kann der Arduino eine Uhr laufen lassen, allerdings hört sie auf zu laufen, wenn er vom Strom getrennt wird. Also haben wir uns ein externes Modul besorgt: eine RTC. RealTimeClock’s sind programmierbare Uhren, die auch nachdem der Master (Arduino) vom Strom getrennt wurde, weiter läuft. Nach Konfigurieren der Uhrzeit konnten wir per I2C-Bus die Uhr auslesen und vor die Temperaturangaben eine Uhrzeit schreiben lassen.

Das Ganze sieht bisher so aus:

Dieses Bild hat ein leeres alt-Attribut; sein Dateiname ist image.png.
Die rote und die grüne LED dienen dazu anzuzeigen, ob alles funktioniert:
grün = OK, rot = ERROR

Max

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..

Erstelle eine Website oder ein Blog auf WordPress.com

Nach oben ↑