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
Mehrere Werte in Eeprom schreiben und auslesen
17.11.2014, 13:46
Beitrag #9
RE: Mehrere Werte in Eeprom schreiben und auslesen
Danke für eure Antworten. Ich habe das jetzt so gemacht. Ist sicherlich nicht professionell, aber es sieht so aus als würde es gehen. Hab jetzt nur keine Zeit mehr
es genau zu testen, muss auf Arbeit.
Danke an alle!!!!!!!!!
Code:
#include <LiquidCrystal.h>
#include <EEPROM.h>
int temp = 0;
int LED=13;
int lampe=6;
int an = 0;
int aus = 0;
int speichern=0;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
volatile unsigned long alteZeit=0, entprellZeit=20, cal=0;

void setup() {
  Serial.begin(38400);
  lcd.begin(16,2);
  pinMode(LED, OUTPUT);    // LED Pin
  pinMode(2, INPUT);       // Pin 2 ist INT0
  digitalWrite(2, HIGH);   // interner Pull up Widerstand auf 5V
  attachInterrupt(0, interruptRoutine, LOW);
  // Pin 2 (INT 0) geht auf LOW (0V) dann interruptRoutine aufrufen
  pinMode(A1,INPUT);          // Taste AN hoch  
  digitalWrite(A1,HIGH);      // interner pullup Widerstand
  pinMode(A2,INPUT);          // Taste AN runter
  digitalWrite(A2,HIGH);
  pinMode(A3,INPUT);          // Taste AUS hoch  
  digitalWrite(A3,HIGH);      // interner pullup Widerstand
  pinMode(A4,INPUT);          // Taste AUS runter
  digitalWrite(A4,HIGH);
  pinMode(lampe,OUTPUT);
  an=eepromRead(0); // Startwert aus dem EEPROM lesen
  aus=eepromRead(1); // Startwert aus dem EEPROM lesen
}
void loop() {
  //Interupt AN
  if(cal==1) {
    if(readButton(1)) an+=1; // Einschaltwert hoch
    if(readButton(2)) an-=1; // Einschaltwert runter
    lcd.clear();
    lcd.print ( "Einschalten: " );
    lcd.print ( an );
    delay ( 500 );
    if(readButton(3)) aus+=1; // Ausschaltwert hoch
    if(readButton(4)) aus-=1; // Ausschaltwert runter
    lcd.clear();
    lcd.print ( "Ausschalten: " );
    lcd.print ( aus );
    delay ( 500 );
    LcdClearLine(1);
    speichern=1; // Wert verändert, bei verlassen der cal > speichern
  }
  if(speichern==1) {            // Wert soll gespeichert werden
    eepromWrite(0,0);
    eepromWrite(1,0);
    speichern=0;                // Wert wurde gespeichert
  }
  int tempReading = analogRead(temp);
  float tempVolts = tempReading * 1.6 / 1024.0;
  float temp = (tempVolts - 0.5) * 100.0;
  if (temp <=aus )
  digitalWrite(lampe,HIGH);
  Serial.println(an);
  Serial.println(aus);
  //LcdClearLine(1);
  lcd.setCursor(0,0);
  lcd.print("Temp.:");
  lcd.print(temp);
  lcd.write(223);
  lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("Heizung:");
  lcd.print(an);
  lcd.print ( " / " );
  lcd.print(aus);
  delay(100);
}
int readButton(int pin) {     // Taste einlesen
  if(analogRead(pin) < 500) { // Analog Eingang abfragen
    delay(entprellZeit);            
    if(analogRead(pin) < 500)
      return 1;               // war gedrückt
  }
  return 0;                   // war nicht gedrückt
}
void interruptRoutine() {
  if((millis() - alteZeit) > entprellZeit) {
    // innerhalb der entprellZeit nichts machen
    digitalWrite(LED, !digitalRead(LED)); // LED umschalten
    alteZeit = millis(); // letzte Schaltzeit merken
    cal = !cal; // Einstellmodus wechseln  
  }
}
int eepromRead(int adr) {
an = EEPROM.read(0);
aus = EEPROM.read(1);
   return aus;
} //eepromReadInt
void eepromWrite(int adr, int wert) {
// Integer in das EEPROM schreiben
  EEPROM.write(0, an);
  EEPROM.write(1, aus);
  return;
}
// hilfsfunktion zum leeren einer zeile
void LcdClearLine(int r)
{
  lcd.setCursor(0,r);
  for (int i = 0; i < 16; i = i + 1)
  {
    lcd.print("            ");
  }
}
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.11.2014, 16:40
Beitrag #10
RE: Mehrere Werte in Eeprom schreiben und auslesen
(17.11.2014 13:46)Kurt schrieb:  Danke für eure Antworten. Ich habe das jetzt so gemacht. Ist sicherlich nicht professionell, aber es sieht so aus als würde es gehen. Hab jetzt nur keine Zeit mehr
es genau zu testen, muss auf Arbeit.
Danke an alle!!!!!!!!!

Hallo Kurt,
ja man siehts im Code das du da noch einiges geradeziehen mußt...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.11.2014, 20:24
Beitrag #11
RE: Mehrere Werte in Eeprom schreiben und auslesen
Zitat:Hallo Ricardo,
schön dich hier mal wieder zu lesen...hattest Urlaub im Webfreien Raum ?
Dieses Blockweise lesen und schreiben vom EEPROM ist aber nur in der AVR Lib enthalten und nicht in der EEPROM Lib von der Arduino IDE - richtig so ?
Moin Bitklopfer,

yo, mich gibts noch. Ich hatte schweinemäßig viel zu tun (100 PCs XP-> Win7 / Server virtualisieren / eben schnell mal ein Sicherungssystem in AutoIT schreiben etc.). Danach kam dann erstmal eine fette Bronchitis ... Um nicht ganz den Arduino zu verlernen habe ich angefangen eine Lib für PullDown-Menüs auf dem GLCD zu schreiben...Noch 1 oder 2 Wochen dann sollte die laufen ;-)

Zu deiner Frage: Ja, die Routinen stehen im AVR LIBC Package. Die älteren Versionen der IDE wollten wohl nicht damit umgehen weil die mitgelieferte LIBC Version die block-Module so noch nicht drin hatte (glaube ich zumindest).

Glad to be back Big Grin

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.11.2014, 21:28 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2014 21:30 von Bitklopfer.)
Beitrag #12
RE: Mehrere Werte in Eeprom schreiben und auslesen
(17.11.2014 20:24)rkuehle schrieb:  Moin Bitklopfer,

yo, mich gibts noch. Ich hatte schweinemäßig viel zu tun (100 PCs XP-> Win7 / Server virtualisieren / eben schnell mal ein Sicherungssystem in AutoIT schreiben etc.). Danach kam dann erstmal eine fette Bronchitis ... Um nicht ganz den Arduino zu verlernen habe ich angefangen eine Lib für PullDown-Menüs auf dem GLCD zu schreiben...Noch 1 oder 2 Wochen dann sollte die laufen ;-)

Zu deiner Frage: Ja, die Routinen stehen im AVR LIBC Package. Die älteren Versionen der IDE wollten wohl nicht damit umgehen weil die mitgelieferte LIBC Version die block-Module so noch nicht drin hatte (glaube ich zumindest).

Glad to be back Big Grin

Grüße Ricardo

Hi Ricardo,
na dann hattest ordentlich was an der Backe...bin froh wenn meine handvoll Kisten hier laufen...

Hoffe mal dir gehts wieder gut und kannst wieder gerade kucken...
...weil Grafik-LCD's gibt es gerade bei Electronic Assembly zum kennenlernen, ein Set mit USB Demo Board und 2 LCD's (mit oder ohne Grafik) nach Wahl samt Backlight für 60 Euro +MWst + 8,50 Porto. Achso ich glaub man braucht dazu den Werbeflyer zum bestellen. Kann ich aber zuschicken als PDF Angel

Ahja, war mir doch so...hab ja auch schon mit dem EEPROM was gemacht. Im AVR Studio hatte ichs dann ausm Datenblatt abgetippt.

lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wie Programmiere ich mehrere if-Abfragen? Mr.Purz 4 131 09.12.2017 12:36
Letzter Beitrag: hotsystems
  Kleiner Denkanstoß - Auslesen eines KY-040 Encoders Stargazer 12 189 08.12.2017 22:41
Letzter Beitrag: hotsystems
  Statusänderung auf SD-Karte schreiben querkopf71 12 563 27.11.2017 12:23
Letzter Beitrag: Tommy56
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 2.312 17.10.2017 09:34
Letzter Beitrag: Tommy56
  MPU6050 / GY521 auslesen und verstehen Hitikatus 3 508 30.09.2017 11:48
Letzter Beitrag: Hitikatus
Lightbulb mehrere Funktionen mit Schalter mechastef 7 894 21.08.2017 22:34
Letzter Beitrag: SkobyMobil
Brick Welcher FTP Client um mehrere Dateien auf den Server zu schieben. derAllgaeuer 26 2.144 19.08.2017 21:27
Letzter Beitrag: Bitklopfer
  Countdown - Werte ändern am Touchscreen ElAleMaNo 2 439 04.07.2017 18:43
Letzter Beitrag: Tommy56
  Motor Steuerung durch Sensoren Werte Zerebrator 14 1.034 12.06.2017 14:36
Letzter Beitrag: Franz54
  Arduino Sensor zeigt falsche Werte an Sandro2504 4 563 04.06.2017 09:03
Letzter Beitrag: hotsystems

Gehe zu:


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