Spisu treści:

Maszyna stanowa i wielozadaniowość na Arduino z ekspanderami SPI: 3 kroki
Maszyna stanowa i wielozadaniowość na Arduino z ekspanderami SPI: 3 kroki

Wideo: Maszyna stanowa i wielozadaniowość na Arduino z ekspanderami SPI: 3 kroki

Wideo: Maszyna stanowa i wielozadaniowość na Arduino z ekspanderami SPI: 3 kroki
Wideo: Arduino millis i maszyna stanów zamiast delay 2024, Lipiec
Anonim
Maszyna stanowa i wielozadaniowość na Arduino z ekspanderami SPI
Maszyna stanowa i wielozadaniowość na Arduino z ekspanderami SPI

W zeszłym tygodniu prosiłem o stworzenie systemu do pilotowania fajerwerków za pomocą arduino. Do kontrolowania pożarów potrzebował około 64 wyjść. Jednym ze sposobów na to jest użycie ekspanderów IC. Dostępne są więc 2 rozwiązania:

- ekspander I2C, ale potrzebuje falownika po włączeniu IC (patrz moja poprzednia instrukcja na maszynie skończonej), ponieważ wszystkie wyjścia szybko się włączają i wyłączają: problem z fajerwerkami.

-SPI również łatwy w obsłudze i bez problemu przy włączaniu.

Postanowiłem więc zbadać tego rodzaju ekspandery. Używam również maszyny stanu z wielozadaniowością do sterowania 16 cyfrowymi I/O i 2 wyjściami analogowymi. Ta karta jest przeznaczona do sterowania systemami automatyki, takimi jak PLC.

Przestudiowałem również różnice i translację między rysunkami diagramu stanów a innym ciężkim grafem używanym w automatyce: SFC (Sekwencyjny Wykres Funkcji) oparty na dawnych sieciach Petriego.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Krok 1: Karty i obwody

Karty i obwody
Karty i obwody
Karty i obwody
Karty i obwody
Karty i obwody
Karty i obwody

Używam arduino uno i 2 rodzajów chipów DIL:

- ekspander we/wy MCP23S17, 2 x 16 sterowany za pomocą SPI

-MCP4921, DAC 12 bitów, 0/5V

Te układy scalone są bardzo tanie i niezawodne, a także bardzo łatwe do łączenia i programowania. Na schemacie użyłem dodatkowych elementów, takich jak kondensatory odsprzęgające, rezystory pull-down na wejściach.

Krok 2: Program do uruchamiania wielozadaniowej maszyny stanowej

Program do uruchamiania wielozadaniowej maszyny stanowej
Program do uruchamiania wielozadaniowej maszyny stanowej
Program do uruchamiania wielozadaniowej maszyny stanowej
Program do uruchamiania wielozadaniowej maszyny stanowej

Globalną ideą jest sterowanie cyfrowymi wejściami/wyjściami, a w międzyczasie uruchamianie efektów Fade ON/OFF na diodach LED podłączonych do obu wyjść analogowych.

Kolejna rzecz, celowo robię oddzielne połączenie pinów CS (wybór układu), aby mieć więcej możliwości do większej liczby układów scalonych na magistrali SPI. Więc użyłem:

- specjalna biblioteka dla maszyny stanowej

-specjalna biblioteka dla MCP23S17

-Brak specjalnej biblioteki dla MCP4921, oprogramowanie połączenia CS i SPI jest "przydatne" zrobione.

Możesz zobaczyć na zdjęciach tłumaczenie między oczekiwaną maszyną stanów a SFC (zwane również GRAFCET lub gr7 po francusku). Kilka popularnych terminów: stany współbieżne, wielozadaniowość i enkapsulacja.

Biblioteki i kod źródłowy dostarczam z dużą ilością komentarzy. Aby go przeczytać i zrozumieć, należy jednocześnie czytać diagram stanów lub SFC.

Krok 3: Podsumowując

To działa!!

Po włączeniu systemu odczekaj kilka sekund, a następnie użyj ekspandera (czas na uruchomienie magistrali SPI).

System reaguje bardzo szybko i musisz stworzyć kartę interfejsu zasilania, jeśli chcesz sterować jakąkolwiek maszyną. Zobacz moje poprzednie instrukcje, to bardzo proste !!

Dzięki bardzo ciekawym i działającym tutorialom na całym świecie.

Manu4371.

Zalecana: