ich habe schon seit längeren das Problem, dass mein OpenLog die gesammelten Daten meines
Arduinos nicht speichert! Er leuchtet zwar blau und es werden auch txt-dateien erstellt,
aber diese sind immer komplett leer...
Kann mir da jemand helfen?
Ich habe in meinen Sketch nirgends eine Art "Speichercode" geschrieben, da mir gesagt wurde, dass
es reicht, wenn der OpenLog folgender maßen verbinde:
Arduino TX to OpenLog RXI
Arduino 5V to OpenLog VCC
Arduino GND to OpenLog GN
Sollen wir googeln, was du unter Openlog verstehst und dann raten, was du vermutlich falsch gemacht hast ?
Ich tippe mal auf diesen OpenLog
Gehen denn die Beispielsketche, wenn du sie genau wie beschrieben aufbaust ?
Die Beispielsketche funktionieren einwandfrei wenn ich den Arduino über USB verbunden habe, aber das
ist ja nicht das was ich erzielen will
Wenn ich eine SD Karte einführe und den Arduino über Batterie betreibe, scheint der OpenLog wie gesagt etwas zu speichern,
aber die txt-Dateien sind leider leer...
Ich lasse das ganze unter 19000 Baud laufen und habe die Textdatei des OpenLogs auch von 9600 auf 19000 Baud geändert
thilo007007:
Oh verzeihung,
ja das ist der richtige OpenLog.
Die Beispielsketche funktionieren einwandfrei wenn ich den Arduino über USB verbunden habe, aber das
ist ja nicht das was ich erzielen will
Wenn ich eine SD Karte einführe und den Arduino über Batterie betreibe, scheint der OpenLog wie gesagt etwas zu speichern,
aber die txt-Dateien sind leider leer...
Ich lasse das ganze unter 19000 Baud laufen und habe die Textdatei des OpenLogs auch von 9600 auf 19000 Baud geändert
Den Sketch bitte. Das hier ist wie tappen im Dunkeln. Wenns in den Beispielen geht, dann hast du vermutlich einen Fehler in der Programmierung. Wer sagt, dass dein Sketch nicht genau das macht, was er macht. Nichts schreiben.
der print hier ist auf einen Sender bezogen. Mir wurde gesagt, dass ich den SD-Logger nur anschließen muss und es atomatisch speichert... Ich glaube langsam, dass das nicht so recht gestimmt hat
#include <Wire.h>
#include <Adafruit_BMP085.h> // Adafruit Bibliothek einbinden
Adafruit_BMP085 bmp;
int tempPin = A4; // TMP-36-Temperature
int tempReading = 0;
float temperatureC = 0;
float temperatureF = 0;
const int interval = 10*100; // interval between sensor read, in ms
long lastReadTime = 0; // the last time you read the sensor, in ms
void setup(){
pinMode(16, OUTPUT);
// Seriellen Monitor
Serial1.begin(19200);
if (!bmp.begin()) {
Serial1.println("NO BMP found!");
while (true) {}
}
}
void loop(){
Serial1.println("Sender");
Serial1.print("Temperatur:");
// readTemperature() Temperatur °C read
Serial1.print(bmp.readTemperature());
Serial1.print(" ");
Serial1.write(176);
Serial1.println("C");
Serial1.print("Pressure: ");
// readPressure() Pressure in Pa read
Serial1.print(bmp.readPressure());
Serial1.println(" Pa");
Serial1.print("Height: ");
// readAltitude() height above sea
Serial1.print(bmp.readAltitude());
Serial1.println(" meter");
// get the current time in ms:
long currentTime = millis();
if (currentTime > lastReadTime + interval)
// READ TEMPERATURE
tempReading = analogRead(tempPin);
// convert readings to voltage, using 3.3V battery
float tempVoltage = tempReading * 3.3;
tempVoltage /= 1024.0;
Serial1.println ("(*C) \t(*F)");
// now print out the temperature degrees C
temperatureC = (tempVoltage - 0.5) * 100 ;
Serial1.println("\t");
Serial1.print(temperatureC);
// now convert to Fahrenheight
temperatureF = (temperatureC * 1.8) + 32.0;
Serial1.print("\t");
Serial1.println(temperatureF);
// update the time of the most current reading:
lastReadTime = millis();
Serial1.println(""); // Leerzeile anzeigen
delay(1000);
}
Eine neue Datei wird üblicherweise erzeugt, wenn der Openlog startet.
Da du nirgends explizit in den Kommando-Modus gehst, sollte er eigentlich alles was auf RXi reinlommt, abspeichern.
Ist das mit dem Serial1.Ausgabe-Pin verbunden ? ( Die einfachsten Fehler zuerst , auch wenn's peinlich wäre
Die Beispielsketche funktionieren einwandfrei wenn ich den Arduino über USB verbunden habe
Ja genau ich verwende den Mega2560.
Das print1. bezieht sich auf einen Sender.
Der Openlog ist mit einem anderen RXI-Pin verbunden... Heißt das also, dass ich einfach nur print2. schreiben muss und dann
schreibt der das darauf?
Weil es meinte mal jemand, dass es reicht wenn die verbunden sind und man gar nicht zusätzliches "programmieren" brauch...
Weil es meinte mal jemand, dass es reicht wenn die verbunden sind und man gar nicht zusätzliches "programmieren" brauch
Ich kenn das openlog jetzt nicht, aber aus der Sparkfun Erklärung lese ich das auch so:
Im Grundzustand wird automatich mit 9600 Bd gelesen und auf die Speicherkarte geschrieben. Fertig.
Warum nicht, wenn du auch liest, ob dein openlog was sagt.
Aber selbst das ist egal:
Das einfache Serial ( mit RX, TX, GND ) kümmert sich nicht drum, ob es jemanden interessiert was man sendet.
Bei TTL-Level-Serial ( wie hier) kontrolliert der Sender den Pegel der Leitung, ohne externe Pullup - Widerstände.