Arduino căn bản bài 02: Đọc nút nhấn và hiển thị ra LED (tiếp theo)

Chào các bạn. Bài trước mình đã biết cách làm sao để đọc trang thái một nút nhấn rồi. Hôm nay mình sẽ tiếp tục tìm hiểu thêm với nút nhấn nhé.
Bài trước khi các bạn nhấn nút đèn sẽ sáng. Thả nút ra đèn sẽ tắt.

Hôm nay mình làm sao để:

👉 Nếu “nút được nhấn” thì “đèn sáng”, thả nút ra “đèn vẫn sáng”
👉 Nhấn lại lần nữa thì “đèn tắt”. và tiếp tục như vậy.

Trong bài này mình sẽ biết thêm:

✔ Cách lồng 2 hàm điều kiện: If…..else
✔ Phép so sánh khác nhau giữa hai biến.
✔ Phép logic nghịch đảo bit.

Cach sử dụng hàm điều kiện IF….ELSE

if (điều kiện)
{
nếu thỏa mãn điều kiện bên trong hàm if, thì thực hiện các câu lệnh
trong dấu ngoặc nhọn này
}
else
{
nếu điều kiện trong hàm if không được thỏa mãn, thì thực hiện các câu
lệnh trong dấu ngoặc nhọn này.
}

Code Arduino

/*
  IoTLapChannel
  
  Arduino can ban bai 02: doc gia tri mot nut nhan va xuat ra LED

  Board Arduino Uno
  Nut nhan
  Dien tro 1k
  Day cam testboard
  
  https://www.facebook.com/IoT-Lab-channel-342884859452435/
*/

// Cac ban se khai bao cac ten chan nhap-xuat du lieu, cac loai bien tai day

//Loai bien   Ten bien    =   Gia tri
  byte        nutnhan     =   7;        // minh khai bao "nutnhan" la so 7, sau nay cac ban muon lam gi voi so 7 thi co the thay bang "nutnhan".
  byte        trangthai   =   1;        // minh khai bao bien nho tam thoi, de luu trang thai cua nut nhan sau khi minh doc trang thai cua nut nhan.
  byte        trangthai_1 =   1;        // luu trang thai truoc do cua nut nhan.
  byte        LED         =   0;

// Phan cai dat cho board
void setup() 
{
  // Khai bao cac chan tin hieu
  pinMode(LED_BUILTIN, OUTPUT);       // Khai bao chan 13(LED_BUILTIN)la chan xuat tin hieu
  pinMode(nutnhan, INPUT);            // Khai bao chan "nutnhan"(7) la chan nhan tin hieu
}

// Chuong trinh chinh se duoc viet ben duoi
void loop() 
{
  trangthai = digitalRead(nutnhan);   // doc trang thai cua nut nhan va luu vao bien "trangthai". neu nut duoc nhan "trangthai" = 0. neu nut khong nhan "trangthai" = 1.
  if  (trangthai == 0)                // kiem tra, neu "trangthai" = 0 (nut duoc nhan) thi .... chay may dong ben duoi
  {
    if  (trangthai != trangthai_1)    // neu trang thai cua nut nhat khac voi trang thai cua nut nhan truoc do >>> nut vua moi duoc nhan, thi.... chay may dong ben duoi
    {
      LED = digitalRead(LED_BUILTIN); // doc trang thai cua LED o chan so 13.
      digitalWrite(LED_BUILTIN, !LED);// thay doi trang thai LED o chan so 13.
      trangthai_1 = trangthai;        // luu lai bien "trangthai" vao bien "trangthai_1"
    }
  }
  else                                // nguoc lai, nut khong duoc nhan ("trangthai" = 1) thi... chay dong ben duoi
  {
    trangthai_1 = trangthai;          // luu lai bien "trangthai" vao bien "trangthai_1"
  }
}

Link tải code Arduino Uno cho ví dụ trên

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