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
iButton ID in EEPROM speichern
27.11.2014, 07:31
Beitrag #1
iButton ID in EEPROM speichern
Hallo Leute!

Versuche nun schon seit ein paar Tagen einen Garagentoröffner mittels iButton reader zu realisieren. Habs nun auch geschafft einen funktionierenden Sketch zu schreiben. Nur bin ich nicht ganz zufrieden ich würde nämlich gerne falls ich einen neuen iButton einlernen will einfach einen Taster drücken und dann die ID in den EEPROM schreiben, und diesen dann zu den erlaubten iButtons hinzufügen.
Im Moment habe ich für jede iButton eine Array angelegt. Ich habe leider überhaupt keine Idee wie ich das realisieren kann daher bitte ich um Eure Hilffe.[/code]
Hier mein Sketch:
Code:
#include <OneWire.h>

OneWire ds(10);
byte addr[8];
int but[6]  = {x,x,x,x,0,0};  
int but1[6] = {x,x,x,x,0,x};  
int but2[6] = {x,x,x,x,0,0};  
int but3[6] = {x,x,x,x,0,0};
int but4[6] = {x,x,x,x,0,0};  
int but5[6] = {x,x,x,x,0,0};  
String keyStatus="";

void setup(void)
{
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop(void)
{
  getKeyCode();
  if(keyStatus=="ok")
  {
    if(addr[1]== but[0]&&addr[2]== but[1]&&addr[3]== but[2]&&addr[4]== but[3]&&addr[5]== but[4]&&addr[6]== but[5]||
       addr[1]==but1[0]&&addr[2]==but1[1]&&addr[3]==but1[2]&&addr[4]==but1[3]&&addr[5]==but1[4]&&addr[6]==but1[5]||
       addr[1]==but2[0]&&addr[2]==but2[1]&&addr[3]==but2[2]&&addr[4]==but2[3]&&addr[5]==but2[4]&&addr[6]==but2[5]||
       addr[1]==but3[0]&&addr[2]==but3[1]&&addr[3]==but3[2]&&addr[4]==but3[3]&&addr[5]==but3[4]&&addr[6]==but3[5]||
       addr[1]==but4[0]&&addr[2]==but4[1]&&addr[3]==but4[2]&&addr[4]==but4[3]&&addr[5]==but4[4]&&addr[6]==but4[5]||
       addr[1]==but5[0]&&addr[2]==but5[1]&&addr[3]==but5[2]&&addr[4]==but5[3]&&addr[5]==but5[4]&&addr[6]==but5[5])
    {
      keyOk();
    }
    else keyNotOk();
  }
  delay(1000);
}

void getKeyCode()
{
  keyStatus="";
  if ( !ds.search(addr))
  {
    ds.reset_search();
    return;
  }
  if ( OneWire::crc8( addr, 7) != addr[7]) {
    keyStatus="CRC invalid";
    return;
  }
  keyStatus="ok";
  ds.reset();
}

void keyOk()
{
  digitalWrite(2, HIGH);
  delay(250);
  digitalWrite(2, LOW);
  delay(250);
  digitalWrite(2, HIGH);
  delay(250);
  digitalWrite(2, LOW);
  delay(250);
  digitalWrite(2, HIGH);
  delay(250);
  digitalWrite(2, LOW);
  delay(250);
  digitalWrite(2, HIGH);
  delay(250);
  digitalWrite(2, LOW);
  delay(250);
  digitalWrite(2, HIGH);
  delay(250);
  digitalWrite(2, LOW);
  delay(250);
  digitalWrite(2, HIGH);
  delay(2500);
  digitalWrite(2, LOW);

  digitalWrite(12, HIGH);
  delay(3000);
  digitalWrite(12, LOW);
  delay(100);
}

void keyNotOk()
{
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);

  digitalWrite(13, HIGH);
  delay(3000);
  digitalWrite(13, LOW);
  delay(100);
}

Schöne Grüße und vielen Dank schon im Voraus!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.11.2014, 14:55
Beitrag #2
RE: iButton ID in EEPROM speichern
Hallo stuff23,

ich habe zwar nicht wirklich verstanden wo dein problem liegt, wenn es jedoch um das schreiben / lesen mehrerer Werte in / von EEPROM geht, suche bitte mal nach eeprom_write_block / eeprom_read_block.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.11.2014, 15:55
Beitrag #3
RE: iButton ID in EEPROM speichern
Hi,
als allererstes würde ich mal das ganze Coding etwas übersichtlicher machen. Man kann z.B. auch Arrays von Arrays anlegen. Der nächste Tipp wäre, mal die ein oder andere Schleife (Stichworte sind "for" und "while") verwenden.
Dann liest Du Dir das hier ein paarmal durch:
http://arduino.cc/en/pmwiki.php?n=Reference/EEPROM
http://arduino.cc/en/Reference/EEPROMRead
http://arduino.cc/en/Reference/EEPROMWrite
...und dann nochmal nachfragen, wenn was unklar ist.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.11.2014, 16:01
Beitrag #4
RE: iButton ID in EEPROM speichern
Danke für die Antworten Array habe ich schon auf ein mehrdimensionales angepasst und auch sonst ist der Sketch schon ein wenig übersichtlicher geworden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2014, 13:59
Beitrag #5
RE: iButton ID in EEPROM speichern
...und, hat's geholfen?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2014, 09:56
Beitrag #6
RE: iButton ID in EEPROM speichern
Nur zum Teil wie ich ein Mehrdimensionales Array in den EEPROM speichern kann ist mir immer noch nicht klar. Die Anleitung von der Arduino homepage anyEEPROM oder so ähnlich funktioniert leider nicht das wäre genau das was ich brauchen würde.

Grüße Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2014, 10:14
Beitrag #7
RE: iButton ID in EEPROM speichern
Hi,
na, das ist doch nicht soooo schwer. Zum Beispiel:
Code:
byte blabla[8][10];  
   // ...
for(int i = 0; i < 8; i++)
   for(j = 0; j < 10; j++)
      EEPROM.write(i*10+j, blabla[i][j]);
...oder so ähnlich.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler beim Speichern von Projekten Manni66 16 687 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 475 03.07.2016 09:00
Letzter Beitrag: Binatone
  String in EEPROM Speichern BennIY 2 415 27.06.2016 10:23
Letzter Beitrag: BennIY
  Messwerte in Array speichern ArduinoMega2560 2 419 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  Grundlagenfrage EEPROM Tobias1984 3 497 14.04.2016 10:43
Letzter Beitrag: Bitklopfer
  Sensordaten in MYSQL speichern rieders 3 697 02.03.2016 19:58
Letzter Beitrag: rieders
  Attempt to write outside of EEPROM memory anwo 1 377 12.02.2016 11:06
Letzter Beitrag: anwo
  Ins eeprom schreiben/lesen anwo 10 1.791 07.02.2016 20:05
Letzter Beitrag: rpt007
  Suche Konzept für ein Inhaltsverzeichnis eines EEPROM avoid 0 312 27.01.2016 10:49
Letzter Beitrag: avoid
  float in eeprom goldfisch 4 673 28.12.2015 18:54
Letzter Beitrag: Bitklopfer

Gehe zu:


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