INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Temperaturdaten auf EEPROM speichern und später auslesen
26.01.2014, 17:56 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2014 18:04 von Jannikcool.)
Beitrag #1
Question Temperaturdaten auf EEPROM speichern und später auslesen
Hallo ihr!
In der Schule müssen wir die sogenannte Facharbeit machen. Wir haben uns als Thema ausgesucht, den Arduino als Wetterstation zu programmieren und ihn dann dank eines Heißluftballons nach oben zu schicken! Angel
Wir wollen dort oben unter anderem die Temperatur messen und die gemessene Temperatur dann in den EEPROM speichern. Das Messen stellt für uns kein Problem dar, das Speichern jedoch schon. Ich habe zwei Sketche geschrieben: Einen zum Schreiben und einen zum Auslesen. Ich habe das Gefühl dass das Schrieben klappt, jedoch am Auslesen hakt es etwas. Könntet ihr bitte einen Blick darüber werfen? Das wäre super nett!

Temperatur lesen und auf EEPROM schreiben:
Code:
#include <EEPROM.h>

int address = 0;

const unsigned int TEMP_SENSOR_PIN = 0;
const float SUPPLY_VOLTAGE = 5000;
const unsigned int BOUD_RATE = 9600;

void setup() {
  Serial.begin(BOUD_RATE);
}

void loop() {
  int val = analogRead(get_temperature()) / 4;
  EEPROM.write(address, val);
  address = address + 1;
  if (address == 512)
    address = 0;
  delay(1000);
}
  
const float get_temperature() {
const int sensor_volate = analogRead(TEMP_SENSOR_PIN);
const float voltage = sensor_volate *(SUPPLY_VOLTAGE / 1024);
return voltage / 10;
}

Temperatur vom EEPROM auslesen:
Code:
#include <EEPROM.h>

int address = 0;
byte value;

void setup() {
  Serial.begin(9600);
}

void loop() {
  value = EEPROM.read(address);
  Serial.print(address);
  Serial.print(" EEPROM POSITION   ");
  Serial.print(value);
  Serial.print(" Gard  ");
  Serial.println();
  address = address + 1;
  if (address == 512)
    address = 0;
  delay(1000);
}

Sketch zum puren Temperaturmessen:
Code:
/* Test for the Temperature Sensor LM35CZ */
#include <EEPROM.h>

int addr = 0;
const unsigned int TEMP_SENSOR_PIN = 0;
const float SUPPLY_VOLTAGE = 5000;
const unsigned int BOUD_RATE = 9600;

void setup() {
Serial.begin(BOUD_RATE);
}

void loop() {
Serial.print(get_temperature());
Serial.println(" C");
int val = analogRead(0) / 4;  
EEPROM.write(addr, val);
addr = addr + 1;
if (addr == 512)
  addr = 0;
  
delay (1000);
}

const float get_temperature() {
const int sensor_volate = analogRead(TEMP_SENSOR_PIN);
const float voltage = sensor_volate *(SUPPLY_VOLTAGE / 1024);
return voltage / 10;
}

Hier noch den aufgebauten Arduino:
[Bild: 2014-01-26%2017.20.36.jpg]

Ich habe den Arduino Uno R3 und beim Temperatursensor handelt es sich um den LM35cz. Solltet ihr noch Fragen haben, dann stellt doch einfach eine Frage.


Angehängte Datei(en) Thumbnail(s)
   

.ino  NEU_TEMP_EEPROM_READ.ino (Größe: 356 Bytes / Downloads: 153)
.ino  NEU_TEMP_EEPROM_WRITE.ino (Größe: 548 Bytes / Downloads: 118)
.ino  _5_Sek_Temp_Kopie.ino (Größe: 603 Bytes / Downloads: 92)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2014, 22:26
Beitrag #2
RE: Temperaturdaten auf EEPROM speichern und später auslesen
Du hast oben EEPROM.write(address, val); gemacht und willst javal dann
in den EEPROM schreiben.

Welche werte kommen bei val überhaupt raus ? Lass sie dir mal mit Serial.print ausgeben.
Denn du kannst pro Adresse im EEPROM nur ein Byte speichern. Also sollte der Wert val nicht größer als 255 sein.

Ansonsten musst du das so machen:

EEPROM.write(adress,highByte(val));
EEPROM.write(adress,lowByte(val));

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.01.2014, 18:01 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2014 18:02 von Jannikcool.)
Beitrag #3
RE: Temperaturdaten auf EEPROM speichern und später auslesen
(26.01.2014 22:26)sven1277 schrieb:  Du hast oben EEPROM.write(address, val); gemacht und willst javal dann
in den EEPROM schreiben.

Welche werte kommen bei val überhaupt raus ? Lass sie dir mal mit Serial.print ausgeben.
Denn du kannst pro Adresse im EEPROM nur ein Byte speichern. Also sollte der Wert val nicht größer als 255 sein.

Ansonsten musst du das so machen:

EEPROM.write(adress,highByte(val));
EEPROM.write(adress,lowByte(val));

Gruß

Danke hat jetzt nach etlichen Stunden probieren endlich geklappt. Der "value"-Wert war einfach Falsch! Vielen vielen Dank! Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Mit dem Arduino JSON Webseiten auslesen seb201 3 99 05.12.2016 22:25
Letzter Beitrag: Tommy56
  Messchieber auslesen mit nem UNO roadcaptain 8 318 15.11.2016 14:30
Letzter Beitrag: Tommy56
  U-blox Neo 6M GPS auslesen Matthias_Arduino 15 887 09.11.2016 16:40
Letzter Beitrag: AvrRobot
  Fehler beim Speichern von Projekten Manni66 16 695 23.08.2016 10:05
Letzter Beitrag: hotsystems
  mit Attiny85 Feuchtigkeitssensor auslesen toto1975 17 581 19.08.2016 22:40
Letzter Beitrag: hotsystems
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 477 03.07.2016 09:00
Letzter Beitrag: Binatone
  String in EEPROM Speichern BennIY 2 418 27.06.2016 10:23
Letzter Beitrag: BennIY
  Messwerte in Array speichern ArduinoMega2560 2 422 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  Grundlagenfrage EEPROM Tobias1984 3 500 14.04.2016 10:43
Letzter Beitrag: Bitklopfer
  Encoder auslesen Phil333 1 671 23.03.2016 21:40
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste