Cách đo điện áp pin từ vi điều khiển


7

Hôm nay tôi có một cuộc phỏng vấn, họ hỏi tôi, nếu được tặng vi điều khiển và Pin thì làm thế nào để bạn đo được mức điện áp. Viết các bước từ đầu với mã giả.

Điều này có thể giải quyết như thế nào?

Câu trả lời:


12

Nếu họ theo mã giả thì đó là một câu hỏi tồi; tất cả phụ thuộc vào vi điều khiển. Tôi có lẽ đã đưa cho ứng viên bảng dữ liệu của vi điều khiển và quan sát cách anh ta làm việc theo cách của mình thông qua tài liệu 300 trang đó.

Dù sao, bạn kết nối pin với đầu vào ADC (giả định: vi điều khiển có ADC trên bo mạch và điện áp pin nhỏ hơn điện áp cung cấp của vi điều khiển).

  1. Đặt chế độ pin cho pin đó thành ADC
  2. Chọn đầu vào ADC này nếu nhiều đầu vào ADC
  3. Bắt đầu chuyển đổi ADC
  4. Đợi kết thúc cờ chuyển đổi
  5. đọc thanh ghi ADC
  6. tính toán Vbat = Vcc x (đọc ADC) / (2 ^ độ phân giải ADC)

Đây là một phần tuyệt vời của sự giúp đỡ. Bạn có thể vui lòng đề xuất một số liên kết web nơi tôi có thể nghiên cứu phần cứng cũng như phần mềm song song trên vi điều khiển.
Rasmi Ranjan Nayak

1
Đó không phải là một câu hỏi tồi. Người phỏng vấn có lẽ đang tìm kiếm anh ta để đặt câu hỏi về phần cứng và đề xuất các phương pháp khác nhau.
Toby Jaffey

@Toby - Nếu tôi là người phỏng vấn và đó là mục đích của tôi, tôi sẽ không yêu cầu mã giả.
stevenvh

@TobyJaffey: Tôi nghĩ bạn đúng
Rasmi Ranjan Nayak

Chọn tham chiếu khoảng cách dải bên trong khi khả dụng; o) Nếu pin và điện áp cung cấp là một và giống nhau, thì bạn cần kết nối qua một bộ chia điện áp.
jippie

7

Tôi nghĩ vấn đề ở đây là Vi điều khiển cần một tài liệu tham khảo mở rộng cho A / D của họ. Tham chiếu mặc định là nguồn điện. Bạn có thể sử dụng một tham chiếu bên ngoài và chia điện áp pin cho một cái gì đó bên dưới tham chiếu đó, nhưng điều đó gây hao pin liên tục cho pin có thể không phải là một ý tưởng tốt.

Câu trả lời của tôi sẽ là: có được một tham chiếu loại shunt cho điện áp thấp hơn phạm vi pin quan tâm. Giả sử pin ~ 5V và TL431 hoặc tương tự như tham chiếu 2.5V. Bây giờ đo điện áp TL431, sử dụng pin làm tham chiếu. Giả sử A / D 10 bit (phổ biến nhất), đọc N. Bây giờ bạn biết rằng

N * (Battery / 1023) = 2.5

vì thế

Battery = 2.5 * 1023 / N

Nếu dòng điện được vẽ bởi tham chiếu là một vấn đề, tôi sẽ chuyển nguồn điện từ chân đầu ra: không rút điện trừ khi chúng tôi muốn thực hiện phép đo (sẽ là một khoảng thời gian rất ngắn).

=========================================

Bây giờ một số bài tập về nhà như là một sự chuẩn bị cho cuộc phỏng vấn tiếp theo: Bạn có một thiết bị 5V chạy bằng USB, có bộ vi điều khiển và cảm biến nhiệt độ LM35. Làm thế nào bạn sẽ xác định nhiệt độ? Gợi ý: đầu ra LM35 làm gì và kiểm tra phạm vi điện áp của ổ cắm USB. (Có một câu trả lời thay thế: tại sao đầu tiên $ & ^ * ^ & bạn không sử dụng cảm biến nhiệt độ kỹ thuật số?).


Và sau đó bạn hỏi nếu có lý do để không làm theo cách này (pin như Vref)! Giống như độ phân giải không phải là hằng số vì hàm này là hyperbolic thay vì tuyến tính. Ở 5 V một LSB = 10 mV, ở 3,33 V một LSB = 4,3 mV.
stevenvh

1
Thực sự rất thông minh. Là một tham chiếu khoảng cách băng tần khác với 'tham chiếu loại zener' của bạn, hay chúng ta đang nói về cùng một loại bói toán ở đây? Không nhận ra một tài liệu tham khảo thực sự sẽ tiêu thụ ít năng lượng hơn một bộ chia điện áp trở kháng cao.
jippie

1
Điều đó phụ thuộc rất nhiều vào bối cảnh. Tôi giả sử một hệ thống chi phí thấp, trong đó việc biết điện áp pin chỉ thú vị ở mức có thể 5 hoặc 10%. Việc đọc có độ chính xác cao có thể sẽ không sử dụng uC A / D nào cả.
Wouter van Ooijen

Vâng, đó cũng là giả định của tôi. Giống như một mạch màu nâu hơn ... tất nhiên là không yêu cầu nhiều mã giả nào cả ...
jippie

Zener-type là từ ngữ sai, tôi có nghĩa là bộ điều chỉnh shunt (trái ngược với bộ điều chỉnh loạt). Tôi sẽ chỉnh sửa văn bản của tôi. Tham chiếu có thể tiêu thụ cùng một dòng điện, nhưng nó có thể được bật và tắt tùy ý . Lưu ý rằng bộ chia nói chung có thể không có trở kháng cao: đầu vào uC A / D không có trở kháng cao. Thông thường, họ yêu cầu trở kháng nguồn trong phạm vi 1..10k.
Wouter van Ooijen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.