Home / Tin Tức / cách board mạch điều khiển led đơn
Cách board mạch điều khiển led đơn
admin 20/12/2021
1. Xây đắp mạch tinh chỉnh và điều khiển led đơn với board mạch Arduino
Mạch tinh chỉnh và điều khiển gồm 1 board Arduino UNO, 1 điện trở 220Ω, 1 led. Lưu giữ ý, chân dương (+) của led liên kết với chân digital của board mạch Arduino, chân âm (-) của led kết nối vào GND của board mạch Arduino.
2. Viết chương trình điều khiển và tinh chỉnh led chớp tắt dùng delay
int led = 6;//chân kết nối với ledvoid setup() pinMode(led, OUTPUT);//khai báo chân led là ngõ ra void loop() digitalWrite(led, HIGH);//Bật led (HIGH - tức là mức năng lượng điện áp 5V) delay(1000);//Chờ 1000 mili giây = 1 giây digitalWrite(led, LOW);//Tắt led (LOW - tức là mức điện áp 0V) delay(1000);//Chờ 1000 mili giây = 1 giâyHàm delay() dừng cục bộ chương trình trong thời gian quy định. Cấp thiết thực hiện thao tác làm việc khác trong lúc thực thi hàm delay().Chương trình trên làm đèn led sáng rồi dừng 1s, tắt đèn led rồi ngừng 1s. Cứ như vậy lặp đi lặp lại liên tục sẽ làm cho hiệu ứng chớp tắt của đèn led.
3. Viết chương trình tinh chỉnh và điều khiển led chớp tắt cần sử dụng định thời
Khi thực hiện hàm delay(), vi điều khiển của Arduino đề xuất chờ cho tới khi hết thời gian delay mới thực hiện các tác vụ khác. Bài toán này hoàn toàn có thể làm ảnh hưởng đến các tác vụ khác khi chạy cùng thời điểm, làm tăng cường độ trễ khi tiến hành chương trình hoặc tạo cho chương trình chạy không bao gồm xác. Bài toán dùng định thời với hàm millis() đã khắc phục tình trạng trên.int led = 6;//chân liên kết với ledint ledState = LOW;//khai báo biến hóa lưu tinh thần của ledunsigned long previousMillis = 0;const long interval = 1000;void setup() pinMode(led, OUTPUT);//khai báo chân led là ngõ ravoid loop() unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) previousMillis = currentMillis; if (ledState == LOW) ledState = HIGH; // Đổi trạng thái led else ledState = LOW; // Đổi tâm trạng led digitalWrite(led, ledState); Biến ledState nhằm lưu trữ tinh thần của led tại thời gian hiện tại. Vươn lên là interval là giá bán trị của một bước thời gian tính theo mili giây. Thuở đầu giá trị previousMillis = 0.Hàm millis() đã trả về số mili giây từ khi board Arduino hoạt động. Lệnh currentMillis = millis(); đã gán quý hiếm trả về của hàm millis() cho biến curentMillis. Nếu thời gian bây giờ – thời gian ban đầu >= interval, chương trình sẽ triển khai 2 việc:Gán previousMillis = curentMillis; để bước đầu tính lại thời gian đã chạy chương trình.Đổi tinh thần của led (nếu là LOW thì chuyển sang HIGH và ngược lại).Việc bật và tắt led chỉ triển khai khi currentMillis – previousMillis >= interval. Vào khoản thời hạn này thì ta hoàn toàn có thể thực hiện những tác vụ khác của chương trình.