冰楓論壇
標題:
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 冰楓