EEPROM error al guarda numeraciones

Saludos tengo un problema al guardar cifras de 3 números por ejemplo:

Si pretendo leer estas numeraciones me da otros numero como 244 o 144 y no me da los números que le di para guardar, solo me deja guardar numero de 2 cifras, pero pretendo guardar y leer cifras de 3 números.

#include <EEPROM.h>//Se incluye la librería EEPROM

int a=455;
int b=567;
int input; 
int led=13; 
 
void setup(){
  Serial.begin(9600); 
  pinMode(led, OUTPUT); 
}
 
void loop(){
  if(Serial.available()>0){ 
    input=Serial.parseInt(); 

    if(input==1){ 
      digitalWrite(led, HIGH); 
      Serial.println("SE GUARDO EL NUMERO A:");
EEPROM.put(0, a);
byte dato1 = EEPROM.read(0);
 Serial.println(dato1);
    }
    
     if(input==2){ 
      digitalWrite(led, LOW);
      Serial.println("SE GUARDO EL NUMERO B:");
EEPROM.write(0, b);
byte dato2 = EEPROM.read(0);
 Serial.println(dato2);
    }
      if(input==3){ 
      Serial.println("EL NUMERO GUARDADO EN EL IDE 0 ES:");
 byte dato3 = EEPROM.read(0);
    Serial.println(dato3);
    }
  }
}

Usas EEPROM.put para guardar los datos y lees con EEPROM.read()?

Debes usar EEPROM.get() no read().

Gracias he intentado pero no me sale el resultado

#include <EEPROM.h>//Se incluye la librería EEPROM

int a=450;
int b=555;
int input; 
int led=13; 
float valorFlotante;
int direccion=0;




 
void setup(){
  Serial.begin(9600); 
  pinMode(led, OUTPUT); 
}
 
void loop(){
  if(Serial.available()>0){ 
    input=Serial.parseInt(); 

    if(input==1){ 
      digitalWrite(led, HIGH); 
      Serial.println("SE GUARDO EL NUMERO A:");
EEPROM.write(0, a);
///byte dato1 = EEPROM.read(0);
EEPROM.get(direccion, valorFlotante);
 Serial.println(valorFlotante);
    }
 }
}

Tienes un buen lio con los metodos de la libreria eeprom y con los tipos de variables y lo que pueden almacenar.Repasa esto:

y esto,en el apartado Data Types:

Los metodos write() y read() son para variables tipo byte (con valores de 0 a 255) y con los metodos get() y put() puedes usar cualquier tipo de variable .Tienes que ser coherente con los tipos de datos que usas para guardar y recuperar los datos.Si guardas un dato tipo byte ,no puedes recuperar un float y viceversa.En fin repasa bien los enlaces.

No soy bueno pero bueno trato con lo poco en lo autodidacta, hice una modificación pero ahora si lo guarda pero solo acepta ".000" como poder guardar solo la cantidad sin los decimales 450.00 = 450

#include <EEPROM.h>//Se incluye la librería EEPROM

int a=450;
int b=555;
int input; 
int led=13; 
 float f = 0.00f;   //Variable para almacenar los datos leidos de la EEPROM.
  int eeAddress = 0; //Direccion de la EEPROM donde se empeza a leer


 
void setup(){
  Serial.begin(9600); 
  pinMode(led, OUTPUT); 
}
 
void loop(){
  if(Serial.available()>0){ 
    input=Serial.parseInt(); 

    if(input==1){ 
      digitalWrite(led, HIGH); 
      Serial.println("SE GUARDO EL NUMERO A:");

EEPROM.put(0, 450.000);

  
    }
    
     if(input==2){ 
      digitalWrite(led, LOW);
      Serial.println("SE GUARDO EL NUMERO B:");


EEPROM.put(0, 555.000);

  
    }
      if(input==3){ 
      Serial.println("EL NUMERO GUARDADO EN EL IDE 0 ES:");
  EEPROM.get(eeAddress, f);
  Serial.println(f, 3);    //Estopuede imprimir 'ovf, nan' si los datos de la EEPROM no son float validos.


    }
  }
}

No lo entiendo ,si ya tienes definidos los valores como int al inicio del sketch (variables a y b) y es lo que quieres guardar ,por que usas luego float que es para almacenar numeros con coma flotante?

#include <EEPROM.h>//Se incluye la librería EEPROM

int a=450;
int b=555;
int input;
int led=13;
int eeAddress = 0; //Direccion de la EEPROM donde se empeza a leer


 
void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}
 
void loop(){
  if(Serial.available()>0){
    input=Serial.parseInt();
    if(input==1){
      digitalWrite(led, HIGH);
      Serial.println("SE GUARDO EL NUMERO A:");
      EEPROM.put(eeAddress,a);
    }
    if(input==2){
      digitalWrite(led, LOW);
      Serial.println("SE GUARDO EL NUMERO B:");
      EEPROM.put(eeAddress,b);
     }
     if(input==3){
       int numeroGuardado;    
       EEPROM.get(eeAddress,numeroGuardado);
       Serial.println("EL NUMERO GUARDADO EN EL IDE 0 ES:");
       Serial.println(numeroGuardado);    //Estopuede imprimir 'ovf, nan' si los datos de la EEPROM no son float validos.
     }
  }
}

ya lo resolví, solo cambie el valor

  Serial.println(f, 3);
  Serial.println(f, 0);