Arduino ändlig tillståndsmaskin och parallellbearbetning (1 / 5 steg)
Steg 1: Den första tillståndsdatorn: 1 master och 3 concurent slavar
Styrgränssnittet:
Jag använder en arduino uno med en liten gränssnitt (2 knappar (ATU1, ATU2) för trigger switch på och 3 lysdioder (11, 12, 13) för utdata åtgärder) och en LCDKeypad.
Maskiner:
Mikrokontroller kan styra en mästare maskin som kan starta 3 differents slav-maskiner:
-FB maskinen blinka en led på 1Hz. Om ATU1 är sköt, den gör oduglig FB maskinen, om ATU1 dras, det startar om FB maskinen
-SB maskinen blinka en led på en snabbare frekvens med ingen synkronisering eller interaktion med FB maskinen. Om vänster trycks (på stigande kanten), den gör oduglig SB maskinen, om Välj trycks (på stigande kanten), SB maskinen startas om.
-PUMP maskinen som drivs stopp av en utgång eller ett relä att starta en pump. Om upp trycks (på stigande kanten), produktionen är hög, om ATU2 trycks (på stigande kanten) utdata är bytte OFF.
Detta kallas enn inkapsling : när du inaktiverar en inkapsling stat, varje inkapslade stater är inaktivera samtidigt.
När du startar parallella staterna, inom automation, du gör en divergens av samtidiga sekvenser eller maskiner.
Schematiskt:
På grund av den LCDkeypad skölden, en hel del stift används: stift 4, 5, 6, 7, 8, 9, 10. Tryckknapparna knappsatsen är analog på stift A0.
Så det är fortfarande några mängd stiften för att styra ett system. Detta anledningen varför jag har lagt till en I2C i/o-expansion krets används i nästa steg. Du kommer att ignorera det i detta steg: bara hålla på dig ATU1, ATU2, tangentbord knappar och stift 11, 12, 13 digitala utgångar.
Programmet:
Många kommentarer är inne.
Meddelanden som visas:
Den första raden visar vilken maskin lanseras.
Den andra raden visar om åtgärder kör (mynt flyttar från land till land).