Stap 1: De eerste statusmachine: 1 meester en 3 concurent slaven
De controle-interface:
Ik gebruik een arduino uno met een kleine interface (2 knoppen (ATU1, ATU2) voor trigger schakeloptie op en 3 LEDS (11, 12, 13) voor uitvoer actie) en een LCDKeypad.
De machines:
De microcontroller kunt een Master machine die 3 differents slaaf machines starten kan:
-de machine FB een led 1 Hz knipperen. Als ATU1 wordt geduwd, wordt het uitgeschakeld het FB-machine, als ATU1 wordt getrokken, op de FB machine herstarten
-de machine SB knipperen een led op een snellere frequentie met geen synchronisatie of interactie met de FB-machine. Als links (op de stijgende rand) wordt ingedrukt, wordt het uitgeschakeld de SB-machine, als SELECT is ingedrukt (op de stijgende rand), het opnieuw starten van de SB-machine.
-de pomp-machine die wordt uitgevoerd stoppen van een uitvoer- of een relais om te beginnen met een pomp. Als UP wordt ingedrukt (op de stijgende rand), de output is hoog, als ATU2 wordt ingedrukt (op de stijgende rand) de uitvoer is switched OFF.
Dit eenn inkapseling genoemd: wanneer u een inkapseling staat uitschakelt, elke ingekapselde Staten zijn uitschakelen op hetzelfde moment.
Wanneer u parallelle toestanden, in automatisering start, jij een divergentie of gelijktijdige Sequences of machines.
Het schema:
Vanwege het LCDkeypad schild, een heleboel pennen worden gebruikt: 4, 5, 6, 7, 8, 9, 10, pennen. De drukknoppen van het toetsenblok zijn analoog op pin A0.
Het blijft dus een paar hoeveelheid pinnen aan een controlesysteem. Dit de reden waarom ik heb toegevoegd een I2C i/o-uitbreiding circuit gebruikt in de volgende stappen. Je zal negeren bij deze stap: hou op je geest ATU1, ATU2, toetsenbord knoppen en de pin 11, 12, 13 digitale uitgangen.
Het programma:
Er zijn een heleboel reacties binnen.
De berichten worden weergegeven:
De eerste regel wordt weergegeven welke machine wordt gelanceerd.
De tweede regel wordt weergegeven als acties (munt verplaatsen uitvoert van staat tot staat).