Stopping- tila ei ole välttämätön mutta arduinon kannalta moottorin sammuminen on kuitenkin hidas tapahtuma, loop() ajaa monta kertaa sen aikana kun kone sammuu (sekunteja kuitenkin koko tapahtuma).
Ja waiting- tilassa ei tietenkään saa olla koodia joka hämääntyy siitä että moottorilla on vielä kierroksia enemmän kuin 0.
Riippuu myös miten sammutus ja käynnistys tapahtuu, oikeastaanhan pitäisi ensin hallitusti lopettaa lataus (= pwm pienelle), kääntää sammutuslähtö ja sitten odottaa että kierrokset/tärinä ilmaisee että on seis.
2 ensimmäistä menee tilanvaihdossa running -> waiting mutta missä odotetaan että on oikeasti sammunut ?
Yksi tapa olla lisätä stopping- tila odotusta varten ja vasta kun todetaan että on oikeasti sammunut niin sammutuslähdön nollaus ja tilanvaihto -> waiting.
Toinen vaihtoehto on tietysti sammutuslähdön palautus ajo-asentoon vasta silloin kun käynnistetään. Tyyliin sammutuslähdön nollaus, odotetaan esim 200ms koska rele on hidas ja sitten starttilähtö päälle jne. Ja tässä välissä delay(200) on ihan ok eikä kannata tehdä ajastimella.