เว็บบอร์ดFree Source Codeการ อ่าน/เขียน float,byte,char ใน EEPROM ของ Arduino
ผู้เขียน : sakchai   หัวข้อ : การ อ่าน/เขียน float,byte,char ใน EEPROM ของ Arduinoอ่าน 1276 / ความคิดเห็น 0
รูปประจำตัว
sakchai
  • 2 กระทู้ที่เริ่มไว้
  • 18 ตุลาคม 2555
รูปไอคอน
หัวข้อ : การ อ่าน/เขียน float,byte,char ใน EEPROM ของ Arduino
11/4/2559 15:52:00

 พดดีวันนี้เขียนโปรแกรมบันทึกข้อมูล float , char , byte ลงใน eeprom แต่ติดปัญหาว่า library เก่า

ใช้งานไม่ได้ซะแล้วกับ Arduino IDE เวอร์ชั่นใหม่ ก็เลยหาไปหามาเจอดในเว็บของ Arduino.cc เองเลย

ก็เลยจัดมาให้ชมตาม youtube ครับ

 

 

https://www.arduino.cc/en/Reference/EEPROMPut

https://www.arduino.cc/en/Reference/EEPROMGet

Example




#include <EEPROM.h>
struct MyObject {
  float field1;
  byte field2;
  char name[10];
};

void setup() {

  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  float f = 123.456f;  //Variable to store in EEPROM.
  int eeAddress = 0;   //Location we want the data to be put.


  //One simple call, with the address first and the object second.
  EEPROM.put(eeAddress, f);

  Serial.println("Written float data type!");

  /** Put is designed for use with custom structures also. **/

  //Data to store.
  MyObject customVar = {
    3.14f,
    65,
    "Working!"
  };

  eeAddress += sizeof(float); //Move address to the next byte after float 'f'.

  EEPROM.put(eeAddress, customVar);
  Serial.print("Written custom data type! \n\nView the example sketch eeprom_get to see how you can retrieve the values!");
}

void loop() {
  /* Empty loop */
}

Example

 

#include <EEPROM.h>

struct MyObject{
  float field1;
  byte field2;
  char name[10];
};

void setup(){

  float f = 0.00f;   //Variable to store data read from EEPROM.
  int eeAddress = 0; //EEPROM address to start reading from

  Serial.begin( 9600 );
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.print( "Read float from EEPROM: " );

  //Get the float data from the EEPROM at position 'eeAddress'
  EEPROM.get( eeAddress, f );
  Serial.println( f, 3 );  //This may print 'ovf, nan' if the data inside the EEPROM is not a valid float.

  // get() can be used with custom structures too. 
  eeAddress = sizeof(float); //Move address to the next byte after float 'f'.
  MyObject customVar; //Variable to store custom object read from EEPROM.
  EEPROM.get( eeAddress, customVar );

  Serial.println( "Read custom object from EEPROM: " );
  Serial.println( customVar.field1 );
  Serial.println( customVar.field2 );
  Serial.println( customVar.name );
}

void loop(){ /* Empty loop */ }
 



เฉพาะสมาชิกเท่านั้นที่สามารถแสดงความคิดเห็นได้ กรุณา "เข้าสู่ระบบ" ก่อน เข้าสู่ระบบ
 
Online:  35
Visits:  1,000,929
Today:  181
PageView/Month:  16,062