Sorry for that. Never seen that topic anywere thx.
to set the addreses to zero
#include <EEPROM.h> // hier word de bibliotheek ingevoegd zodat het programma de commandos kent.
void setup() {
pinMode(13, OUTPUT); // hier geef je aan dat 13 een output is.
for (int i = 0 ; i < EEPROM.length() ; i++) { // hier zeg je als integer i kleiner is dan EEPROM.length dan moet i 1 hoger worden.
EEPROM.write(i, 0);
}
digitalWrite(13, HIGH); // als controle van het programma gaat de led aan als het programma klaar is met alles op 0 zetten.
}
void loop() {
}
the reading function
#include <EEPROM.h> // hier voeg je de benodigde bibliotheek in zodat het programma de commandos herkent
// begint met het lezen van de eerste byte (adres 0) van de EEPROM
int address = 0;
int value;
void setup() {
Serial.begin(9600); // hier opent de poort zich
while (!Serial) { // wacht tot de poort geconnect is. alleen voor ''native'' usb poorten.
;
}
}
void loop() {
// read a byte from the current address of the EEPROM
value = EEPROM.read(address); // hier leest die het actuele adres van de EEPROM
Serial.print(address); // hier word het adres geprint
Serial.print("\t"); // hier word een horizontale tab ingevoegd
Serial.print(value, DEC); // hier word gezegd print de waarde in decimalen
Serial.println(); // hier word een blank stuk ingevoegd
address = address + 1; // hier geeft die een voorwaarde aan, het adres is het huidige adres +1
if (address == EEPROM.length()) { // hier word een voorwaarde aangegeven, als het adres gelijk is aan EEPROM.length dan is het adres 0.
address = 0;
}
delay(500);
}
the master side
#include <Wire.h> // hier is de benodigde bibliotheek er bij gevoegd
const int analogInPin = A0; // Analog input pin that the potentiometer is attached to
int ledPin = 12;
int x = 0;
int sensorValue = 0; // value read from the pot
int outputValue = 0; // value output to the PWM (analog out)
void setup() {
Wire.begin(); // hier word aangegeven dat dit de master is
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{
x = 11;
while (x > 1)
{
// read the analog in value:
sensorValue = analogRead(analogInPin);
// map it to the range of the analog out:
outputValue = map(sensorValue, 0, 1023, 0, 255);
// change the analog out value:
Wire.beginTransmission(9); // verstuurd data naar apparaat 9
Wire.write(outputValue); // stuurt data (X)
Wire.endTransmission(); // stop met data versturen
Serial.println(outputValue);
delay(500); // vertraging van versturen data halve sec
Serial.println("\n");
Serial.println(x);
delay(500);
x--;
}
}
the slave side
// Include the required Wire library for I2C
#include <Wire.h>
#include <Wire.h>
#include <EEPROM.h>
int addr = 0;
int x = 0;
void setup() {
// hier word de slave aangemerkt (9)
Wire.begin(9);
// hier word bepaald wat er gedaan moet worden met de ontvangen info
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void receiveEvent(int bytes)
{
x = Wire.read(); // hier leest die een karakter van de i2c
}
void loop() {
Wire.read();
// hier leest die een karakter van de i2c
delay(2);
Serial.println(x);
int val = Wire.read();
EEPROM.write(addr, val);
addr = addr + 1;
delay(1000);
}