https://www.facebook.com/notes/5-perc-elektronika/az-állapotgép/402097883566053/
3.3 ... Mielőtt a konkrét kódkiegészítésre rátérnék, csináljunk előbb egy kis változtatást, nevezetesen a kapcsoló állapotának változtatását teljes egészében tegyük ki egy külön függvénybe és vezessünk be egy szenzort, ami a szobában lévő fény mennyiségét méri:
bool sotetvan() {
return analogRead(fenyszenzor) < 512
}
void kapcsol() {
if (digitalRead(kapcsolo) == HIGH) {
digitalWrite(lampa, HIGH);
kapcsoloelozmeny = HIGH;
}
else
{
digitalWrite(lampa, LOW);
kapcsoloelozmeny = LOW;
}
}
Így egy kicsit áttekinthetőbben tudjuk folytatni, nagyjából az alábbiak szerint:
void loop() {
while (sotetvan())
{
if (digitalRead(kapcsolo) != kapcsoloelozmeny) kapcsol();
}
Serial.println("A valasz a nagy kérdésre: 42.");
}
Ez továbbra is több szempontból tökéletlen és az izzó kiégésének esetétől eltekintve továbbra is csak egy irányba működik, ahogy később kifejted, viszont szerintem érthetőbb, a sotetvan() elhagyható, a lényeg, hogy a kiszervezett fv. azt szervezi ki, amit a szöveg állít.