HƯỚNG DẪN LẬP TRÌNH NGẮT NGOÀI TRÊN ARDUINO

Arduino Shop xin chào quý khách hàng, chúc quý khách hàng một ngày mới đầy năng lượng. Hôm nay, Arduino Shop xin hướng dẫn mọi người một cách lập trình ngắt ngoài cho arduino. Thực ra, đây không phải là vấn đề mới nhưng với các bạn mới tìm hiểu, thì nó cũng không dễ dàng gì. Do vậy, thay gì bạn phải tự nghiên cứu từ đầu, thì hãy đọc bài này làm theo và phát triển nó rộng hơn trong ứng dụng cụ thể của bạn. Thực ra, Ngắt ngoài dùng rất nhiều trong các dự án, các bạn lưu ý, nếu ai đã từng làm tủ điện, có một nút mà không tủ điện nào là không có đó là nút E_STOP. Nút này cho phép ứng dụng/ tủ điện/ hệ thống của bạn dừng ngay tức khắc. Vậy để hiểu xâu về nó như thế nào, Arduino Shop mời các bạn đọc kỹ bài hướng dẫn lập trình ngắt ngoài với arduino bên dưới nhé. Nào, Let's Go!

Ngày đăng: 13-10-2016

5,673 lượt xem

1. ĐẶT VẤN ĐỀ

- Ngắt ngoài là gì?

Đây là một chức năng khá là đặc biệt ở vi điều khiển. Với chức năng này, cho phép chúng ta thực thi lệnh ở mọi lúc mọi nơi mà không cần quan tâm, vi điều khiển nó đang chạy ở đoạn lệnh nào, và nó chạy như thế nào. Nếu có ngắt ngoài xảy ra( tức có tín hiệu tác động lên các chân ngắt) thì nó ngay lập tức thực thi lệnh.

- Nó được dùng như thế nào?

Như đã nói ở đầu bài, nếu sử dụng nó cho chức năng dừng ngay lập tức của máy E_STOP trong trường hợp có sự cố xảy ra thì tuyệt cú mèo. Nó sẽ giúp hệ thống dừng ngay mà không trì hoản gì cả. Hoặc nó còn được dùng với timer để đếm bộ encoder...

- Cách thức hoạt động như thế nào?

Khi có ngắt xảy ra, nó sẽ thực hiện đoạn chương trình ngắt đó, và khi hết sự kiện ngắt, thì nó ngay lập tức trở về trạng thái mà nó bắt đầu nhảy đi và chạy tiếp tục. Lúc đó, vi điều khiển sẽ không trì hoản một khoản thời gian nào, và đáp ứng được tính thời gian thực trong hệ thống.

2. SỬ DỤNG NGẮT NGOÀI TRÊN ARDUINO

- Ngắt ngoài sẽ đáp ứng được ngay lập tức từ tín hiệu bên ngoài.

- Sơ đồ chân ngắt ngoài của các board arduino bên dưới

so-do-chan-ngat-ngoai

Sơ đồ chân ngắt ngoài của board arduino

- Ngắt ngoài có các dạng ngắt chính như ngắt tác động mở mức cao( HIGH), ngắt tác động ở mức thấp(LOW), ngắt tác đông xung cạnh lên(RISING), tác động xung cạnh dưới( FALLING), tác động theo mức có sự chuyển đổi từ thấp lên cao hoặc ngược lại( CHANGE).

- Và đây là một ví dụ ứng dụng của ngắt. Giả sử, chúng ta có sơ đồ phần cứng như bên dưới

so-do-ket-noi-ngat

Sơ đồ đấu dây

3. Code Mẫu

const byte ledPin = 13; // Tín hiệu đèn LED
const byte interruptPin = 2; // sử dụng chân ngắt ngoài số 2
volatile byte state = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE); // Hàm gọi ngắt, khi có sự thay đổi mức tín hiệu trên chân số 2(interruptPIN) thì ngay lập tức ngắt sẽ tới chương trình blink để thực hiện và đảo trạng thái của bit state
}

void loop() {
  digitalWrite(ledPin, state);
}

void blink() {
  state = !state;
}

4. Video:  Đang cập nhật

Arduino Shop sẽ ra video về ví dụ này trên phần mềm protues. Do vậy, nếu bạn nào chưa rõ hoặc chưa làm được, có thể xem trên video này. 

5. Lời kết:

Đến đây, Arduino Shop xin dừng lại hướng dẫn lập trình ngắt trên arduino. Chúc các bạn thực hành tốt nhé. Bên cạnh đó, Arduino còn nhiều ứng dụng hay trên trang này luôn, các bạn đón xem nhé.

Hiện bên Arduino Shop cũng chuyên cung cấp các board mạch arduino và arduino trong công nghiệp, các bạn xem qua nếu có nhu cầu thì alo nhé.

indrruino-mega-2560-shield

Arduino dùng trong công nghiệp

GỌI NGAY - 0902 37 12 52 (Mr Quốc): Tư vấn KT

ĐỂ ĐƯỢC TƯ VẤN VÀ CUNG CẤP GIẢI PHÁP KỊP THỜI CHO BẠN

ARDUINO SHOP

Địa chỉ: Số 41 Gò Dưa, Phường Tam Bình, Quận Thủ Đức, TP. Hồ Chí Minh
Email: arduinoshophcm@gmail.com

Bình luận (0)

Gửi bình luận của bạn

Captcha
<