#include int eprom0; // variabili per dati salvati nella eprom int eprom1; // uso i primi 2 byte per sapere se c'รจ un dato salvato int eprom2; // nel terzo byte String inString = ""; // string to hold input int controllo; int controlloSP = 25; // set point iniziale int controlloMax = 80; // limiti della grandezza da controllare int controlloMin = 0; // limiti della grandezza da controllare void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); eprom0 = EEPROM.read(0); eprom1 = EEPROM.read(1); delay(200); if (eprom0==100 && eprom1==100) { // numero da 0 a 255 eprom2 = EEPROM.read(2); // controllo se rispetta i limiti imposti if (eprom2 > controlloMin && eprom2 < controlloMax) { // aggiorno set point con valore letto dalla eprom controlloSP = eprom2; } } while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.println(String(controlloSP)); } void loop() { // Read serial input: while (Serial.available() > 0) { int inChar = Serial.read(); if (isDigit(inChar)) { // convert the incoming byte to a char and add it to the string: inString += (char)inChar; } // if you get a newline, print the string, then the string's value: if (inChar == '\n') { // converto stringa in numero intero controlloSP = inString.toInt(); // salvo su eprom EEPROM.write(0, 100); EEPROM.write(1, 100); EEPROM.write(2, controlloSP ); // clear the string for new input: inString = ""; } } // lettura valore da sensore controllo= 30; // controllo limiti grandezza if (controllo> controlloSP) { Serial.println(">" + String(controlloSP)); } delay(1000); }