Daftar Isi:

State Machine dan Multitasking di Arduino Dengan SPI Expanders: 3 Langkah
State Machine dan Multitasking di Arduino Dengan SPI Expanders: 3 Langkah

Video: State Machine dan Multitasking di Arduino Dengan SPI Expanders: 3 Langkah

Video: State Machine dan Multitasking di Arduino Dengan SPI Expanders: 3 Langkah
Video: #BB5 Moving your Arduino to a multi-tasking State Machine - Easy Intro 2024, November
Anonim
State Machine dan Multitasking di Arduino Dengan SPI Expanders
State Machine dan Multitasking di Arduino Dengan SPI Expanders

Minggu lalu, saya meminta untuk membuat sistem untuk mengemudikan kembang api dengan arduino. Dibutuhkan sekitar 64 output untuk mengendalikan kebakaran. Salah satu caranya adalah dengan menggunakan IC expander. Jadi 2 solusi tersedia:

- sebuah expander I2C tetapi membutuhkan inverter ketika Anda menyalakan IC (lihat instruksi saya sebelumnya pada mesin keadaan terbatas) karena semua output berjalan dengan cepat ON dan OFF: masalah dengan kembang api.

-SPI juga mudah dijalankan dan tidak ada masalah saat dihidupkan.

Jadi saya memutuskan untuk mempelajari jenis ekspander ini. Saya juga menggunakan mesin negara dengan multitasking untuk mengontrol 16 I/O digital dan 2 output analog. Kartu ini dirancang untuk mengontrol sistem otomasi seperti PLC.

Saya juga mempelajari perbedaan dan terjemahan antara gambar diagram keadaan dan grafik lain yang banyak digunakan dalam otomatisasi: SFC (Sequential Function Chart) berdasarkan jaring Petri sebelumnya.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Langkah 1: Kartu dan Sirkuit

Kartu dan Sirkuit
Kartu dan Sirkuit
Kartu dan Sirkuit
Kartu dan Sirkuit
Kartu dan Sirkuit
Kartu dan Sirkuit

Saya menggunakan arduino uno dan 2 jenis chip DIL:

- MCP23S17, expander I/O 2 x 16 yang dikontrol dengan SPI

-MCP4921, DAC 12 bit, 0/5V

IC ini sangat murah dan dapat diandalkan dan juga sangat mudah untuk ditautkan dan diprogram. Pada skema saya menggunakan beberapa komponen tambahan seperti kapasitor decoupling, resistor pull-down untuk input.

Langkah 2: Program untuk Menjalankan Mesin Status Multitask

Program untuk Menjalankan Mesin Status Multitask
Program untuk Menjalankan Mesin Status Multitask
Program untuk Menjalankan Mesin Status Multitask
Program untuk Menjalankan Mesin Status Multitask

Ide globalnya adalah untuk mengontrol I/O digital dan sementara itu meluncurkan efek ON/OFF fade pada LED yang terhubung ke kedua output analog.

Hal lain, saya sengaja melakukan koneksi terpisah dari pin CS (pilih chip) untuk memiliki lebih banyak kemungkinan untuk lebih banyak IC pada bus SPI. Jadi saya menggunakan:

- perpustakaan khusus untuk mesin negara

-library khusus untuk MCP23S17

-TIDAK ADA perpustakaan khusus untuk MCP4921, CS dan soft koneksi SPI sudah "berguna".

Anda dapat melihat pada gambar terjemahan antara mesin negara yang diharapkan dan SFC (juga disebut GRAFCET atau gr7 dalam bahasa Prancis). Beberapa istilah umum: status konkuren, multitask, dan enkapsulasi.

Saya menyediakan perpustakaan dan kode sumber dengan banyak komentar. Untuk membaca dan memahaminya, Anda juga harus membaca secara bersamaan diagram keadaan atau SFC.

Langkah 3: Untuk Menyimpulkan

Berhasil!!

Saat Anda menyalakan sistem, Anda DO menunggu beberapa detik dan kemudian menggunakan expander (waktu untuk memulai bus SPI).

Sistem memiliki reaksi yang sangat cepat dan Anda perlu membuat kartu antarmuka daya jika Anda ingin mengontrol mesin apa pun. Lihat instruksi saya sebelumnya, Sangat mudah!!

Terima kasih untuk tutorial yang sangat menarik dan berfungsi di seluruh dunia.

Manu4371.

Direkomendasikan: