2021年11月9日火曜日

PIC16F1827でPWM3

PIC16F1827のPWMは5bitなので直視たり、カメラで撮っていると明るさの変化が目でばれるのでどのようにしたらいいか考えたところ散乱させれば、わからなそうな感じがしたので紙で囲ってやってみました。


プログラムは基本的ほぼ同じで以下の通り

 #include "mcc_generated_files/mcc.h"

void wait(int imax){

    for(int i=0;imax>=i;i++){

        __delay_ms(1);

    }

}


void MIXLED2(double time){

    int i, j = 1;

        PORTB= 0b0000010;

    for(CCPR1L=0;CCPR1L<63;){


        CCPR1L = CCPR1L + j;

        if(j ==  1){if(CCPR1L>=32)j = -1;}

        if(j == -1){if(CCPR1L<=1)j =  1;}

        

        wait(time);

    }

}

void main(void)

{

    int i, j = 1;

    int PORTA_n=1;

     double time,cktime;

    time=100;

    CCPR1L = 0b0001;

    SYSTEM_Initialize();

    while(1){

        MIXLED2(time);

    }

}


動作は以下の通り。



そこそこそれっぽいかな?

ふと思ったんだけどマイコン入りのフルカラーLEDでやればマイコンのピン節約にならないかな?ちょうどその手の部品があるし、挑戦してみる?気が向いたらやるか。

0 件のコメント:

コメントを投稿