NodeMCU GPIO ngắt với Arduino IDE

Giới thiệu

Ngắt là một sự kiện xảy ra ngẫu nhiên trong luồng liên tục. Nó giống như một cuộc gọi bạn có khi bạn bận rộn với một số công việc và tùy thuộc vào ưu tiên cuộc gọi, bạn quyết định có nên tham dự hoặc bỏ bê nó hay không.

NodeMCU dựa trên ESP8266 có tính năng ngắt trên các chân GPIO của nó. Chức năng này có sẵn trên chân D0-D8 của NodeMCU Dev Kit.

Chân GPIO Ngắt được hỗ trợ thông qua Function Interrupt của Arduino: attachInterrupt, detachInterrupt.

Ngắt có thể được gắn vào bất kỳ chân GPIO nào, ngoại trừ chân D0 / GPIO16. Các kiểu ngắt Arduino chuẩn được hỗ trợ: CHANGE, RISING, FALLING.

Arduino Interrupt functions cho NodeMCU

Hãy xem các function được sử dụng để thiết lập các ngắt cho bộ NodeMCU trong Arduino IDE.

attachInterrupt()

Function được sử dụng gán ngắt cho chân được chỉ định

Cú pháp: attachInterrupt(pin, ISR(callback function), interrupt type/mode);

Thông số

pin: Chân được chọn cho ngắt.

ISR (callback function): ISR gọi khi ngắt xảy ra; function này không nhận bất kỳ tham số nào và không trả về gì cả.

Interrupt type/mode: Nó định nghĩa khi nào ngắt được kích hoạt.

CHANGE: Được sử dụng để kích hoạt ngắt bất cứ khi nào giá trị chân ngắt thay đổi.

RISING: Được sử dụng để kích hoạt ngắt khi giá trị chân ngắt đi từ thấp đến cao.(Cạnh  lên)

FALLING: Được sử dụng để kích hoạt ngắt khi giá trị chân ngắt đi từ cao xuống thấp.(Cạnh xuống)

Trả về: null

detachInterrupt ()

Function này được sử dụng để vô hiệu hóa ngắt trên chân GPIO được chỉ định.

Cú pháp: detachInterrupt(pin)

Thông số:

pin: Chân GPIO ngắt để vô hiệu hóa.

Trả về: null

Ví dụ

NodeMCU GPIO ngắt với Arduino IDE

Viết chương trình Arduino thiết lập ngắt cạnh lên trên chân D2 của Kit NodeMCU. Ở đây, dùng nút nhấn nối với chân D2 để tạo ra ngắt cạnh lên và in ra màn hình Serial thời gian ngắt xảy ra (tính bằng mili giây).

Chương trình ngắt GPIO 

Kết quả chương trình

Download File

Source Code

Bài viết các bạn có thể tham khảo:

Nguồn tham khảo: electronicwings.com

Viết một bình luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.