冰楓論壇

標題: PIC10F200 [打印本頁]

作者: 洪嵐峰    時間: 2023-4-16 15:07
標題: PIC10F200
使用PIC10F200來製作18650充電器

你需要以下零件:

PIC10F200微控制器
NPN電晶體
10K歐姆電阻
1K歐姆電阻
1N4001二極管
0.1微法電容器
18650電池座
12V直流電源
2個LED燈(用於顯示充電狀態)
下面是連接腳位的示意圖:

lua
Copy code
          +-------------+
12V DC -- | VDD         |
          |             |
          |             |
          | GP0    GP1  | -- LED1
          |             |
          | GP2    GP3  | -- LED2
          |             |
          | GP4     GP5 | -- NPN電晶體
          |             |
          |             |
          |             |
          |             |
          |             |
          |             |
          |             |
          +-------------+
              PIC10F200
在此示意圖中,VDD引腳和GND引腳分別連接到12V DC電源的正極和負極,GP0和GP1引腳分別連接到LED1和LED2,用於顯示充電狀態。GP2和GP3引腳不使用。

GP4引腳連接到NPN電晶體的基極,NPN電晶體的發射極連接到GND,集電極連接到18650電池座的正極,並通過1N4001二極管與12V DC電源相連。

GP5引腳通過10K歐姆電阻連接到NPN電晶體的基極。

下面是PIC10F200的充電器程式碼,這個程式碼使用了PWM來控制充電電流的大小,從而實現18650電池的充電。


#include <pic10f200.h>

#define _XTAL_FREQ 4000000

void main() {
  TRISIO = 0b001101;  // 配置輸入輸出引腳
  CMCON = 0x07;       // 禁用比較器

  CCP1CON = 0b00001100;  // 設置PWM模式
  T2CON = 0b00000111;     // 開啟定時器2

  while (1) {
    if (GP0 == 1 && GP1 == 1) {  // 充電完成
      GP2 = 0;                  // 關閉充電器
    } else {
      GP2 = 1;          // 開啟充電器
      CCP1CON= 0b00111100; // 設置PWM占空比__delay_ms(1000); // 等待1秒鐘
}
}
}



在這個程式碼中,我們使用了PWM來控制GP5引腳的輸出,從而控制NPN電晶體的基極電壓,從而控制充電電流的大小。如果GP0和GP1引腳都是高電平,則表示18650電池已經充滿,此時我們關閉充電器(即將GP2引腳設置為低電平)。

否則,我們開啟充電器(即將GP2引腳設置為高電平),並設置PWM占空比為50%,從而控制充電電流為約500mA。




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓