SSブログ

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にしてます
良ゐ子は真似しないで下さい
DSCN4444_R

この回路図は以前 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 を遣いました。

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。