user66424: Facing an issue while writing a large value (like 2000-5000) to EEPROM using EEPROM.put(). 
For example, While writing 2000 values to address 5 of EEPROM. Some junk values are written automatically to a nearby address (address 4, 6, 7...).
Note : Not trying to write an array of 2000 elements
Board Used : Arduino Uno (Atmega328P) 
Q1 : What is the typical range of a each address by using EEPROM.put() . Like EEPROM.write() has range limit of 0-255. 
Q2 : How to write large value EEPROM addresses without effecting the nearby address.


user33871: It depends on what type of variable you have.  If you have single byte variables like byte or char then it is one value to one address.  But if you have an int value like:
int x = 2000;

then try to store that in EEPROM that will take 2 bytes because an int is 2 bytes in size.  So if you write that to address 5 it will take 5 and 6 to write it.
If you write a long or a float, they are 4 bytes, so they will take 4 address slots in the EEPROM each.
If you just write EEPROM.put(5, 2000); then the 2000 gets seen as either int or long depending on how the code is written.  I don't remember.  But you certainly can't fit 2000 into a byte so it's going to have to take more than one.

66424: <p>Facing an issue while writing a large value <em>(like 2000-5000)</em> to EEPROM using <code>EEPROM.put().</code> <BR>
For example, While writing 2000 values to address 5 of EEPROM. Some junk values are written automatically to a nearby address (address 4, 6, 7...).</p>
<p><em>Note : Not trying to write an array of 2000 elements</em></p>
<p>Board Used : Arduino Uno (Atmega328P) <BR></p>
<p>Q1 : What is the typical range of a each address by using <code>EEPROM.put()</code> . Like <code>EEPROM.write()</code> has range limit of 0-255. <br>
Q2 : How to write large value EEPROM addresses without effecting the nearby address.</p>
<p><a href="https://i.stack.imgur.com/QVF7b.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/QVF7b.jpg" alt="enter image description here" /></a></p>
 33871: <p>It depends on what type of variable you have.  If you have single byte variables like byte or char then it is one value to one address.  But if you have an int value like:</p>
<pre><code>int x = 2000;
</code></pre>
<p>then try to store that in EEPROM that will take 2 bytes because an int is 2 bytes in size.  So if you write that to address 5 it will take 5 and 6 to write it.</p>
<p>If you write a long or a float, they are 4 bytes, so they will take 4 address slots in the EEPROM each.</p>
<p>If you just write EEPROM.put(5, 2000); then the 2000 gets seen as either int or long depending on how the code is written.  I don't remember.  But you certainly can't fit 2000 into a byte so it's going to have to take more than one.</p>
