閲覧総計:33782  (本日:1  昨日:5)

発光ダイオード(LED)の明るさを変える(PWM)

PIC内蔵の「PWM(Pulse Width Modulation)機能」を利用した簡単なプログラムを作成し、
12F683の「PWM制御」機能の利用法、稼働を確認しました。  07/02/03

注)12F683の場合、PWM信号はGP2から発信される。

関連MikroC関数
void Pwm_Init(unsigned long freq);
void Pwm_Change_Duty(unsigned short duty_ratio);
void Pwm_Start(void);
void Pwm_Stop(void);

P1010276.JPG

/**
* 12F683の稼働テスト
* PWM機能で発光ダイオードの明るさを徐々に変える
*
* PIC12F683
* GP2: LED (CCP(PWM)出力)
* GP1: LED (照度比較用)
* Clock: 8.0MHz 内蔵発信器使用
* Device Flags:
* _CP_OFF  _MCLRE_OFF _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT
*
* MikroC v6.2.1
*/

void main() {
    //使用変数の定義
    unsigned short int i;

    //マイコンの初期化
    //内臓クロック8MHzに設定
    OSCCON.IRCF2=1;
    OSCCON.IRCF1=1;
    OSCCON.IRCF0=1;

    GPIO = 0b00000000; //GPIOの中身をきれいにする
    TRISIO = 0b00000000; //GPIP全て0:出力設定
    PWM_Init(5000); //PWMの初期化 (5KHz周期指定)
    //マイコンの初期化終わり

    GPIO.F1 = 1; //照度比較用LED ON

    PWM_Start(); //PWM機能スタート
    do {
        //LEDの明るさを徐々に変える
        for (i = 0; i < 256; i++) {
            PWM_Change_Duty(i); //PWMのDuty変更
            Delay_ms(100); //100msec待つ
        }
    } while(1);
}

★この情報は役に立ちましたか?

選択肢 投票
はい 111  
普通 62  
いいえ 71  

添付ファイル: fileP1010276.JPG 4366件 [詳細]