PIC12F683 Lチカ の様なSG(Pulse Generator)

お客様の案件で原理試作を造る事に成りました
本来、風量パルスが外部から来るのですが原理試作では
内部にSG(Pulse Generator)を実装してスイッチでどちらでも
使える様にして置くと便利な訳です

で、以前 555 timer で組んでいたのですが何か能が無いと思い

折角持って居るんだからPICを遣おうと思い立ちました
こんな波形が出ます、50Hz 固定です。
DSCN4442_R

↓現物です
DSCN4443_R


回路図、きたないのはご容赦
RA0=High / Low でデジトラをドライブしLチカさせて居ますが
最終的にはPLCの入力端子へと繋ぎます、だから相手はDC24V
ですね、で、お気づきでしょうが 24V → 5V のレギュレータ
が無いです、ツェナーダイオードでスライスして5Vにしてます
良ゐ子は真似しないで下さい
この回路図は以前 555 Timerで造ったSG(Pulse Generator)です
ご参考まで、本当に良く出来たICですよね応用範囲が凄いPWMとか
出来ちゃうじゃないですか
DSCN4445_R


ソースコードはまたパクリです、下記のブログから拝借致しました。
meideru blog
この場を借りて御礼申し上げます、で、少しいじってます。

/*
* File:   3243_LVD10W_PULSE_SG.c
* Author: maru
* 50Hz Pluse Generator
* Created on 2019/12/10, 16:38
*/
#include 
#pragma config FOSC = INTOSCIO
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = OFF
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = OFF
#pragma config IESO = OFF
#pragma config FCMEN = OFF
#define _XTAL_FREQ 4000000
int main(void)
{
OSCCON=0b01101000;
ANSEL=0b00000000;
TRISIO=0b00000000;
while(1)
{
//GPIO=0b00000000;
GP0 = 0;
__delay_ms(10);
//GPIO=0b00000001;
GP0 = 1;
__delay_ms(10);
}
return(0);
}
//↑ここまで

GPIO部分は GP0 とした方が何番ピンかすぐわかるので書き替えました
周波数変えるには __delay_ms(10); 変えるだけですね、恐ろしく
明快です、書き込みは Pickit3 を遣いました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です