Máquina de estado finito en un Arduino (1 / 7 paso)

Paso 1: ¿Qué es una máquina de estado finito?

Una máquina de estado finito o FSM para abreviar, es una máquina (de manera abstracta) que tiene un número definido y finito de posibles estados de que sólo uno está activo en un momento. Los Estados están conectados a través de transiciones. Estas transiciones tienen una cierta dirección y sólo pueden pasar en eso Dirección – piense en ello como una calle de sentido único. Además, una transición tiene ciertas entradas y salidas. Usted puede pensar de éstos como una condición que debes cumplir antes de que se puede utilizar la vía, y cuando usted lo utiliza, una señal es dada al mundo exterior – por ejemplo, tienes que pagar antes de que se puede utilizar la calle y entonces tu coche es contado.
Un ejemplo muy básico de un FSM se encuentra en muchas casas: apretar un botón activa la luz de la escalera. Después de cierto tiempo, la luz se apaga automáticamente. Podría de este modelo como un FSM con dos Estados: encendido y apagado. Hay una transición de un estado a otro y viceversa y la condición es pulsar el botón en una sola dirección y que ha pasado un cierto tiempo en la otra dirección. Podemos modelar este comportamiento en un diagrama, el diagrama de estado supuesto. Echa un vistazo al cuadro 1.

El círculo negro lleno marca el punto de entrada de la máquina del estado (todo tiene que empezar por alguna parte). Por lo tanto, si nuestra máquina comienza a funcionar, la luz está apagada. Permanece así, hasta que utilizamos un interruptor de la luz – la luz pasa entonces y se apaga después de 30 segundos. Presionar el botón cuando la luz está en hace nada, y después de 30 segundos, se apaga la luz. Este FSM no tiene ninguna salida. Desde una perspectiva matemática tradicional, el estado en la luz es equivalente con la luz se encienda, pero cuando realmente empezamos a programar nuestro sistema, por supuesto tendremos que añadir algún tipo de salida que realmente haga algo – como encender la luz.

¿Esta máquina funciona, pero es un buen sistema? ¿30 segundos de duración es suficiente? Para la mayoría de la gente, probablemente sí, pero la gente en el 10 piso no puede gustar a nuestro sistema. Puede ser que se necesite más de 30 segundos, vamos a decir que necesitan 40 segundos. Pero tienen que esperar los 30 segundos para pasar y la luz se apague para activar la luz otra vez, y entonces podrían ser en medio de una escalera. Así, lo que tenemos que hacer es permitir que el temporizador a restablecerse cuando la luz está encendida y el botón se presiona otra vez. Para eso, necesitamos remodelar nuestro sistema, el inicio del temporizador de modelado como una salida de nuestras transiciones y añadir otra transición, como se aprecia en el cuadro 2.

Aquí, puede ver dos cosas:

  • Está perfectamente bien para una transición ir al estado de que vino
  • Una transición puede tener un evento como una condición para que la transición ocurra así como asigna salidas. La información a la barra de la izquierda es el evento, la información de la derecha es la salida. Eventos también se consideran insumos para la máquina, y esto se llama un entrada-salida-autómata.

Artículos Relacionados

Máquina de estado finito de Arduino y multitasks

Máquina de estado finito de Arduino y multitasks

Una máquina de estados finitos es diagrama usado para organizar las tareas para controlar varios sistemas industriales (producción, calentador, bomba, cintas transportadoras...).Todos estos sistemas incluyen Estados (asociada a una "acción", es
Arduino Flowmeter con una máquina de estado

Arduino Flowmeter con una máquina de estado

Mi jefe tiene un medidor de caudal para varios años. Éste fue fabricado por una famosa empresa: PARKER. Pero este flowcoder analógico se rompió: no hay señal desde el circuito de medida interior. Así que decidí repararlo de una manera barata, una nue
Lámpara de estado de ánimo con Arduino

Lámpara de estado de ánimo con Arduino

Hola! En este tutorial aprenderás a hacer una lámpara de estado de ánimo con arduino.Sé que puedes haber visto un montón de humor lámpara proyectos con arduino, pero no estaba muy satisfecho con ellos porque todos cambian el color muy abruptamente. A
Lámpara de estado de ánimo de Arduino

Lámpara de estado de ánimo de Arduino

Hola usuarios de Instructables!!!!!! Este es un proyecto simple, divertido y útil para los principiantes de arduino. Puede construir la lámpara y luego cargar el código para que la luz de la lámpara hasta un color de tu agrado. El color es suave y se
Luz de estado de ánimo de Arduino y titular

Luz de estado de ánimo de Arduino y titular

aprende a hacer tu propia luz de estado de ánimo de un Arduino!!!!!!Paso 1: Reunir los materialesVas a querer reunir estos materiales, si usted quiere construir la luz de estado de ánimo:1 Uno de x Arduino1 LED x RGB3 x 330 Omh resistencias1 x Breadb
Cómo hacer una máquina de "bajar de mi propiedad" arduino

Cómo hacer una máquina de "bajar de mi propiedad" arduino

Este instructable le mostrará cómo hacer que mi máquina de arduino "bajar mi propiedad". El único propósito de esta máquina es eliminar objetos colocados en él. El video de arriba explica esto muy bien.Paso 1: fuentes deMateriales:X 2: 7 cm * 9
Hablando con una máquina expendedora de MDB con dos Arduinos

Hablando con una máquina expendedora de MDB con dos Arduinos

máquina expendedora de piezas todo habla uno al otro en un bus de ordenador conocido como MDB.  He escrito algo de código para ayudarle a conectar y escuchar su conversación en tiempo real.  Se necesita acceso físico a la máquina expendedora.¿Por qué
Estado del servidor de Arduino Minecraft + enviar comandos

Estado del servidor de Arduino Minecraft + enviar comandos

¡ Hola chicos!Hoy os muestro cómo se puede comprobar el estado del servidor del servidor de minecraft. También puede enviar comandos al servidor de Minecraft.Le deseo mucha diversión con este proyecto. ;)Si tiene preguntas puede dejar un comando.Paso
Máquina de estado de ánimo de Steampunk II

Máquina de estado de ánimo de Steampunk II

tenía algunos viejos puerta de cristal mandos que pensé sería realmente grandes iluminada por un LED.  Así que después de unas pruebas, se me ocurrió esta idea.  Tipo de como una cosa de mago de Oz... Las perillas de luz con una variable que cambia d
Estado de máquina y multitarea en arduino con expansores SPI

Estado de máquina y multitarea en arduino con expansores SPI

La semana pasada, pedía crear un sistema a fuegos artificiales del piloto con un arduino. Necesitaba unos 64 salidas para controlar los incendios. Una manera de hacerlo es utilizar expansores del IC. Por lo que existen 2 soluciones:-un expansor I2C p
Helipuerto de Arduino para mini Quad Copter

Helipuerto de Arduino para mini Quad Copter

Utilice este helipuerto para entrenamiento del aterrizaje de la precisión o desafía a tus amigos. ¿Por qué no establecer una pista y dejar que el helipuerto a tiempo tus vueltas?Si te gusta este instructable - por favor vote!¿Hagámosle frente - ya qu
Arduino líquido/polvo exacto sistema de dispensador

Arduino líquido/polvo exacto sistema de dispensador

Objetivo: Hacer algo para hacer alguna medición, ya sea para cocinar o de otra manera. No le líquidos y polvos en el mismo panel de control. Utiliza un Arduino para ejecutar el sistema.Nota: Ninguno de nosotros (los diseñadores) tienen todo eléctrico
Atenuador de luz de Arduino

Atenuador de luz de Arduino

Un système imite les ciclos du Jour.Un sistema de simulación de luz de día con RTC.Paso 1: introducciónCE système va permettre d'imiter ONU palanca de soleil (LV) et un coucher de soleil (CO), une fois par jour Cet appareil est destiné surtout aux él
Garaje de WEMO Belkin

Garaje de WEMO Belkin

El objetivo del proyecto es su puerta de garaje en un dispositivo de Internet de las cosas (IoT) controlado, es decir, ser capaz de abrir/cerrar la puerta y verificar el estado de su teléfono (iPhone, Android, etc.). Si bien hay muchos proyectos para