Mục lục:

Tuy nhiên, một máy kiểm tra dung lượng pin khác: 6 bước
Tuy nhiên, một máy kiểm tra dung lượng pin khác: 6 bước

Video: Tuy nhiên, một máy kiểm tra dung lượng pin khác: 6 bước

Video: Tuy nhiên, một máy kiểm tra dung lượng pin khác: 6 bước
Video: Hướng dẫn cách kiểm tra pin TẤT CẢ máy Android Google Pixel cực dễ - Không cần Tools hay Apps ngoài 2024, Tháng mười một
Anonim
Tuy nhiên, một máy kiểm tra dung lượng pin khác
Tuy nhiên, một máy kiểm tra dung lượng pin khác
Tuy nhiên, một máy kiểm tra dung lượng pin khác
Tuy nhiên, một máy kiểm tra dung lượng pin khác

Tại sao lại có thêm một người kiểm tra năng lực

Tôi đã đọc qua rất nhiều hướng dẫn xây dựng trình thử nghiệm khác nhau nhưng không có hướng dẫn nào trong số đó có vẻ phù hợp với nhu cầu của tôi. Tôi cũng muốn có thể kiểm tra nhiều hơn là chỉ đơn lẻ các tế bào NiCd / NiMH hoặc Lion. Tôi muốn có thể kiểm tra pin dụng cụ điện mà không cần tham gia phần đầu tiên. Vì vậy, tôi quyết định xem xét kỹ hơn vấn đề này và thiết kế một cái của riêng tôi. Điều này dẫn đến điều khác và cuối cùng tôi quyết định tự mình viết một tài liệu hướng dẫn. Tôi cũng quyết định không đi vào tất cả các chi tiết về cách thực sự xây dựng trình thử nghiệm bởi vì mọi người có thể quyết định các lựa chọn nhất định như điện trở cỡ nào để sử dụng hoặc nếu cần PCB hoặc có đủ Veroboard không và cũng có rất nhiều tài liệu hướng dẫn cách sử dụng cài đặt bàng hoặc cách làm PCB. Nói cách khác, tôi sẽ tập trung vào sơ đồ và mã cũng như cách hiệu chỉnh trình thử nghiệm.

Bước 1: Lịch sử - Phiên bản 1

Lịch sử - Phiên bản 1
Lịch sử - Phiên bản 1

Trên đây là phiên bản đầu tiên được đề cập bên dưới hỗ trợ đầu vào hơn 10V (R12 & R17 & Q11 & Q12).

Phiên bản đầu tiên ít nhiều được lấy từ một phiên bản có thể hướng dẫn bởi deba168 (tiếc là tôi không thể tìm thấy hướng dẫn của anh ấy để cung cấp liên kết). Chỉ có một số thay đổi nhỏ được thực hiện. Trong phiên bản này, tôi có một điện trở tải 10 ohm được điều khiển bởi một mosfet. Điều này mang lại một số vấn đề. Khi kiểm tra một tế bào NiCd hoặc NiMH, thời gian cần thiết có thể dễ dàng đo được bằng giờ nếu không phải ngày. Pin 1500mAh sử dụng hơn 12 giờ (dòng điện chỉ 120mA). Mặt khác, phiên bản đầu tiên chỉ có thể kiểm tra pin dưới 10V. Và pin 9,6V đã sạc đầy thực sự có thể lên đến 11,2V mà không thể kiểm tra được do giới hạn 10V. Có một số thứ phải hoàn thành. Đầu tiên, tôi chỉ cần thêm một vài mosfet và điện trở để làm cho các bộ phân áp để có thể cho phép hơn 10V. Nhưng điều này mặt khác lại đưa ra một vấn đề khác. Pin 14,4V được tải đầy có thể có tới 16,8V tp với điện trở 10 ohm có nghĩa là dòng điện 1,68A và tất nhiên là công suất tiêu tán từ điện trở tải gần 30W. Vì vậy, với điện áp thấp thời gian thử nghiệm quá dài và với điện áp cao dòng điện quá cao. Rõ ràng đó không phải là một giải pháp thích hợp và cần phải phát triển thêm.

Bước 2: Phiên bản 2

Tôi muốn một giải pháp trong đó dòng điện sẽ ở trong các giới hạn nhất định bất kể điện áp của pin là bao nhiêu. Một giải pháp sẽ là sử dụng PWM và chỉ một điện trở, nhưng tôi thích có một giải pháp không có xung dòng hoặc có nhu cầu tản nhiệt mosfet. Vì vậy, tôi đã tạo ra một giải pháp với 10 khe cắm điện áp, mỗi khe rộng 2V, sử dụng 10 điện trở 3,3ohm và một mosfet cho mỗi điện trở.

Bước 3: Đây là cách nó diễn ra

Đây là cách nó xảy ra
Đây là cách nó xảy ra

Một người có thể tranh luận rằng sự mất mát điện áp trên mosfet là không đáng kể vì điện trở của mosfet quá thấp, nhưng tôi đã để lại sự lựa chọn của mosfet cho người đọc và do đó, điện trở có thể vượt quá 1 ohm khi nó bắt đầu Vân đê. Ở phiên bản một, việc chọn mosfet chính xác sẽ loại bỏ nhu cầu đo điểm thấp hơn nhưng trên phiên bản 2, tôi quyết định chỉ đo điện áp trên một điện trở, điều này làm cho điều quan trọng là phải thực sự có hai điểm đo. Và lý do đằng sau sự lựa chọn là sự đơn giản trong việc đấu dây của Veroboard. Điều này làm tăng thêm một số sai số về độ chính xác vì điện áp đo được trên một điện trở nhỏ hơn đáng kể so với đo trên tất cả các điện trở. Khi lựa chọn thành phần, tôi quyết định sử dụng những gì tôi đã có sẵn hoặc những gì tôi có thể dễ dàng lấy được. Điều này dẫn đến BOM sau:

  • Arduino Pro Mini 5V! QUAN TRỌNG! Tôi đã sử dụng phiên bản 5V và tất cả đều dựa trên nó
  • Màn hình OLED 128x64 I2C
  • 10 x 5W điện trở 3,3 Ohm
  • 3 x 2n7000 mosfet
  • 10 x IRFZ34N mosfet
  • Điện trở 6 x 10 kOhm
  • Điện trở 2 x 5 kOhm
  • Tụ điện 16V 680uF
  • 1 quạt CPU cũ

Tôi chưa thêm phần sau vào sơ đồ

  • điện trở pullup trên các dòng I2C, mà tôi nhận thấy làm cho màn hình hiển thị ổn định hơn
  • đường dây điện
  • tụ điện trong dòng 5V cũng ổn định màn hình

Trong khi thử nghiệm, tôi nhận thấy các điện trở tải sẽ khá nóng, đặc biệt nếu tất cả chúng đều đang được sử dụng. Nhiệt độ tăng lên hơn 100 độ C (hơn 212 độ F) và nếu toàn bộ hệ thống được đóng trong hộp thì cần phải có một số loại làm mát được cung cấp. Điện trở tôi đã sử dụng là 3,3 ohm / 5W và dòng điện tối đa nên xảy ra với khoảng 2V mỗi điện trở cho 2V / 3,3 = 0,61A dẫn đến 1,21W. Tôi đã kết thúc bằng việc thêm một chiếc quạt đơn giản trong hộp. Chủ yếu là vì tôi tình cờ có một số quạt CPU cũ xung quanh.

Sơ đồ chức năng

Nó là khá thẳng về phía trước và tự giải thích. Pin cần thử nghiệm được nối với loạt điện trở và nối đất. Các điểm đo điện áp là kết nối pin và điện trở đầu tiên. Sau đó, các bộ chia điện áp được sử dụng để giảm điện áp xuống mức phù hợp hơn với Arduino. Một đầu ra kỹ thuật số được sử dụng để chọn dải 10V hoặc 20V của bộ chia. Mỗi điện trở trong tải có thể được nối đất riêng lẻ bằng cách sử dụng các mosfet, được điều khiển trực tiếp bởi Arduino. Và cuối cùng, màn hình được kết nối với các chân Arduino I2C. Không có nhiều điều để nói về sơ đồ J

Bước 4: Mã

Mật mã
Mật mã

Ở trên có thể thấy các chức năng sơ bộ của mã. Sau đó, chúng ta hãy xem xét kỹ hơn mã (các tệp arduino ino được đính kèm). Có một số chức năng và sau đó là vòng lặp chính.

Vòng lặp chính

Khi quá trình đo đã sẵn sàng, kết quả sẽ được hiển thị và quá trình thực hiện kết thúc ở đó. Nếu phép đo vẫn chưa được thực hiện, trước tiên hãy kiểm tra xem loại pin nào được chọn và sau đó là điện áp trên đầu vào. Nếu điện áp vượt quá 0,1V thì phải có ít nhất một loại pin nào đó được kết nối. Trong trường hợp này, một chương trình con được gọi để cố gắng tính xem nó có bao nhiêu ô trong pin để quyết định cách kiểm tra. Số lượng ô là thông tin nhiều hơn hoặc ít hơn có thể được sử dụng tốt hơn, nhưng trong phiên bản này, nó chỉ được báo cáo thông qua giao diện nối tiếp. Nếu tất cả đều tốt, quá trình xả được bắt đầu và trên mỗi vòng của vòng lặp chính, dung lượng pin sẽ được tính toán. Ở cuối vòng lặp chính, màn hình được điền các giá trị đã biết.

Quy trình hiển thị kết quả

Hàm showResults chỉ đơn giản là đặt các dòng được hiển thị trên màn hình và cả chuỗi được gửi đến giao diện nối tiếp.

Quy trình đo điện áp

Trong phần đầu của chức năng, Vcc của Arduino được đo. Nó là cần thiết để có thể tính toán các điện áp được đo bằng cách sử dụng các đầu vào tương tự. Sau đó, điện áp của pin được đo bằng dải 20V để có thể quyết định sử dụng dải nào. Sau đó, cả điện áp pin và điện áp điện trở được tính toán. Các phép đo điện áp pin tận dụng lợi thế của lớp DividerInput có phương pháp đọc và điện áp để cung cấp giá trị đọc thô hoặc điện áp tính toán của đầu vào tương tự được đề cập.

Quy trình chọn các giá trị đã sử dụng

Trong chức năng selectUsedValues, số lượng ô được đoán và giới hạn cao và thấp cho pin được thiết lập để sử dụng với quy trình xả. Ngoài ra, phép đo được đánh dấu là bắt đầu, Các giới hạn cho quy trình này được đặt ở phần đầu của biến toàn cục. Mặc dù chúng có thể không đổi, và chúng cũng có thể được định nghĩa bên trong thủ tục vì chúng không được sử dụng trên toàn cầu. Nhưng hey luôn có một cái gì đó để cải thiện:)

Quy trình tính toán dung lượng pin

Chức năng xả sẽ thực sự đếm dung lượng của pin. Nó lấy các giới hạn thấp và cao của điện áp cho pin đang thử nghiệm làm thông số. Giá trị cao không được sử dụng trong phiên bản này, nhưng giá trị thấp được sử dụng để quyết định thời điểm dừng thử nghiệm. Trong phần đầu của hàm, số lượng điện trở cần sử dụng được tìm ra bằng cách sử dụng một hàm được tạo cho mục đích này. Hàm trả về số điện trở và đồng thời bắt đầu xả và đặt lại bộ đếm. Sau đó, các điện áp được đo và sử dụng cùng với giá trị điện trở đã biết để tính dòng điện. Bây giờ chúng ta đã biết điện áp và dòng điện và thời gian kể từ lần đo cuối cùng, chúng ta có thể tính toán công suất. Vào cuối quá trình phóng điện áp của pin được so sánh với giới hạn thấp và nếu nó đã đi xuống dưới giới hạn, giai đoạn phóng điện sẽ dừng lại, các mosfet được đóng lại và phép đo được gắn cờ là sẵn sàng.

Quy trình tìm số điện trở cần sử dụng

Trong chức năng selectNumOfResistors, một phép so sánh đơn giản giữa điện áp với các giá trị đặt trước được thực hiện và kết quả là số lượng điện trở được sử dụng sẽ được quyết định. MOSFET thích hợp được mở để bỏ qua một số điện trở. Các khe cắm điện áp được chọn sao cho dòng điện tối đa bất kỳ lúc nào trong quá trình phóng điện sẽ duy trì trên 600mA một chút (2V / 3,3Ohm = 606mA). Hàm trả về số lượng điện trở được sử dụng. Bởi vì quạt được điều khiển từ cùng một dòng với mosfet đầu tiên, nó phải luôn được mở khi đang xả.

Bước 5: Hiệu chỉnh đồng hồ

Hiệu chỉnh đồng hồ
Hiệu chỉnh đồng hồ

Để hiệu chỉnh đồng hồ, tôi đã tạo một ứng dụng khác (đính kèm). Nó sử dụng cùng một phần cứng. Ban đầu, các giá trị của bộ chia hiệu chỉnh đều được đặt thành 1000.

const int divCorrectionB10V = 1000; // hệ số hiệu chỉnh bộ chia trong phạm vi 10V const int divCorrectionR10V = 1000; // hệ số hiệu chỉnh bộ chia trong phạm vi 10V const int divCorrectionB20V = 1000; // hệ số hiệu chỉnh bộ chia trong phạm vi 20V const int divCorrectionR20V = 1000; // hệ số hiệu chỉnh bộ chia trong phạm vi 20V

trong hàm readVcc (), điện áp Vcc kết quả phụ thuộc vào việc đặt giá trị trên dòng cuối cùng của hàm trước khi trả về. Thông thường, bạn có thể tìm thấy giá trị 1126400L trên Internet để sử dụng trong tính toán. Tôi nhận thấy kết quả không chính xác.

Quá trình hiệu chuẩn:

  1. Tải ứng dụng đo lường vào Arduino.
  2. Bạn có thể thấy trong Arduino (và trong đầu ra nối tiếp và nếu quạt đang quay) nếu tải đang bật. Nếu nó được bật công tắc chọn loại pin.
  3. Điều chỉnh giá trị trong readuVCC () để có kết quả chính xác. Lấy giá trị mà hàm cung cấp (tính bằng milivôn) và chia giá trị dài cho nó. Bạn sẽ nhận được giá trị thô của tham chiếu nội bộ. Bây giờ, đo điện áp cung cấp thực tế bằng milivôn bằng đồng hồ vạn năng và nhân nó với giá trị đã tính toán trước đó và bạn sẽ nhận được giá trị dài mới đã hiệu chỉnh. Trong trường hợp của tôi, hàm trả về 5288mV khi Vcc thực tế là 5,14V. Tính 1126400/5288 * 5140 = 1094874 mà tôi đã tính toán bằng cách thử. Đặt giá trị mới vào mã và tải lại nó lên Arduino.
  4. Việc điều chỉnh các giá trị hiệu chỉnh của bộ chia điện trở đầu vào tương tự xảy ra bằng cách sử dụng nguồn điện có thể điều chỉnh được dùng để cấp cho đầu vào của đồng hồ. Đơn giản nhất là sử dụng điện áp từ 1V đến 20V với các bước 1V và ghi kết quả vào bảng tính. Trong bảng tính trung bình được lấy. Các giá trị đã sửa được tính theo công thức sau: “raw_value * range * Vcc / Vin” trong đó raw_value là giá trị bằng 10VdivB, 10VdivR, 20VdivB hoặc 20VdivR tùy thuộc vào việc tính toán hiệu chỉnh nào.

Xem bảng tính nó trông như thế nào cho tôi. Các giá trị trung bình chỉ được tính toán từ các giá trị có trong phạm vi và những giá trị đó sau đó được đặt trong ứng dụng đồng hồ đo thực tế.

Như thế này

const int divCorrectionB10V = 998; // bộ chia hiệu chỉnh bộ chia trong phạm vi 10V const int divCorrectionR10V = 1022; // bộ chia hiệu chỉnh bộ chia trong phạm vi 10V const int divCorrectionB20V = 1044; // bộ chia hiệu chỉnh bộ chia trong phạm vi 20V const int divCorrectionR20V = 1045; // bộ chia hiệu chỉnh bộ chia trong phạm vi 20V

Điều chỉnh giá trị điện trở có thể được thực hiện bằng cách cung cấp một số điện áp cho đầu vào (tức là 2V), chuyển đổi công tắc loại dơi (để có tải) và đo dòng điện đi vào và điện áp trên điện trở đầu tiên và chia điện áp với dòng điện. Đối với tôi 2V cho 607mA cho 2 / 0,607 = 3,2948 ohms mà tôi làm tròn thành 3,295 ohms. Vì vậy, bây giờ việc hiệu chuẩn đã được thực hiện.

Bước 6: LƯU Ý cuối cùng

Một lưu ý quan trọng ở đây. Bắt buộc phải có tất cả các kết nối trong tình trạng nguyên bản từ pin đến các điện trở. Tôi có một kết nối kém và tự hỏi tại sao tôi nhận được 0,3V vôn trong lưới điện trở hơn so với trên pin. Điều này có nghĩa là quá trình đo kết thúc gần như ngay lập tức với các tế bào NiCd 1,2V vì giới hạn dưới 0,95V đã nhanh chóng đạt được.

Đề xuất: