Arduino Cảm biến chạm Bật/Tắt LED

Trong Arduino - Cảm biến chạm - Đèn LED, chúng ta đã học cách bật LED khi cảm biến cảm ứng được chạm, và tắt LED khi cảm biến cảm ứng được thả ra. Trong bài hướng dẫn này, chúng ta sẽ học cách đảo trạng thái LED mỗi lần cảm biến cảm ứng được chạm.

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×cảm biến chạm
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×breadboard
1×dây jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về LED và cảm biến cảm ứng

Nếu bạn chưa biết về LED và cảm biến cảm ứng (sơ đồ chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các bài hướng dẫn sau:

Sơ đồ đấu dây

sơ đồ nối dây LED với cảm biến cảm ứng Arduino

This image is created using Fritzing. Click to enlarge image

Mã Arduino - Cảm biến chạm điều khiển LED

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-touch-sensor-toggle-led */ // constants won't change const int TOUCH_SENSOR_PIN = 7; // Arduino pin connected to touch sensor's pin const int LED_PIN = 3; // Arduino pin connected to LED's pin // variables will change: int ledState = LOW; // the current state of LED int lastTouchState; // the previous state of touch sensor int currentTouchState; // the current state of touch sensor void setup() { Serial.begin(9600); // initialize serial pinMode(TOUCH_SENSOR_PIN, INPUT); // set arduino pin to input mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode currentTouchState = digitalRead(TOUCH_SENSOR_PIN); } void loop() { lastTouchState = currentTouchState; // save the last state currentTouchState = digitalRead(TOUCH_SENSOR_PIN); // read new state if(lastTouchState == LOW && currentTouchState == HIGH) { Serial.println("The sensor is touched"); // toggle state of LED ledState = !ledState; // control LED arccoding to the toggled state digitalWrite(LED_PIN, ledState); } }

Hướng dẫn từng bước

  • Kết nối Arduino với PC bằng cáp USB.
  • Mở Arduino IDE, chọn bo mạch và cổng đúng.
  • Sao chép mã ở trên và mở bằng Arduino IDE.
  • Nhấn nút Tải lên trên Arduino IDE để tải mã lên cho Arduino
  • Giữ ngón tay trên cảm biến cảm ứng trong vài giây, rồi thả ra.
  • Quan sát sự thay đổi trạng thái của LED.

Giải thích mã nguồn

Bạn có thể tìm lời giải thích trong các dòng chú thích của mã Arduino ở trên.

Trong mã, ledState = !ledState tương đương với đoạn mã sau:

if(ledState == LOW) ledState = HIGH; else ledState = LOW;

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.