Go Down

Topic: New State machine tutorial (Read 2314 times) previous topic - next topic

jbellavance

IHi,

I have just finished a 3 parts State machine tutorial.

You can find it here.

Let me know what you think about it.

Jacques
If I can help...

Welease_Woggah

Bit of a leap of faith to think that someone new to FSMs will know what an enum is.


jbellavance

Quote
What is a state machine?
It is a way to describe what a system is designed to do (output) depending of the state is presently in. As an example, we could use an LED. An LED can only be in one of two states: {ON, OFF}. Each state is mutually exclusive of the other. An LED cannot be simultaneously ON and OFF. There has to be one of the states that have to be declared as the start state. We will also have to remember in which state the machine currently is (the current state).
enum LedStates{ON, OFF};  //The names of all states
LedStates ledState = ON;  //The start state (and the current state after that)
I believe that those two lines, along with the the paragraph above them is simple enough to understand.

Someone new to the state machine concept are not necessarily new to programming. This tutorial is not about C++. It is about implanting a state machine in Arduino's environment which happens to be written in C++.

I my mind, using a "switch" construct is not easier than using enum, since I have met on this site, a few persons that only uses "if" constructs, "since you can to everything with that construct" and won't have anything to do with "switch". But I insist in using it because the "switch" construct is , IMHO, ideal to describe a state machine's behaviour.

So, yes, it is a (double) leap of faith.

Jacques
If I can help...

Go Up