Tạo xung thủ công

Một phần của tài liệu Hướng dẫn lập trình PIC với arduino (Trang 77 - 78)

10. Tạo ra các dạng sóng lặp lại

10.1 Tạo xung thủ công

Một cặp bộ định thời gian trễ được kết nối chéo có thể được sử dụng để tạo xung lặp lại, như thể hiện trong ví dụ sau.

#include <plcLib.h>

/* Programmable Logic Controller Library for the Arduino and Compatibles Repeating pulse using a pair of linked on-delay timers

Connections:

Input - switch connected to input X0 (Arduino pin A0) Output - LED connected to output Y0 (Arduino pin 3)

Software and Documentation:

void setup() {

setupPLC(); // Setup inputs and outputs void loop() {

in(X0); // Read Input 0 (enable) andNotBit(Y0); // And with inverted output timerOn(TIMER0, 900); // 900 ms (0.9 s) delay set(Y0); // Set Output 0 on time- out

Listing 17. Xung lặp lại bằng cách sử dụng một cặp bộ định thời gian trễ được

liên kết (Source: File > Examples > plcLib> Waveforms > PulsedOutputManual)

Khi chương trình đang chạy, bạn sẽ thấy rằng liên tục nhấn enable đầu vào (X0) làm cho đầu ra (Y0) bật trong 0,1 giây, sau đó tắt 0,9 giây theo một trình tự lặp lại..

Chương trình sử dụng một cặp bộ định thời gian trễ, cộng với một chốt cài đặt lại dựa trên đầu ra Y0. Bộ hẹn giờ đầu tiên được bật ban đầu, giả sử đầu ra Y0 bằng 0 và đầu vào cho phép cũng được bật. Đầu ra bộ hẹn giờ đầu tiên tăng cao sau 900 ms, lần lượt đặt đầu ra Y0 thành 1. Tại thời điểm này, bộ định thời trễ thứ hai được bật và bắt đầu đếm. Sau 100 ms nữa, đầu ra bộ định thời thứ hai được đặt, điều này làm cho đầu ra Y0 bị xóa và toàn bộ chu kỳ bắt đầu lại.

Đây là một ví dụ về Máy trạng thái hữu hạn (FSM) rất đơn giản, là cơ sở của biểu đồ chức năng tuần tự.

Đừng lo lắng nếu ví dụ trên có vẻ khá phức tạp, vì chức năng tương tự này được cung cấp bởi lệnh timerCycle (), sẽ được thảo luận tiếp theo.

Một phần của tài liệu Hướng dẫn lập trình PIC với arduino (Trang 77 - 78)

Tải bản đầy đủ (DOCX)

(137 trang)
w