Оглавление:

Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага
Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага

Видео: Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага

Видео: Конечный автомат и многозадачность на Arduino с расширителями SPI: 3 шага
Видео: Уроки Ардуино. Как написать скетч: многозадачность на millis() и переключение режимов 2024, Июль
Anonim
Конечный автомат и многозадачность на Arduino с расширителями SPI
Конечный автомат и многозадачность на Arduino с расширителями SPI

На прошлой неделе я просил создать систему для пилотирования фейерверков с помощью Arduino. Для борьбы с пожарами требовалось около 64 выходов. Один из способов сделать это - использовать расширители IC. Итак, доступны 2 решения:

- расширитель I2C, но ему нужен инвертор, когда вы включаете IC (см. мои предыдущие инструкции по конечному автомату), потому что все выходы быстро включаются и выключаются: проблема с фейерверком.

-an SPI также легко запускается и без проблем при включении.

Поэтому я решил изучить этот вид экспандеров. Я также использую конечный автомат с многозадачностью для управления 16 цифровыми входами / выходами и 2 аналоговыми выходами. Эта карта предназначена для управления системами автоматизации, такими как ПЛК.

Я также изучил различия и трансляцию между рисунками диаграммы состояний и другого графа, широко используемого в автоматизации: SFC (Sequential Function Chart), основанного на прежних сетях Петри.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Шаг 1: карты и схемы

Карты и схемы
Карты и схемы
Карты и схемы
Карты и схемы
Карты и схемы
Карты и схемы

Я использую arduino uno и 2 типа микросхем DIL:

- MCP23S17, расширитель ввода / вывода 2 x 16, управляемый SPI

-MCP4921, ЦАП 12 бит, 0 / 5В

Эти микросхемы очень дешевы и надежны, а также их очень легко связать и запрограммировать. На схемах я использовал некоторые дополнительные компоненты, такие как развязывающие конденсаторы, понижающие резисторы для входов.

Шаг 2: Программа для запуска многозадачного конечного автомата

Программа для запуска многозадачного конечного автомата
Программа для запуска многозадачного конечного автомата
Программа для запуска многозадачного конечного автомата
Программа для запуска многозадачного конечного автомата

Глобальная идея состоит в том, чтобы управлять цифровым вводом / выводом и одновременно запускать эффекты плавного включения / выключения светодиодов, подключенных к обоим аналоговым выходам.

Другое дело, я специально делаю отдельное соединение выводов CS (выбор микросхемы), чтобы иметь больше возможностей для большего количества микросхем на шине SPI. Итак, я использовал:

- специальная библиотека для конечного автомата

-специальная библиотека для MCP23S17

-НЕТ специальной библиотеки для MCP4921, CS и софта подключения SPI "удобно" сделано.

Вы можете увидеть на рисунках перевод между ожидаемым конечным автоматом и SFC (также называемый GRAFCET или gr7 на французском). Некоторые общие термины: конкурентные состояния, многозадачность и инкапсуляция.

Я предоставляю библиотеки и исходный код с большим количеством комментариев. Чтобы прочитать и понять это, вы также должны одновременно прочитать диаграмму состояний или SFC.

Шаг 3: заключение

Оно работает!!

Когда вы включаете систему, вы ДЕЙСТВИТЕЛЬНО ждете несколько секунд, а затем используете расширитель (время для инициации шины SPI).

Система очень быстро реагирует, и вам нужно создать карту интерфейса питания, если вы хотите управлять какой-либо машиной. См. Мои предыдущие инструкции, это очень просто !!

Спасибо очень интересным и рабочим руководствам по всему миру.

Manu4371.

Рекомендуемые: