18. April 2024

Projekt Brausteuerung 4

Herzlich Willkommen zum vierten Teil zu meinem Projekt Brausteuerung.

Im dritten Teil haben wir die Temperatursensoren so weit gebracht die Temperatur zu messen und sie im Display anzuzeigen.
Dafür könnte ich mir heute noch auf die Schulter klopfen, wenn ich daran zurückdenke. 🙂
WICHTIG: Auch kleine Fortschritte müssen gefeiert werden.

In diesem Teil soll es um das SD Karten Modul gehen.
Ziel ist es, die Daten die auf der SD Karte sind einzulesen und entsprechend in der Software zu verarbeiten.
Klingt einfach ist aber wie so oft nicht ganz so locker umzusetzten.
Zumindest für mich, da ich das lediglich als Hobby betreibe und das nicht ganz regelmäßig.
So, genug der Ausreden.
Los geht´s !

Verwendet wird ein handelsübliches SD Karten Modul mit einer entsprechenden SD Karte.
Da sich die Datenmenge vorerst in Grenzen hält reicht auch was kleines. 🙂


SD-Karten Modul                                               SD Karte

Der erste Gedanke ist: „Welche Daten sind denn überhaupt auf der SD Karte ?“…

Um ein Bier zu brauen brauchen wir folgende Daten:
– Einmaischtemperatur
– 1.Rast mit Rastdauer
– 2. Rast mit Rastdauer
– Abmaischtemperatur
-Nachgusstemperatur

Dies ist natürlich nur grob dargestellt, denn für eine zusätzliche Rast wie z.B. eine Eiweissrast wäre nichts mehr frei, aber das soll uns jetzt erstmal nicht beschäftigen.
Denn wenn es mit dieser Datenstruktur funktioniert, ist das erweitern auf eine 3. Rast nur noch ein Kinderspiel.

Deshalb für den Anfang…“Keep it simpel, keep it real“ 🙂

OK, die SD Karte mit den Daten ist rasch erstellt.
Ich habe mich dazu entschieden die einzelnen Daten durch Kennzeichnungen eindeutiger zu machen.
Somit werde ich in der Software nach den Kennzeichnungen suchen und nicht nach Zeilen.

Text auf SD Karte:

E      55
1      62      30
2      72      10
A      78
N      78

Anschlusspins der SD Karte – Wohin damit?

Das SD-Karten Modul hat folgende Pins:

MISO – Pin für Datentransfer (Master In Slave Out)
MOSI – Pin für Datentransfer (Master Out Slave In)
SCK – Pin für die Synchronisation des Datentransfers
CS – Pin für die Datenerfassung
VCC – Pin für Stromversorgung +5V
GND – Pin für den Ground GND

Achtung! Die Pins MISO, MOSI und SCK werden beim Arduino UNO und beim Arduino Mega an verschiedenen Pins angeschlossen.
Beim UNO  – SCK -13 / MOSI – 11 / MISO – 12
Beim Mega – SCK – 52 / MOSI – 51 / MISO – 52

Den CS Pin habe ich auf Pin 9 (DIGITAL OUT) gelegt.

VCC muss auf einem +5V Pin angeschlossen werden.
GND muss auf einem GND Pin angeschlossen werden.

Was passiert in der Software…

In der Software läuft es folgendermaßen ab:

Die Bibliothek SD.h einbinden.

Ich habe mir eine Variable für den Dateinamen erstellt.
Dem CS Pin am Modul einen Platz zuweisen.
Eine Instanz der Klasse file erzeugen, damit wir das File öffnen und lesen können.

char filename[] = „rezept.txt“;

int CS_PIN = 9; 
File file;

Nachdem das Modul aktiviert ist und die SD Karte intialisiert wurde, werden die Daten der SD Karte eingelesen.
Mit den Daten werden Globale Variablen gefüllt, die dann in der Software verwendet werden um den Brauprozess zu steuern.
Klingt einfach, hat aber seine Tücken…
Der Vorteil an den Globalen Variablen ist ja, dass sie jederzeit von jeder Funktion im Programm augerufen werden können.
Kann aber auch schnell unübersichtlich werden, also vorsicht.

Hier nochmal etwas genauer:

Die Daten der SD Karte werden zeichenweise eingelesen und zu einem String zusammengesetzt solange bis zum Zeilenumbruch.
Ist das erledigt wird der String der entsprechenden Globalen Variablen zugeteilt.
Somit haben wir z.B.: die Einmaischtemperatur von der SD Karte der Variablen tempEinmaischen zugewiesen.
Dies ergibt tempEinmaischen = 55
Das wird so lange wiederholt, bis alle Daten der SD Karte eingelesen und einer Variablen zugeteilt wurden.
Schlussendlich haben wir unsere Varaiblen mit einem Wert beglegt, um sie in der Software zu nutzen und unseren Brauvorgang zu steuern.

Das heisst, dass wir unser SD-Karten Modul soweit einsatzbereit in unsere Steuerung intergriert haben.
Super, und es macht was es soll. Es liefert und Daten die wir festgelegt haben.
Wieder ein Schritt weiter in unsere Brausteuerung.

Zwei Bauteile fehlen noch, aber das ist ein anderes Kapitel.

Bis dahin, frohes Tüfteln und so.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.