Mục lục:

Máy đo tụ điện ATTiny85: 4 bước
Máy đo tụ điện ATTiny85: 4 bước

Video: Máy đo tụ điện ATTiny85: 4 bước

Video: Máy đo tụ điện ATTiny85: 4 bước
Video: LẮP RÁP MẠCH ĐO VÀ KIỂM TRA TỤ ĐIỆN 2024, Tháng bảy
Anonim
Máy đo tụ điện ATTiny85
Máy đo tụ điện ATTiny85
Máy đo tụ điện ATTiny85
Máy đo tụ điện ATTiny85

Hướng dẫn này dành cho máy đo tụ điện dựa trên ATTiny85 với các tính năng sau.

  • Dựa trên ATTiny85 (DigiStamp)
  • Màn hình OLED SSD1306 0,96"
  • Đo tần số cho tụ điện giá trị thấp 1pF - 1uF sử dụng bộ dao động 555
  • Đo thời gian sạc cho tụ điện giá trị cao 1uF - 50000uF
  • 2 cổng riêng biệt được sử dụng cho các phương pháp giảm thiểu điện dung dòng
  • Hai giá trị của dòng điện được sử dụng cho Thời gian sạc để giảm thiểu thời gian cho các tụ điện lớn
  • Các số không của phương thức 555 khi khởi động, có thể được định dạng lại bằng nút nhấn
  • Một phép thử nhanh được sử dụng để chọn phương pháp nên được sử dụng cho mỗi chu kỳ đo.
  • Độ chính xác của phương pháp thời gian sạc có thể được cải thiện nhờ hỗ trợ điều chỉnh tần số đồng hồ OSCVAL

Bước 1: Sơ đồ và lý thuyết

Sơ đồ và lý thuyết
Sơ đồ và lý thuyết

Sơ đồ cho thấy ATTiny điều khiển màn hình OLED SSD1306 thông qua giao diện I2C. Nó được cấp nguồn trực tiếp từ pin LiOn 300mAh và một điểm sạc đi kèm có thể được sử dụng với bộ sạc bên ngoài tương thích LiOn.

Phương pháp đo đầu tiên dựa trên việc đo tần số của một bộ dao động 555 chạy tự do. Tần số này có tần số cơ bản được xác định bởi điện trở và tụ điện nên có độ chính xác cao vì điều này quyết định độ chính xác của các phép đo. Tôi đã sử dụng tụ điện polystyrene 820pF 1% mà tôi có nhưng có thể sử dụng các giá trị khác xung quanh 1nF. Giá trị phải được nhập vào phần mềm cùng với ước tính của bất kỳ điện dung lạc nào (~ 20pF). Điều này cho tần số cơ bản khoảng 16KHz. Đầu ra của 555 được đưa vào PB2 của ATTiny được lập trình như một bộ đếm phần cứng. Bằng cách đo số lượng trong khoảng thời gian khoảng 1 giây, tần số có thể được xác định. Điều này được thực hiện khi khởi động để xác định tần số cơ bản. Khi một tụ điện cần thử nghiệm được thêm thẳng vào tụ điện cơ bản thì tần số được hạ xuống và khi đo tần số này và so sánh với tần số cơ bản thì giá trị của điện dung tăng thêm có thể được tính toán.

Tính năng hay của phương pháp này là giá trị được tính toán chỉ phụ thuộc vào độ chính xác của tụ điện cơ sở. Khoảng thời gian của phép đo không quan trọng. Độ phân giải phụ thuộc vào độ phân giải của các phép đo tần số khá cao nên có thể đo được ngay cả điện dung bổ sung rất nhỏ. Yếu tố giới hạn dường như là 'tiếng ồn tần số' của bộ tạo dao động 555, đối với tôi tương đương với khoảng 0,3pF.

Phương pháp này có thể được sử dụng trong một phạm vi phù hợp. Để cải thiện phạm vi, tôi đồng bộ hóa chu kỳ đo để phát hiện các cạnh của xung tới. Điều này có nghĩa là ngay cả dao động tần số thấp như 12Hz (với tụ điện 1uF) cũng được đo chính xác.

Đối với các tụ điện lớn hơn, mạch được bố trí để sử dụng phương pháp tính thời gian tích điện. Trong trường hợp này, tụ điện được thử nghiệm được phóng điện để đảm bảo nó bắt đầu ở 0, sau đó được sạc qua điện trở đã biết từ điện áp nguồn. Một bộ ADC trong ATTiny85 được sử dụng để theo dõi điện áp của tụ điện và đo thời gian để sạc từ 0% đến 50%. Điều này có thể được sử dụng để tính toán điện dung. Vì tham chiếu cho ADC cũng là điện áp cung cấp nên điều này không ảnh hưởng đến phép đo. Tuy nhiên, số đo tuyệt đối của thời gian thực hiện phụ thuộc vào tần số đồng hồ ATTiny85 và các biến thể trong số này sẽ ảnh hưởng đến kết quả. Một quy trình có thể được sử dụng để cải thiện độ chính xác của đồng hồ này bằng cách sử dụng thanh ghi điều chỉnh trong ATTiny85 và điều này được mô tả sau.

Để phóng điện tụ điện xuống 0V, người ta sử dụng MOSFET kênh n cùng với một điện trở có giá trị thấp để hạn chế dòng phóng điện. Điều này có nghĩa là ngay cả các tụ điện có giá trị lớn cũng có thể bị phóng điện nhanh chóng.

Để tích điện cho tụ điện, người ta dùng 2 giá trị của điện trở nạp. Giá trị cơ bản cung cấp thời gian sạc hợp lý cho các tụ điện từ 1uF đến khoảng 50uF. MOSFET kênh p được sử dụng để mắc song song trong một điện trở thấp hơn để cho phép các tụ điện có giá trị cao hơn được đo trong một khoảng thời gian hợp lý. Các giá trị được chọn cho thời gian đo khoảng 1 giây đối với tụ điện lên đến 2200uF và lâu hơn tương ứng với các giá trị lớn hơn. Ở cuối giá trị thấp hơn, khoảng thời gian đo phải được giữ lâu hợp lý để cho phép xác định quá trình chuyển đổi qua ngưỡng 50% được thực hiện với đủ độ chính xác. Tốc độ lấy mẫu của ADC là khoảng 25uSec vì vậy khoảng thời gian tối thiểu là 22mSec cho độ chính xác hợp lý.

Vì ATTiny có IO giới hạn (6 chân) nên việc phân bổ tài nguyên này cần phải được thực hiện cẩn thận. Cần có 2 chân cho màn hình, 1 cho đầu vào bộ hẹn giờ, 1 cho ADC, 1 cho điều khiển xả và 1 để điều khiển tốc độ sạc. Tôi muốn điều khiển nút nhấn để cho phép lấy lại số không tại bất kỳ thời điểm nào. Điều này được thực hiện bằng cách tấn công dòng I2C SCL. Khi các tín hiệu I2C đang mở cống thì không có xung đột điện bằng cách cho phép nút kéo dòng này xuống thấp. Màn hình sẽ ngừng hoạt động khi nhấn nút nhưng điều này không có hậu quả gì vì nó sẽ hoạt động trở lại khi nút được nhả ra.

Bước 2: Thi công

Sự thi công
Sự thi công
Sự thi công
Sự thi công
Sự thi công
Sự thi công

Tôi đã làm nó thành một hộp nhỏ 55mm x 55mm in 3D. Được thiết kế để chứa 4 thành phần chính; bo mạch ATTiny85 DigiStamp, màn hình SSD1306, pin LiOn và một chút bo mạch nguyên mẫu chứa thiết bị điện tử điều khiển sạc và hẹn giờ 55.

Thông tin đính kèm tại

Các bộ phận cần thiết

  • Bảng ATTiny85 DigiStamp. Tôi đã sử dụng phiên bản có đầu nối microUSB được sử dụng để tải lên chương trình cơ sở.
  • Màn hình OLED SSD1306 I2C
  • Pin LiOn 300mAH
  • Dải nhỏ của bảng tạo mẫu
  • Chip hẹn giờ CMOS 555 (TLC555)
  • n-Kênh MOSFET AO3400
  • p-Channel MOSFET AO3401
  • Điện trở 4R7, 470R, 22K, 2x33K
  • Tụ điện 4u7, 220u
  • Tụ điện chính xác 820pF 1%
  • Công tắc trượt thu nhỏ
  • Đầu cắm 2 x 3 chân cho cổng sạc và cổng đo lường
  • Nút ấn
  • Bao vây
  • Trèo lên dây

Công cụ cần thiết

  • Mỏ hàn điểm mịn
  • Cái nhíp

Đầu tiên tạo mạch hẹn giờ 555 và các thành phần sạc trên bảng nguyên mẫu. Thêm đầu mối bay cho các kết nối bên ngoài. Gắn công tắc trượt và điểm sạc và cổng đo vào vỏ máy. Gắn pin và đấu dây nguồn chính vào điểm sạc, trượt công tắc. Nối đất với nút nhấn. Gắn ATTiny85 vào đúng vị trí và hoàn thành móc nối.

Bạn có thể thực hiện một số sửa đổi tiết kiệm năng lượng đối với bo mạch ATTiny trước khi lắp, điều này sẽ làm giảm dòng điện một chút và kéo dài tuổi thọ pin.

www.instructables.com/Reducing-Sleep-Curre…

Điều này không quan trọng vì có một công tắc nguồn để tắt đồng hồ khi không sử dụng.

Bước 3: Phần mềm

Phần mềm cho Máy đo tụ điện này có thể được tìm thấy tại

github.com/roberttidey/CapacitorMeter

Đây là một bản phác thảo dựa trên Arduino. Nó cần các thư viện cho màn hình và I2C có thể được tìm thấy tại

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

Chúng được tối ưu hóa cho ATTiny để chiếm bộ nhớ tối thiểu. Thư viện I2C là một phương pháp bit bang tốc độ cao cho phép sử dụng 2 chân bất kỳ. Điều này rất quan trọng vì các phương pháp I2C sử dụng cổng nối tiếp sử dụng PB2 xung đột với việc sử dụng đầu vào bộ định thời / bộ đếm cần thiết để đo tần số 555.

Phần mềm được cấu trúc xung quanh một máy trạng thái thực hiện phép đo thông qua một chu kỳ trạng thái. ISR hỗ trợ tràn từ bộ đếm thời gian để mở rộng phần cứng 8 bit. ISR thứ hai hỗ trợ ADC hoạt động ở chế độ liên tục. Điều này mang lại phản ứng nhanh nhất để mạch sạc vượt qua ngưỡng.

Khi bắt đầu mỗi chu kỳ đo, hàm getMeasureMode sẽ xác định phương pháp thích hợp nhất để sử dụng cho mỗi phép đo.

Khi phương pháp 555 được sử dụng, thời gian đếm chỉ bắt đầu khi bộ đếm đã thay đổi. Tương tự như vậy, thời gian chỉ dừng lại sau khoảng thời gian đo danh nghĩa và khi một cạnh được phát hiện. Sự đồng bộ hóa này cho phép tính toán chính xác tần số ngay cả đối với tần số thấp.

Khi phần mềm bắt đầu 7 phép đo đầu tiên là 'chu kỳ hiệu chuẩn' được sử dụng để xác định tần số cơ bản của 555 mà không có tụ điện bổ sung. 4 chu kỳ cuối cùng được tính trung bình.

Có hỗ trợ điều chỉnh thanh ghi OSCAL để điều chỉnh đồng hồ. Tôi khuyên bạn nên đặt OSCCAL_VAL thành 0 lúc đầu ở đầu bản phác thảo. Điều này có nghĩa là hiệu chuẩn của nhà máy sẽ được sử dụng cho đến khi quá trình điều chỉnh được thực hiện.

Giá trị của tụ điện cơ sở 555 cần được điều chỉnh là bắt buộc. Tôi cũng thêm vào một số lượng ước tính cho điện dung lạc.

Nếu các điện trở khác nhau được sử dụng cho các phương pháp tính phí thì các giá trị CHARGE_RCLOW và CHARGE_RCHIGH trong phần mềm cũng sẽ cần được thay đổi.

Để cài đặt phần mềm, hãy sử dụng phương pháp lấy dấu kỹ thuật thông thường là tải phần mềm lên và kết nối cổng usb khi được nhắc. Để công tắc nguồn ở vị trí tắt vì USB sẽ được cung cấp năng lượng cho hoạt động này.

Bước 4: Vận hành và hiệu chuẩn nâng cao

Hoạt động rất đơn giản.

Sau khi bật thiết bị và đợi kết thúc hiệu chuẩn, sau đó kết nối tụ điện cần thử nghiệm với một trong hai cổng đo. Sử dụng cổng 555 cho tụ điện giá trị thấp <1uF và cổng sạc cho tụ điện giá trị cao hơn. Đối với tụ điện kết nối cực âm với điểm nối đất chung. Trong quá trình thử nghiệm, tụ điện sẽ được sạc lên đến khoảng 2V.

Cổng 555 có thể được điều chỉnh lại bằng cách giữ nút ấn trong khoảng 1 giây và nhả ra. Đảm bảo rằng không có gì được kết nối với cổng 555 cho việc này.

Hiệu chuẩn nâng cao

Phương pháp tính phí dựa vào tần số đồng hồ tuyệt đối của ATTiny85 để đo thời gian. Đồng hồ sử dụng bộ dao động RC bên trong được bố trí để đưa ra xung nhịp danh nghĩa 8MHz. Mặc dù độ ổn định của bộ dao động khá tốt đối với các biến đổi về điện áp và nhiệt độ, nhưng tần số của nó có thể bị chênh lệch một vài phần trăm mặc dù nó đã được hiệu chuẩn tại nhà máy. Hiệu chuẩn này đặt thanh ghi OSCCAL khi khởi động. Hiệu chuẩn nhà máy có thể được cải thiện bằng cách kiểm tra tần suất và thiết lập giá trị OSCCAL tối ưu hơn cho phù hợp với bo mạch ATTiny85 cụ thể.

Tôi vẫn chưa quản lý để đưa một phương pháp tự động hơn vào phần sụn nên tôi sử dụng quy trình thủ công sau. Có thể có hai biến thể tùy thuộc vào những phép đo bên ngoài nào có sẵn; hoặc là máy đo tần số có khả năng đo tần số của dạng sóng tam giác trên cổng 555, hoặc nguồn sóng vuông có tần số đã biết, ví dụ: 10KHz với mức 0V / 3.3V có thể được kết nối với cổng 555 và ghi đè dạng sóng để buộc tần số đó vào bộ đếm. Tôi đã sử dụng phương pháp thứ hai.

  1. Khởi động đồng hồ trên nguồn điện bình thường của nó mà không có tụ điện được kết nối.
  2. Kết nối máy đo tần số hoặc bộ tạo sóng vuông với cổng 555.
  3. Khởi động lại chu kỳ hiệu chuẩn bằng cách nhấn nút.
  4. Vào cuối chu kỳ hiệu chuẩn, màn hình sẽ hiển thị tần số được xác định bởi bộ đếm và giá trị OSCCAL hiện tại. Lưu ý rằng việc sử dụng lặp lại chu kỳ hiệu chuẩn sẽ chuyển đổi giữa hiển thị tần số đo và bình thường không hiển thị.
  5. Nếu tần số hiển thị nhỏ hơn tần số đã biết thì có nghĩa là tần số đồng hồ quá cao và ngược lại. Tôi thấy mức tăng OSCCAL điều chỉnh đồng hồ khoảng 0,05%
  6. Tính giá trị OSCCAL mới để cải thiện đồng hồ.
  7. Nhập giá trị OSCCAL mới vào OSCCAL_VAL ở đầu chương trình cơ sở.
  8. Xây dựng lại và tải lên chương trình cơ sở mới. Lặp lại các bước 1 -5 sẽ hiển thị giá trị OSCCAL mới và phép đo tần số mới.
  9. Nếu cần, lặp lại các bước cho đến khi đạt được kết quả tốt nhất.

Lưu ý quan trọng là thực hiện phần đo của điều chỉnh này khi chạy trên nguồn điện bình thường không phải USB để giảm thiểu bất kỳ sự thay đổi tần số nào do điện áp cung cấp.

Đề xuất: