Új hozzászólás Aktív témák

  • Tomika86

    senior tag

    Ez így?
    #include <Wire.h>
    #define xAddr 0x50            // külső EEPROM címe
    unsigned int eepromAdd = 0;   // Adatmentés címe az EEPROM-ban
    float adat = 123456;          // Adat próbaként
    String ertek_1;               // Adat átalakítva
    int Mentes_gomb = 5;          // Mentés gombnyomásra
    void setup() 
      {
      pinMode(Mentes_gomb, INPUT);
      Serial.begin(9600);
      Wire.begin();
      }
    void loop() 
    {
    // Int konvertálása stringbe és EEPROM-ba írása
    if(digitalRead(Mentes_gomb))
    {
      ertek_1 = String(adat, 0);
      int hossz_1 = ertek_1.length();
      
    // Átalakított string írása:
      for(byte i = 0; i <= hossz_1; i++)             // i ciklusváltozó a string hosszáig lépteti a címet
         writeEEPROM(xAddr, eepromAdd+i, ertek_1[i]);    // xAddr: Eszköz címe, eepromAdd+i: Írási cím + kezdőcím, ertek_1[i]: sztringnek a karakterei sorban    
    }
    }

    // Egy byte írása
    void writeEEPROM(int devAddr, unsigned int eeAddr, byte data ) 
      {
      Wire.beginTransmission(devAddr);
      Wire.write((byte)eeAddr >> 8);      // Legnagyobb helyiértékű byte írása, LSB-t jobbra shifteljük, hogy megszabaduljunk tőle
      Wire.write((byte)eeAddr & 0xFF);    // Legkisebb helyiértékű byte írása, LSB kimaszkolása bitekkel ÉS 0-kkal
      Wire.write(data);
      Wire.endTransmission();
      delay(5);                           //5ms várakozás
      }

Új hozzászólás Aktív témák

Hirdetés