Thợ điện vô duyên học điện: Tự học vi điều khiển Bài 6

Vô Duyên - Hỏi Đáp Về Smart Home: Bài 6 cách đọc tín hiệu từ nút nhấn và điều khiển LED, giúp anh em thợ điện lập trình Arduino cho nhà thông minh.

Tác giả: Thợ điện vô duyên - Phạm minh liêm

Hé lô anh em, Vô Duyên** lại lên đây!

Bữa nay anh em mình lại tỉ tê chuyện nghề ha. 

Anh em muốn tui viết bài thứ sáu trong chuyên mục "Vô Duyên - Hỏi Đáp Về Smart Home" với chủ đề "Tự học vi điều khiển" đúng không? 

Vụ này thì tui khoái nè, vì nó là cái "cần câu cơm" của tui mà.

Ở bài trước, anh em mình đã biết cách làm cho cái đèn nó chớp tắt rồi. 

Đó là bài học về tín hiệu đầu ra (output). 

Giờ mình học thêm cái nữa, là tín hiệu đầu vào (input). 

Nói thẳng luôn, anh em mình muốn làm smart home thì phải biết cách cho cái Arduino nó "nghe", nó "nhận" tín hiệu từ bên ngoài. 

Và cách dễ nhất để học cái này là xài nút nhấn.

Thôi, không nói nhiều nữa, anh em mình bắt đầu thôi.

Bài 6: Đọc tín hiệu từ nút nhấn và điều khiển đèn LED

1. Chuẩn bị "đồ nghề"

Anh em mình cần có mấy món này:

  • Một bo Arduino Uno (hoặc bất kỳ bo Arduino nào).
  • Một cái breadboard (bảng mạch cắm).
  • Một nút nhấn 4 chân.
  • Một điện trở 10k Ohm.
  • Một cái đèn LED.
  • Một điện trở 220 Ohm (cho cái đèn LED).
  • Vài sợi dây nối (jumper wires).

2. Mạch điện (đấu dây)

Nói thiệt, cái này quan trọng lắm, anh em nhìn hình rồi làm theo cho kỹ. 

Mình phải đấu dây cho đúng để cái mạch nó chạy.

  • Nối đèn LED
    • Nối chân dài (anode) của đèn LED vào chân số 13 trên bo Arduino qua một điện trở 220 Ohm. 
    • Chân ngắn (cathode) của đèn LED thì nối xuống chân GND (cực âm) của Arduino.
  • Nối nút nhấn
    • Nối một chân của nút nhấn vào chân số 2 trên bo Arduino
    • Chân đối diện của nút nhấn thì nối xuống chân GND của Arduino
    • Chân còn lại của nút nhấn thì nối vào chân 5V của Arduino qua một điện trở 10k Ohm.

Lưu ý: Mắc cái điện trở 10k Ohm này để làm cái gì? 

  • Nó giống như một cái "cửa" vậy đó. 
  • Khi anh em mình không nhấn nút, nó sẽ giữ cho cái chân số 2 luôn ở mức LOW (0V). 
  • Còn khi anh em mình nhấn nút, nó sẽ "mở cửa" cho dòng điện 5V chạy vào.

3. Viết chương trình

Anh em mình mở phần mềm Arduino IDE lên, rồi copy cái đoạn code dưới đây vào:

// Khai báo chân cho đèn LED và nút nhấn

const int nutNhan = 2; // Nút nhấn được nối vào chân số 2

const int denLed = 13; // Đèn LED được nối vào chân số 13

// Khai báo biến để lưu trạng thái của nút nhấn

int trangThaiNutNhan = 0;

void setup() {

  // Đặt chân đèn LED là đầu ra (OUTPUT)

  pinMode(denLed, OUTPUT);

  // Đặt chân nút nhấn là đầu vào (INPUT)

  pinMode(nutNhan, INPUT);

}

void loop() {

  // Đọc trạng thái của nút nhấn và lưu vào biến

  trangThaiNutNhan = digitalRead(nutNhan);

  // Kiểm tra nếu nút nhấn được bấm

  if (trangThaiNutNhan == HIGH) {

    // Bật đèn LED

    digitalWrite(denLed, HIGH);

  } else {

    // Ngược lại, tắt đèn LED

    digitalWrite(denLed, LOW);

  }

}

4. Giải thích chương trình

  • "const int nutNhan = 2; và const int denLed = 13;"
    • Giống như anh em mình đặt tên cho mấy cái chân vậy đó. 
    • Thay vì phải nhớ số 2, số 13, thì giờ mình cứ gọi tên "nutNhan" và "denLed" là được.
  • "pinMode(denLed, OUTPUT);": 
    • Giống như bài trước, câu này để dặn Arduino là chân này dùng để điều khiển.
  • "pinMode(nutNhan, INPUT);": 
    • Câu này để dặn Arduino là chân này dùng để nhận tín hiệu từ bên ngoài.
  • "trangThaiNutNhan = digitalRead(nutNhan);": 
    • Cái này là câu lệnh mới nè. "digitalRead()" giống như cái "tai" của Arduino vậy. 
    • Nó sẽ lắng nghe xem cái chân "nutNhan" đang ở mức "HIGH" (có điện) hay "LOW" (không có điện).
  • "if (trangThaiNutNhan == HIGH) { ... } else { ... }": 
    • Cái này là câu lệnh điều kiện. if nghĩa là Nếu, và else là Ngược lại
    • Câu lệnh này sẽ kiểm tra xem trạng thái của nút nhấn có ở mức HIGH hay không. 
    • Nếu có, nó sẽ thực hiện những câu lệnh bên trong.

Tổng kết

Tóm lại, bài này anh em mình đã học được cách cho cái Arduino nó "nghe", nó "nhận" tín hiệu từ bên ngoài. 

Giờ anh em mình có thể làm mấy cái mạch điều khiển đơn giản rồi đó.

Nói nhiêu đó đủ rồi. 

Hẹn anh em ở bài viết tiếp theo, mình sẽ học cách xài biến trở để điều chỉnh độ sáng đèn LED\!

Nếu cần tư vấn về tư vấn thiết kế, lắp đặt thi công hay bảo trì sửa chữa các thiết bị và hệ thống smart home, cứ liên hệ tui qua số điện thoại 0902633999 (có Zalo và WhatsApp) để được giải đáp nhé!

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.

[facebook]

MKRdezign

{facebook#https://facebook.com/smarthomeminhliem} {twitter#http://twitter.com} {google-plus#http://google.com} {pinterest#http://pinterest.com} {youtube#https://youtube.com/smarthomeminhliem} {instagram#http://instagram.com/smarthomeminhliem}

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget