I²C Komponenten

Bisher kann unser kleiner Datenlogger bereits Datein anlegen, öffnen, schreiben und schließen. Das haben wir getestet und können uns jetzt ausschließlich auf die Entwicklung der nächsten Komponente konzentrieren. Uns fehlen aber noch die Daten welche wir speicher wollen. Die aktuelle Uhrzeit und Temperatur möchten wir von den externen I²C Bausteinen DS1307 und LM75 erfassen. Der Anschluss dieser Komponenten ist über I2C1 an Pin PB6 und PB7 vorgesehen. Anbei der betreffende Systemausschnitt im Blockbild.

Komponenten entwerfen

Es ist die Zeit und Temperatur vorerst einmal pro Sekunde zu ermitteln. Diese sind als Text zu formatieren. Der Datensatz soll unmittelbar vor dem Speichern aufbereitet werden. Zur Kontrolle wird jeder Datensatz per UART an ein Terminal gesendet. Aus diesen Anforderungen ergeben sich folgende Erweiterungen des Klassenmodells.

Komponenten realisieren

Es sind also folgende funktionale Anforderungen zu erfüllen:

  • Zeit und Temperatur ermitteln
  • Zeit und Temperatur als Text formatieren
  • Datensatz für CSV-Datei aufbereiten
  • Kontrollausgabe an das Terminal senden
  • Datei öffnen, Datensatz anhängen, Datei schließen
onWork
String datensatz,lage="0",trennzeichen="; ",zeilenende="\n";
 
// Zeit und Temperatur ermitteln
zeit=echtzeituhr.getTime("%d.%M.%Y %h:%m:%s");
//temperatur=temperatursensor.getGrad("%G,%K");
int value = temperatursensor.getValue();
temperatur.format("%d,%d",value/10,value%10);
 
//Testdaten
helligkeit="1234";
 
// Datensatz zusammenbauen
datensatz = zeit+trennzeichen
			+temperatur+trennzeichen
			+helligkeit+trennzeichen
			+lage+zeilenende;
 
terminal.sendString(datensatz);
 
// Datei öffnen
if (sd.logfile.open("/log.csv"))
{
	// Datensatz anhängen
	sd.logfile.append(datensatz);
	sd.logfile.close();
	terminal.sendString("Datensatz wurde geschrieben.\n");
}
else
{
	terminal.sendString("Datei konnte nicht geöffnet werden\n");
}
 
// Test Wartezeit 1 Sekunde bis zum nächsten Zyklus
waitMs(1000);

Komponente testen

Erstellen, Übersetzen und Übertragen Sie das Programm. Korrigieren Sie ggf. Schreibfehler im Quelltext. Achten sie darauf, dass eine µSD-Karte mit maximal 1 GB Kapazität und FAT16-Formatierung ordnungsgemäß in den SD-Kartenhalter eingelegt ist bevor das Programm startet. Lassen Sie die Anwendung einige Minuten laufen. Beobachten Sie die Protokollausgaben im SiSy-Controlcenter. Entnehmen sie die SD-Karte und überprüfen Sie den Inhalt der Datei log.csv.

Nächster Schritt

»>der momentane entwicklungsstand

Bitte nicht vergessen ein Projektarciv von diesem Teilschritt anzulegen! Entfernen Sie den Test-Code in den Operationen.