Hola,
He creado una librería para programar en forma de maquina de estados, buscando que sea de la forma más sencilla posible para Arduino.
Usar maquina de estados, es una forma de razonar un problema de computación, que se puede emplear en multitud de casos como control de un interfaz gráfico (lcd), protocolos, etc.
La gran ventaja, es que puedes modificar el flujo de tu programa o añadir más estados sin tener que reescribir código y de una manera bastante sencilla.
Me la he creado para mi uso personal, pero la pongo por aquí por si alguien lo encuentra útil. Es una versión "beta".
He escrito un pequeño documento descriptivo (adjunto con este mensaje=FSMv3.pdf).
Adjunto dos ejemplos, que muchas veces he visto preguntar en el foro:
- FSM_v5: Es un programa que espera recibir por el puerto serie un número enviado desde el PC dentro de una "trama" sencilla. El número debe ser enviado entre SxxxxE, donde S es de start y E de end. xxxx es un número (unsigned long). Una vez recibido, vuelve a sacar por serie el número recibido.
- FSM_v6: Es un programa que cronometra desde que se recibe una S(start) por puerto serie hasta que se recibe una E (end). Al recibir dicho comando para parar el cronómetro, saca por serie el resultado.
La librería (FSM.zip) se ha de guardar dentro de la carpeta de arduino (libraries).
Saludos y espero que le encontreis utilidad.
]
Igor R.
FSMv3.pdf (103 KB)
examples_FSM.zip (12.6 KB)
FSM.zip (1.75 KB)