Mục lục:

Máy trạng thái và đa nhiệm trên Arduino với SPI mở rộng: 3 bước
Máy trạng thái và đa nhiệm trên Arduino với SPI mở rộng: 3 bước

Video: Máy trạng thái và đa nhiệm trên Arduino với SPI mở rộng: 3 bước

Video: Máy trạng thái và đa nhiệm trên Arduino với SPI mở rộng: 3 bước
Video: [Lập trình Arduino - FreeRTOS] Bài 3 - Quản lí tác vụ 2024, Tháng bảy
Anonim
Máy trạng thái và đa nhiệm trên Arduino với bộ mở rộng SPI
Máy trạng thái và đa nhiệm trên Arduino với bộ mở rộng SPI

Tuần trước, tôi đã yêu cầu tạo một hệ thống bắn pháo hoa bằng arduino. Nó cần khoảng 64 đầu ra để kiểm soát đám cháy. Một cách để làm điều đó là sử dụng bộ mở rộng IC. Vì vậy, 2 giải pháp có sẵn:

- một bộ mở rộng I2C nhưng nó cần biến tần khi bạn bật nguồn IC (xem hướng dẫn trước đây của tôi về máy trạng thái hữu hạn) vì tất cả các đầu ra nhanh chóng BẬT và TẮT: một vấn đề với pháo hoa.

-an SPI cũng dễ chạy và không có vấn đề gì khi bật nguồn.

Vì vậy, tôi quyết định nghiên cứu loại chất mở rộng này. Tôi cũng sử dụng một máy trạng thái với đa nhiệm để điều khiển 16 I / O kỹ thuật số và 2 đầu ra tương tự. Thẻ này được thiết kế để điều khiển các hệ thống tự động hóa như PLC.

Tôi cũng đã nghiên cứu sự khác biệt và sự dịch chuyển giữa các bản vẽ của biểu đồ trạng thái và một biểu đồ khác được sử dụng nhiều trong tự động hóa: SFC (Biểu đồ chức năng tuần tự) dựa trên lưới Petri trước đây.

en.wikipedia.org/wiki/Sequential_ Chức năng_…

fr.wikipedia.org/wiki/Grafcet

Bước 1: Thẻ và Mạch

Thẻ và mạch
Thẻ và mạch
Thẻ và mạch
Thẻ và mạch
Thẻ và mạch
Thẻ và mạch

Tôi sử dụng arduino una và 2 loại chip DIL:

- MCP23S17, bộ mở rộng I / O 2 x 16 được điều khiển bằng SPI

- MCP4921, DAC 12 bit, 0 / 5V

IC của chúng rất rẻ và đáng tin cậy và cũng rất dễ liên kết và lập trình. Trên sơ đồ, tôi đã sử dụng một số thành phần bổ sung như tụ điện tách, điện trở kéo xuống cho các đầu vào.

Bước 2: Chương trình chạy máy trạng thái đa nhiệm

Chương trình chạy máy trạng thái đa nhiệm
Chương trình chạy máy trạng thái đa nhiệm
Chương trình chạy máy trạng thái đa nhiệm
Chương trình chạy máy trạng thái đa nhiệm

Ý tưởng toàn cầu là điều khiển I / O kỹ thuật số và đồng thời khởi chạy các hiệu ứng BẬT / TẮT mờ dần trên các đèn LED được kết nối với cả hai đầu ra tương tự.

Một điều khác, tôi cố tình kết nối riêng rẽ các chân CS (chọn chip) để có nhiều khả năng hơn với nhiều IC hơn trên bus SPI. Vì vậy, tôi đã sử dụng:

- một thư viện đặc biệt cho máy trạng thái

-một thư viện đặc biệt cho MCP23S17

-Không có thư viện đặc biệt cho MCP4921, phần mềm kết nối CS và SPI là "tiện dụng" được thực hiện.

Bạn có thể thấy trên các bức ảnh bản dịch giữa máy trạng thái mong đợi và SFC (còn được gọi là GRAFCET hoặc gr7 trong tiếng Pháp). Một số thuật ngữ phổ biến: trạng thái concurent, đa nhiệm và đóng gói.

Tôi cung cấp các thư viện và mã nguồn với rất nhiều nhận xét. Để đọc và hiểu nó, bạn cũng phải đọc đồng thời biểu đồ trạng thái hoặc SFC.

Bước 3: Kết luận

Nó hoạt động !!

Khi bạn khởi động hệ thống, bạn nên đợi vài giây và sau đó sử dụng bộ mở rộng (thời gian để bắt đầu bus SPI).

Hệ thống có phản ứng rất nhanh và bạn cần tạo một thẻ giao diện nguồn nếu bạn muốn điều khiển bất kỳ máy nào. Xem các hướng dẫn trước đây của tôi, Nó rất dễ dàng !!

Thanx với các hướng dẫn rất thú vị và hiệu quả trên khắp thế giới.

Manu4371.

Đề xuất: