Het IP-adres dat getoond wordt, wordt gelezen uit EEPROM en is niet het adres dat je hebt gezet middels IPAddress ip()Ik kan uit de sketch niet goed wijs worden hoe en waarom dat gebeurt.Dat IP-adres staat dus gewoon in EEPROM.Ik zie wel dat er conditioneel eerst geschreven wordt in EEPROM. Dat is echter afhankelijk van wat er staat op adres 9 (EEXNet=9) in het EEPROMVoeg daarom een regel toe om te checken wat daar staat. Als dat groter is dan 31 wordt er eerst geschreven.
Serial.println(EEPROM.read(EEXNet)); //VOEG DEZE REGEL TOE // EEPROM usage for storing the IP adresses if (digitalRead(ResetPin) == LOW || EEPROM.read(EEXNet) < 32) { XNetAddress = EEPROM.read(EEXNet); } else { EEPROM.write(EEXNet, XNetAddress); EEPROM.write(EEip, ip[0]); EEPROM.write(EEip + 1, ip[1]); EEPROM.write(EEip + 2, ip[2]); EEPROM.write(EEip + 3, ip[3]); } ip[0] = EEPROM.read(EEip); ip[1] = EEPROM.read(EEip + 1); ip[2] = EEPROM.read(EEip + 2); ip[3] = EEPROM.read(EEip + 3);
bool FixIP = false; // Indien true wordt het IP adres bij het opstarten altijd teruggezet naar het default IP adres, zet op false als je met de webconfig wilt werken
Serial.println(EEPROM.read(EEXNet)); // EEPROM usage for storing the IP adresses if (digitalRead(ResetPin) == LOW || FixIP == true || EEPROM.read(EEXNet) == 255) { EEPROM.write(EEXNet, XNetAddress); EEPROM.write(EEip, ip[0]); EEPROM.write(EEip + 1, ip[1]); EEPROM.write(EEip + 2, ip[2]); EEPROM.write(EEip + 3, ip[3]);
// SS must be output and disable any device using SSpinMode(53,OUTPUT);digitalWrite(53,HIGH); //any device on the SS pin will be disabled// disable w5100// pinMode(10,OUTPUT);// digitalWrite(10,HIGH); // disable W5100// disable SDpinMode(4,OUTPUT);digitalWrite(4,HIGH); // disable SD//Add code in function setup(), i'm success.pinMode(11,INPUT);pinMode(12,INPUT);pinMode(13,INPUT);
// hier staan default waardes vastgelegdIPAddress ip(192, 168, 0, 11);byte XNetAddress = 30; bool FixIP = false; // deze op true zetten lost het probleem op// je kan ook A5 aan GND koppelen// een van deze condities moet waar zijn, om het eeprom te vullen met de default waardes if (digitalRead(ResetPin) == LOW || FixIP == true || EEPROM.read(EEXNet) == 255) { EEPROM.write(EEXNet, XNetAddress); // hier worden de default waardes in EEPROM opgeslagen EEPROM.write(EEip, ip[0]); EEPROM.write(EEip + 1, ip[1]); EEPROM.write(EEip + 2, ip[2]); EEPROM.write(EEip + 3, ip[3]); } XNetAddress = EEPROM.read(EEXNet); // hier worden waardes ALTIJD uit EEPROM gehaald ip[0] = EEPROM.read(EEip); ip[1] = EEPROM.read(EEip + 1); ip[2] = EEPROM.read(EEip + 2); ip[3] = EEPROM.read(EEip + 3);
Maar helaas is dat blijkbaar niet het geval bij de oude app
maar ook als je apparaat op de X-bus aansluiting aangesloten zit. Bij het schakelen van de wissels blijft het dus noodzakelijk om fysiek naar de stand van het wissel te kijken of er lampen of toeters op aan te sluiten.
whipeStreet(); street.address[0] = 11 STRAIGHT ; street.address[1] = 13 CURVED ; street.address[2] = 29 CURVED ; street.address[3] = 27 STRAIGHT ; street.address[4] = 17 CURVED ; street.address[5] = 19 STRAIGHT ; street.address[6] = 21 STRAIGHT ; street.address[7] = 23 STRAIGHT ; storeStreet(7) ; whipeStreet(); street.address[0] = 11 CURVED ; street.address[1] = 23 CURVED ; storeStreet(8) ;