Hola a todos, me ha pasado una cosa realmente rara, a ver si alguno le ha pasado algo similar o sabe porque puede haber pasado.
Os pongo en situación:
HARDWARE: placa de perfboard con un arduino micro, display lcd 16x2, 4 relés conectados via transistor, lm35 para temperatura, hc-sr04 para medir el nivel de agua de un canal y max485 para comunicación via modbus.
SOFTWARE: Rutina del lcd, lectura de la sonda de ultrasonidos, lectura de la temperatura y libreria simplemodbus.
El aparato en cuestión se encarga de supervisar el nivel de agua en un canal, según este se activaran los relés a un valores definidos que son variables del modbus. La sonda de temperatura, además de para saberla, es para corregir la velocidad del sonido según la temperatura y reducir el error. Los valores a los que se activan los relés tienen un valor por defecto al reiniciar el aparato y mediante modbus se pueden modificar.
Hardware OK y Software OK. Todo funcionando. El sistema está conectado a un SAI que falla, y algunas veces cuando se va la luz, tengo que volver a introducir los datos via modbus.
Llevaba un tiempo sin cambiar los valores ya que no he tenido que controlar el nivel del agua, pero sin embargo llevo supervisando el nivel y la temperatura unos meses, sin errores de modbus ni nada, cuando he querido volver a poner los nuevos valores... no me deja!!. Error de timeout para la funcion 0x10 y de función ilegal para la 0x06. Reseteo y sigue igual. Quito el Micro, reprogramo con el mismo programa y a funcionar...
¿Qué puede haber pasado?¿Se puede haber borrado un área de la memoria?¿No tiene sentido verdad?