2023-11-13
▼LED制御回路をPICで作成します。
▼ヘッドライトとコックピットの発光はPIC12F1822出力でなくても良いのですが、
後にプログラムでコントロールできるようにしておきます。
▼ソースファイルです。(Configや初期設定は省略)
void main(void) {
OSCCON = 0b01110010; //内部クロック8MHz 4MHz 0b01101010
ANSELA = 0b00000000; //アナログは使用しない(すべてデジタルI/Oに割り当てる)
TRISA = 0b00001000; //RA3だけ入力その他のピンは出力に割当てる(RA3は入力専用)
PORTA = 0; //出力ピンの初期化(全てLOWにする)
//ED明滅のための変数
char zentime = 65;
char ontime = 20;
char ima = 1;
char fugou =2;
while(1){
//明滅 RA0、RA1、RA2。 連続点灯 RA4、RA5
if(ima < ontime){
PORTA = 0b00110111;
}
else{
PORTA = 0b00110000;
}
//明滅ロジック
ima++;
if(ima > zentime){
ima = 1;
ontime = ontime + fugou; //点灯している時間を徐々に増減
if(ontime > zentime){
fugou = -1;
}
else{
if(ontime < 20){
fugou = 1;
}
}
}
__delay_us(4);
}//End of while
return;
}//End of main
OSCCON = 0b01110010; //内部クロック8MHz 4MHz 0b01101010
ANSELA = 0b00000000; //アナログは使用しない(すべてデジタルI/Oに割り当てる)
TRISA = 0b00001000; //RA3だけ入力その他のピンは出力に割当てる(RA3は入力専用)
PORTA = 0; //出力ピンの初期化(全てLOWにする)
//ED明滅のための変数
char zentime = 65;
char ontime = 20;
char ima = 1;
char fugou =2;
while(1){
//明滅 RA0、RA1、RA2。 連続点灯 RA4、RA5
if(ima < ontime){
PORTA = 0b00110111;
}
else{
PORTA = 0b00110000;
}
//明滅ロジック
ima++;
if(ima > zentime){
ima = 1;
ontime = ontime + fugou; //点灯している時間を徐々に増減
if(ontime > zentime){
fugou = -1;
}
else{
if(ontime < 20){
fugou = 1;
}
}
}
__delay_us(4);
}//End of while
return;
}//End of main
▼電飾のテスト動画です。
次は塗装です。
今回は発光ユニットを組込んでしまっているので、マスキングして塗装します。
今回は発光ユニットを組込んでしまっているので、マスキングして塗装します。
※コメント投稿者のブログIDはブログ作成者のみに通知されます