Tôi đang tìm cách tạo ra một chỉ báo tuổi thọ pin mà tôi có thể sử dụng kết hợp với bộ điều khiển vi mô. Tôi hy vọng rằng sau đó tôi có thể đọc được thời lượng pin hiện tại và ngày càng đưa bộ điều khiển vi mô vào chế độ ngủ để duy trì tuổi thọ pin.
Tôi đang tìm cách tạo ra một chỉ báo tuổi thọ pin mà tôi có thể sử dụng kết hợp với bộ điều khiển vi mô. Tôi hy vọng rằng sau đó tôi có thể đọc được thời lượng pin hiện tại và ngày càng đưa bộ điều khiển vi mô vào chế độ ngủ để duy trì tuổi thọ pin.
Câu trả lời:
Đối với câu hỏi chính, như làm thế nào để đo điện áp của pin, phương pháp đơn giản nhất là sử dụng một trong các chân ADC trên arduino.
Nếu bạn đang cung cấp 5v từ pin (không chắc), thì bạn có thể chạy thẳng tới một trong các chân tương tự và sử dụng analogRead () - mỗi mức tăng về giá trị (từ 0-1023) sẽ tương ứng với 4,9mV. Vì vậy, nhân giá trị đọc với 0,0049 để có được giá trị đọc volt.
Nếu bạn đang chạy cao hơn 5v (nhiều khả năng), bạn có thể sử dụng mạch phân chia điện áp (xem: http://en.wikipedia.org/wiki/Vol volt_divider ) để đưa điện áp bạn gửi đến đầu vào tương tự tới <= 5v. Nếu bạn đang chạy 12V, bạn sẽ muốn chia điện áp thành khoảng 1/3. Sau đó, sau khi nhân giá trị ADC, nhân 3 để có điện áp thực tế.
Do đó, nếu sử dụng điện áp 12V và bộ chia điện áp 1/3:
#define BAT_PIN 14
float read_batt_volts(void) {
int val = analogRead(BAT_PIN);
float volts = (float) val * (float) 0.0049 * (float) 3;
return(volts)
}
! c
tinker.it đã xuất bản một máy đo mức điện áp "bí mật" trong Atmega168 / atmega328. Với một mẹo nhỏ, Arduino có thể so sánh VCC với tham chiếu 1.1v chính xác bên trong. Giải thích và mã ở đây: https://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-vol volt /
Gợi ý của shutdrone là rất tốt, nhưng thiếu một chi tiết, vì nó ngụ ý rằng tham chiếu điện áp tương tự giống như điện áp được đo (ngoài việc giả sử rằng Arduino đang được sử dụng, không được nêu rõ ràng).
Bạn sẽ cần một ADC, cho dù nó không thể tách rời với uC của bạn hoặc một thành phần bên ngoài. ADC cần một tham chiếu điện áp tương tự (ARef) để so sánh đầu vào với. Bạn không muốn ARef giống với điện áp mà bạn cảm nhận được vì khi đó ADC sẽ luôn thấy các điện áp đầu vào và tham chiếu là bằng nhau, vì vậy giá trị tương tự cho điện áp được cảm nhận sẽ luôn là cực đại. Những gì bạn cần là một tham chiếu điện áp tương tự rất chính xác sẽ không thay đổi khi điện áp nguồn cung cấp thay đổi. ADC sẽ so sánh điện áp tham chiếu đó với điện áp pin; bạn có thể sử dụng bộ chia điện áp để giảm điện áp pin được cảm nhận trong phạm vi của ARef.
Arduino (Atmega8 / 168/328 / vv.) Có ADC tích hợp và tham chiếu tương tự 1.1V tích hợp, do đó, các thành phần bên ngoài duy nhất bạn cần là điện trở cho bộ chia điện áp. Tôi nghĩ rằng bạn cũng sẽ muốn sử dụng các giá trị rất cao cho các điện trở để giảm mức tiêu hao hiện tại trên pin.