# Exemplo de como gravar na EEPROM uma variavel de 32 bytes

**URL:** <https://forum.fazedores.com/t/exemplo-de-como-gravar-na-eeprom-uma-variavel-de-32-bytes/8629>\
**Category:** Arduino\
**Created:** [Abril 16, 2022, 5:29pm UTC](https://forum.fazedores.com/t/exemplo-de-como-gravar-na-eeprom-uma-variavel-de-32-bytes/8629 "2022-04-16T17:29:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Flavio123](https://avatars.discourse-cdn.com/v4/letter/f/a9adbd/32.png) [@Flavio123](https://forum.fazedores.com/u/Flavio123)\
**Post date:** [Abril 16, 2022, 5:29pm UTC](https://forum.fazedores.com/t/exemplo-de-como-gravar-na-eeprom-uma-variavel-de-32-bytes/8629/1 "2022-04-16T17:29:02Z")

</div>

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Flavio Fernandes  
// 16/04/2022  
// Exemplo de como gravar na EEPROM uma variavel de 32 bytes  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
#include \<EEPROM.h\>

byte Var\_32\_Part\_0, Var\_32\_Part\_1, Var\_32\_Part\_2, Var\_32\_Part\_3, endereco = 0;  
uint32\_t var\_32\_bits = 3213254719, var\_32\_bits\_out = 0;  
void setup()  
{

Serial.begin(115200);  
// Truncamento da variavel de 32 para 8 bytes  
Var\_32\_Part\_3 = var\_32\_bits \>\> 24;  
Var\_32\_Part\_2 = var\_32\_bits \>\> 16;  
Var\_32\_Part\_1 = var\_32\_bits \>\> 8;  
Var\_32\_Part\_0 = var\_32\_bits;

EEPROM.write(endereco + 3, Var\_32\_Part\_3);  
EEPROM.write(endereco + 2, Var\_32\_Part\_2);  
EEPROM.write(endereco + 1, Var\_32\_Part\_1);  
EEPROM.write(endereco + 0, Var\_32\_Part\_0);

Serial.print("Var\_32\_Part\_3 → ");  
Serial.println(Var\_32\_Part\_3);  
Serial.print("Var\_32\_Part\_2 → ");  
Serial.println(Var\_32\_Part\_2);  
Serial.print("Var\_32\_Part\_1 → ");  
Serial.println(Var\_32\_Part\_1);  
Serial.print("Var\_32\_Part\_0 → ");  
Serial.println(Var\_32\_Part\_0);  
Serial.print("Var\_32 → ");  
Serial.println(var\_32\_bits);  
Serial.print("Var\_32\_OUT → ");  
var\_32\_bits\_out = (uint32\_t)EEPROM.read(endereco + 0) |  
((uint32\_t)EEPROM.read(endereco + 1) \<\< 8) |  
((uint32\_t)EEPROM.read(endereco + 2) \<\< 16) |  
((uint32\_t)EEPROM.read(endereco + 3) \<\< 24);

Serial.println(var\_32\_bits\_out);

}

void loop()  
{

}

---

<div class="post-metadata">

**Author:** ![marianomessaggi](https://avatars.discourse-cdn.com/v4/letter/m/5fc32e/32.png) [@marianomessaggi](https://forum.fazedores.com/u/marianomessaggi)\
**Post date:** [Maio 4, 2022, 1:56pm UTC](https://forum.fazedores.com/t/exemplo-de-como-gravar-na-eeprom-uma-variavel-de-32-bytes/8629/2 "2022-05-04T13:56:41Z")

</div>

Voce tem que dividir o valor dessa variavel para valores que possam ser decodificador em 1 byte. Vou dar um exemplo que eu fiz de 3 var float que guarda temperatura e decodifica em 2 bytes . transformando em variavel int e depois em byte  
int temp\_ajustada\_int = temperatura\_ajustada ;  
int temp\_ajustada\_dec = (temperatura\_ajustada-temp\_ajustada\_int)\*10;  
int temperatura\_int = temperatura;  
int temperatura\_dec = (temperatura-temperatura\_int)\*10;  
int temp\_boiler\_int = temperatura\_boiler ;  
int temp\_boiler\_dec = (temperatura\_boiler-temp\_boiler\_int)\*10;  
byte temperatura\_ajustada\_int\_send = temp\_ajustada\_int;  
byte temperatura\_ajustada\_dec\_send = temp\_ajustada\_dec;  
byte temperatura\_int\_send = temperatura\_int;  
byte temperatura\_dec\_send = temperatura\_dec ;  
byte temperatura\_boiler\_int\_send = temp\_boiler\_int;  
byte temperatura\_boiler\_dec\_send = temp\_boiler\_dec;

byte msg [7] = {temperatura\_ajustada\_int\_send,temperatura\_ajustada\_dec\_send,temperatura\_int\_send,temperatura\_dec\_send,temperatura\_boiler\_int\_send,temperatura\_boiler\_dec\_send,ligado};
