- UID
- 373967
- 帖子
- 8850
- 主題
- 2609
- 精華
- 0
- 積分
- 999
- 楓幣
- 1
- 威望
- 976
- 存款
- 34705
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 50
- 在線時間
- 454 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-18
|
製作變頻器需要的零件:
PIC16F1827 微控制器
晶振 (建議使用 20MHz 的晶振)
電解電容 (建議使用 10uF 的電解電容)
陶瓷電容 (建議使用 22pF 的陶瓷電容)
積體電路 (IC) 座
變壓器 (建議使用 220V 轉 12V 的變壓器)
整流二極體 (建議使用 IN4007)
電容 (建議使用 1000uF 的電容)
二極體 (建議使用 1N4148)
電位器 (建議使用 50k 的電位器)
電阻 (建議使用 10k 的電阻)
LED 燈
按鈕開關
杜邦線
PIC16F1827 的連結腳位:
RA0 - 輸入按鈕開關的訊號
RA1 - 用於 PWM (pulse-width modulation) 輸出
RA2 - 用於 PWM 輸出
RA3 - 未使用
RA4 - 未使用
RA5 - 未使用
RE0 - 未使用
RE1 - 未使用
RE2 - 未使用
VSS - 接地
VDD - 供電
RB0 - 未使用
RB1 - 未使用
RB2 - 未使用
RB3 - 未使用
RB4 - 未使用
RB5 - 未使用
RB6 - 未使用
RB7 - 未使用
程式碼:
以下是 PIC16F1827 變頻器程式碼,可供參考。
這個程式會讓 LED 燈閃爍,並使用按鈕開關來控制 PWM 的頻率。
#include <xc.h>
#define _XTAL_FREQ 20000000
void main(void) {
// 設置輸出和輸入
TRISA = 0b00000001; // RA0 為輸入
TRISB = 0b00000000; // 全部為輸出
// 設置 PWM 訊號
PR2 = 0xFF;
T2CON = 0b00000100;
CCP1CON = 0b00001100;
CCP2CON = 0b00001100;
// 設置計時器
T0CON = 0b10000111;
INTCON = 0b10100000;
while(1) {
// 讀取按鈕開
// 如果按鈕被按下,則增加 PWM 頻率
if (PORTAbits.RA0 == 0) {
CCPR1L = CCPR1L + 10;
CCPR2L = CCPR2L + 10;
__delay_ms(50);
}
// 讓 LED 燈閃爍
PORTBbits.RB0 = 1;
__delay_ms(500);
PORTBbits.RB0 = 0;
__delay_ms(500);
}
}
void interrupt ISR() {
if (TMR0IF) {
TMR0IF = 0;
TMR0 = 6;
}
} |
|