Skip to content

Instantly share code, notes, and snippets.

@hlev
Last active January 29, 2018 07:33
Show Gist options
  • Save hlev/fc7ea3de09b59c0ae2f206cdf2efcc5e to your computer and use it in GitHub Desktop.
Save hlev/fc7ea3de09b59c0ae2f206cdf2efcc5e to your computer and use it in GitHub Desktop.
3.3

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment