Arduino Biến trở kích hoạt LED

Trong Arduino - LED mờ dần bằng chiết áp, chúng ta đã học cách thay đổi độ sáng của đèn LED theo giá trị đầu ra của biến trở. Trong bài hướng dẫn này, chúng ta sẽ học cách:

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

1×Arduino Uno R3 Amazon
1×USB 2.0 cable type A/B (for USB-A PC) Amazon
1×USB 2.0 cable type C/B (for USB-C PC) Amazon
1×Chiết áp Amazon
1×Alternatively, 10k Ohm Trimmer Potentiometer Amazon
1×Mô-đun chiết áp có núm xoay Amazon
1×(Hoặc) Potentiometer Kit Amazon
1×(Hoặc) Potentiometer Module with Knob Amazon
1×LED Kit Amazon
1×LED (red) Amazon
1×LED Module Amazon
1×Alternatively, Button and LED Kit Amazon
1×220Ω Resistor Amazon
1×breadboard Amazon
1×dây jumper Amazon
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno Amazon
1×(Khuyến nghị) Sensors/Servo Expansion Shield for Arduino Uno Amazon
1×(Khuyến nghị) Breadboard Shield for Arduino Uno Amazon
1×(Khuyến nghị) Enclosure for Arduino Uno Amazon
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO Amazon

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included) Amazon
1×DIYables Sensor Kit (18 sensors/displays) Amazon
Tiết lộ: Một số liên kết trong bài viết này là liên kết tiếp thị Amazon và có thể nhận hoa hồng theo chính sách của chương trình.

Về đèn LED và biến trở

Nếu bạn chưa biết về LED và biến trở (bố trí 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 LED với chiết áp và Arduino

This image is created using Fritzing. Click to enlarge image

Mã Arduino - Ngưỡng analog

/* * 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-potentiometer-triggers-led */ // constants won't change const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin const int LED_PIN = 3; // Arduino pin connected to LED's pin const int ANALOG_THRESHOLD = 500; void setup() { pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin if(analogValue > ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

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

  • Kết nối Arduino với máy tính bằng cáp USB
  • Mở Arduino IDE, chọn board và cổng đúng
  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấn nút Upload trên Arduino IDE để tải mã lên Arduino
nạp mã vào Arduino ide
  • Vặn biến trở
  • Xem sự thay đổi trạng thái của đèn LED

Giải thích mã nguồn

Đọc lời giải thích theo từng dòng trong các chú thích của mã nguồn!

Mã Arduino - Ngưỡng điện áp

Giá trị tương tự của biến trở được chuyển đổi thành giá trị điện áp, và sau đó được so sánh với ngưỡng điện áp để kích hoạt 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-potentiometer-triggers-led */ // constants won't change const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin const int LED_PIN = 3; // Arduino pin connected to LED's pin const float VOLTAGE_THRESHOLD = 2.5; // Voltages void setup() { pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin float voltage = floatMap(analogValue, 0, 1023, 0, 5); // Rescale to potentiometer's voltage if(voltage > VOLTAGE_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED } float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

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.