Bài 98-9: Đồng hồ đo mức điện áp LED sử dụng Arduino hoặc đèn đi bộ với biến trở
Dự án này hướng dẫn bạn cách chế tạo một đồng hồ đo mức điện áp sử dụng năm đèn LED làm màn hình hiển thị dạng thanh, được điều khiển hoàn toàn bằng Arduino và một biến trở duy nhất. Khi bạn xoay núm, Arduino sẽ đọc điện áp thay đổi trên một chân analog và thắp sáng một đèn LED cho mỗi vôn, vì vậy hàng đèn thực sự "di chuyển" lên xuống theo núm xoay. Đây là một trong những cách rõ ràng nhất để hiểu về đầu vào analog, bởi vì bạn có thể thấy quá trình chuyển đổi analog sang kỹ thuật số diễn ra trong thời gian thực dưới dạng một thanh đèn vật lý.
Giá trị thực tiễn ở đây vượt xa một màn trình diễn ánh sáng. Khi bạn đã hiểu cách ánh xạ một điện áp đo được thành một tập hợp các đầu ra, bạn có thể tái sử dụng chính xác cùng một mẫu cho các thiết bị đo lường thực tế. Ví dụ, bạn có thể chế tạo:
- Một chỉ báo mức pin hiển thị dung lượng còn lại của pin 12 V hoặc pin dự phòng USB dưới dạng một hàng đèn LED.
- Một đồng hồ đo mức nước trong bể, nơi cảm biến phao xuất ra điện áp tỷ lệ với độ sâu.
- Một màn hình thanh nhiệt độ sử dụng cảm biến nhiệt độ analog như LM35.
- Một đồng hồ đo cường độ tín hiệu hoặc mức âm thanh cho máy thu radio hoặc bộ khuếch đại.
- Một màn hình đọc cảm biến đơn giản cho bất kỳ đầu dò analog 0–5 V nào (áp suất, ánh sáng, vị trí).
- Một đầu dò điện áp kiểm tra trên bàn để kiểm tra các đường ray nguồn mà không cần màn hình đồng hồ vạn năng.
Vì các ngưỡng được tính theo phần trăm điện áp của bo mạch, cùng một mã nguồn hoạt động trên các bo mạch 5 V như Uno và Mega cũng như trên các bo mạch 3,3 V chỉ với một thay đổi một dòng.
Phần cứng và Linh kiện
Danh sách linh kiện được cố ý tối giản, và mọi thứ đều được giải thích ở phần đầu của video (trong video tại 01:54). Bạn sẽ cần:
- Một bo mạch Arduino (Uno, Nano hoặc Mega).
- Năm đèn LED, lý tưởng nhất là cùng một màu để thanh hiển thị rõ ràng, mặc dù màu hỗn hợp cũng hoạt động tốt.
- Năm điện trở hạn dòng. Hướng dẫn sử dụng điện trở 1 kΩ, nhưng bất kỳ giá trị nào từ khoảng 300 Ω đến 1 kΩ đều hoạt động; giá trị cao hơn chỉ làm đèn LED mờ hơn (trong video tại 05:33).
- Một biến trở. Cả loại núm xoay và loại trượt đều được trình diễn (trong video tại 02:19).
- Một breadboard và dây nối.
Một lưu ý nhanh về bản thân đèn LED, vì điều này quan trọng đối với việc đấu dây: đèn LED là một diode, vì vậy nó chỉ dẫn điện theo một chiều. Mặt phẳng của thân nhựa, và chân ngắn hơn, là cực âm (cathode). Chân dài hơn là cực dương (anode). Hướng dẫn sẽ đi qua ký hiệu này và hình dạng vật lý một cách chi tiết (trong video tại 02:39).
Giá trị điện trở không phải là tùy ý. Một đèn LED giảm khoảng 2 V, và các loại nhỏ 3 mm và 5 mm tiêu thụ khoảng 10 mA. Với nguồn cung cấp 5 V, 3 V còn lại phải được giảm qua điện trở, vì vậy định luật Ohm cho R = 3 V / 0,01 A = 300 Ω. Đó là giá trị cho độ sáng tối đa; sử dụng 1 kΩ là một lựa chọn an toàn, hơi mờ hơn (trong video tại 04:41).
Hướng dẫn Đấu dây
Phần đấu dây đèn LED giống hệt với dự án đèn chạy trước đó: mỗi cực dương của đèn LED kết nối với chân kỹ thuật số riêng của nó, và mỗi cực âm đi qua một điện trở đến một thanh nối đất chung. Trong hướng dẫn, các đèn LED được đấu dây với các chân 7, 6, 5, 4 và 3 (trong video tại 43:04).
Biến trở là phần mới duy nhất. Hai chân ngoài của nó đi đến hai thanh nguồn — một chân ngoài đến nối đất và chân kia đến 5 V (hoặc 3,3 V nếu bạn đang đo hệ thống 3,3 V). Chân giữa, được gọi là chân gạt, là đầu ra và phải kết nối với chân analog A0 (trong video tại 43:30). Chân gạt là thứ tạo ra điện áp thay đổi: khi bạn xoay núm, chân gạt trượt dọc theo một rãnh điện trở và điện áp mà nó tạo ra thay đổi một cách mượt mà giữa hai thanh nguồn.
Một chi tiết quan trọng: nếu bạn tháo biến trở trong khi mạch đang chạy, chân analog sẽ bị bỏ trống và các đèn LED sẽ nhấp nháy ngẫu nhiên. Hành vi đó được trình diễn trong video (trong video tại 48:52) và là một lời nhắc nhở tốt rằng đầu vào analog luôn cần một nguồn điện áp xác định.
Giải thích Mã nguồn
Mã nguồn ngắn gọn và phần lớn là đơn giản, vì vậy phần này chỉ tập trung vào những phần bạn sẽ muốn thay đổi. Tất cả các cài đặt này nằm ở đầu sketch.
Định nghĩa chân. Những dòng này cho Arduino biết các đèn LED và biến trở được kết nối với chân nào. Nếu bạn đấu dây đèn LED khác đi, hãy thay đổi những số này cho phù hợp — thứ tự rất quan trọng, vì LED1 là ngưỡng thấp nhất và LED5 là cao nhất.
const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;Điện áp bo mạch. Đây là giá trị quan trọng nhất cần đặt đúng. Nó là tham chiếu để tính toán mọi ngưỡng. Đặt thành 5.0 cho Uno hoặc Mega, và 3.3 cho Nano 3.3 V hoặc bo mạch tương tự. Nếu bạn để sai, mọi LED sẽ chuyển ở sai điện áp (trong video tại 44:19).
float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V
Hiển thị điện áp qua Serial. Đặt thành true để in điện áp đo được ra Serial Monitor ở tốc độ 9600 baud, điều này cực kỳ hữu ích trong quá trình hiệu chuẩn. Đặt thành false để tắt đầu ra khi mọi thứ đã hoạt động.
boolean showVoltage = true;//true or false to read voltage in serial monitor
Cách hoạt động của việc chuyển đổi. Bộ chuyển đổi tương tự sang số của Arduino trả về một số từ 0 đến 1023, vì đây là bộ chuyển đổi 10 bit (210 = 1024 bước). Mã nguồn chuyển đổi số thô đó thành điện áp thực bằng cách dùng điện áp bo mạch làm tham chiếu. Đây là dòng cần ghi nhớ nếu bạn chuyển sang bo mạch 12 bit như Due, khi đó bạn sẽ chia cho 4095 thay vì 1023.
int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);
Logic ngưỡng. Thay vì mã hóa cứng các điện áp, mỗi bước được biểu diễn dưới dạng phần trăm của điện áp bo mạch. Ở 95% trở lên, cả năm LED sáng; trên 80% chỉ bốn LED; và cứ tiếp tục giảm xuống 20%, nơi một LED sáng. Cách tiếp cận theo phần trăm này là điều giúp sketch có thể dùng được cho cả bo mạch 5 V và 3.3 V mà không cần viết lại các phép so sánh.
if (voltage >= boardVoltage*0.95)
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
}
Vì mã nguồn dùng else if, chỉ đúng một nhánh chạy trong mỗi lần lặp, nên chỉ có số lượng LED đúng là sáng tại một thời điểm. Độ trễ 50 ms ở cuối mỗi vòng lặp giúp màn hình không bị nhấp nháy.
Dự án trực tiếp và trình diễn
Sau khi nạp sketch, hãy mở Serial Monitor ở 9600 baud và xoay núm từ từ. Điện áp in ra và thanh LED theo dõi sát nhau: ở khoảng 1 V thì một LED sáng, ở 2 V thì hai LED sáng, và cứ như vậy đến khoảng 4.8 V thì cả năm LED đều sáng (trong video tại 47:37). Các giá trị đọc được nằm trong khoảng vài phần trăm volt so với giá trị mong đợi, điều này là rất tốt đối với bộ chuyển đổi 10 bit.
Nếu các bước trông hơi không đều, thường là do điện trở chứ không phải mã nguồn. Hướng dẫn lưu ý rằng điện trở màng carbon tiêu chuẩn có dung sai 10%, trong khi loại màng kim loại màu xanh thường là 1% và cho các bước đều hơn, chính xác hơn rõ rệt (trong video tại 48:18).
Bạn cũng có thể thay biến trở xoay bằng biến trở trượt và nhận được hành vi tương tự với cảm giác tuyến tính, đây là một lựa chọn tốt nếu bạn định gắn đồng hồ vào bảng điều khiển (trong video tại 49:07).
Nếu bạn muốn di chuyển ánh sáng thủ công thay vì bằng núm xoay, điều đó được đề cập trong Bài 98-8: Đèn chạy với nút nhấn và LED bằng Arduino. Và nếu bạn chỉ muốn các LED tự chạy theo bộ đếm thời gian của chúng, hãy xem Bài 98-7: Đèn chạy bằng Arduino và 5 LED.
Các dự án liên quan từ video này
- Bài 98-1: Cách bật và tắt LED bằng Arduino
- Bài 98-2: Cách bật và tắt LED bằng nút nhấn với Arduino
- Bài 98-3: Cách bật/tắt LED toggle bằng nút nhấn với Arduino
- Bài 98-4: Làm mờ đèn LED bằng Arduino: Điều khiển độ sáng
- Bài 98-5: Làm mờ đèn khi nhấn nút bằng Arduino
- Bài 98-6: Trò chơi LED bập bênh với Arduino
- Bài 98-7: Đèn chạy bằng Arduino và 5 LED
- Bài 98-8: Đèn chạy với nút nhấn và LED bằng Arduino
- Bài 98-10: Đèn giao thông Arduino
Các chương
- [00:00] Tổng quan về 10 dự án LED
- [02:29] Kiến thức cơ bản về LED, ký hiệu và tính toán điện trở
- [42:25] Giới thiệu về đồng hồ đo mức điện áp LED
- [43:04] Đấu dây LED và biến trở
- [43:54] Giải thích mã thanh điện áp
- [44:19] Đặt tham chiếu điện áp bo mạch
- [46:00] Logic ngưỡng và các bước phần trăm
- [47:14] Trình diễn: đọc điện áp bằng thanh LED
- [48:18] Dung sai điện trở và độ chính xác
- [49:07] Sử dụng biến trở trượt
This code has not been parsed yet. Please return to the admin panel to parse it.
Nghĩ bạn có thể cần
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Tài nguyên & tài liệu tham khảo
-
Tài liệuDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Bên ngoài
-
Bên ngoài
-
Bên ngoài
Tập tin📁
Thư viện Arduino (tệp nén)
-
Mã nguồn bộ kit học xe thông minh 3-trong-1 của SunFounder
3in1-kit-main-v2.zip12.80 MB
Hướng dẫn Sử dụng
-
Hướng dẫn lắp ráp xe thông minh SunFounder 3-in-1 ArduinoTài liệu này hướng dẫn từng bước lắp ráp xe thông minh SunFounder 3-in-1 Arduino
SunFounder_car_assembly_manual.pdf1.20 MB