2015年02月26日
ブザー回路9
おはようございます、ハロです
最近、お昼を食べると急激に眠くなってしまいます
さて、今回もブザー回路です
回路図とプログラム等を公開していきたいと思います
作りたい人の参考になればと・・・ただ、IPSCがちょっと不安です
これは、まだ実証してないので、そこらへんは適当にやっといてください
PICを取り外して書き込んでもらえれば一番いいんですが
まずは、回路図
そして、プログラム
#include <stdio.h>
#include <stdlib.h>
/*******************************************************
*3秒タイマーを作ります2015_01_11
*******************************************************/
#include <pic.h>
//#include <delays.h> //pic.hの中に入ってるそうです
#define _XTAL_FREQ 4000000
// PIC16F676 Configuration Bit Settings
#include <xc.h>
// CONFIG
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF // RA3/MCLR pin function select (RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
int main() {
//前処理
OSCCAL =0b10000000;//4MHzの中央値?使う
CMCON= 0b00000111;//コンパレータOFF 111で全オフ 下3ケタで動作モード切替
TRISA =0b00100000;
//TRISA =0b00001001;//RA0,RA3入力
TRISC =0b00011000;//RC3,RC4入力
PORTA=0b00000000;
PORTC =0b00000000;
OPTION_REG =0b11010110;
ANSEL=0b00000000;
GIE = 1;//割り込み許可
T0IE =0;//タイマ割込み許可
while(1){
if(RC4==1){
RC0=1;
RC1=1;
_delay(1222200);
RC0=0;
RC1=1;
_delay(2464200);
RC0=1;
RC1=1;
_delay(1200000);
RC0=0;
RC1=0;
}
else if(RC3==1){
RC0=0;
RC1=1;
_delay(3648649);
RC0=1;
RC1=1;
_delay(1222200);
RC0=0;
RC1=1;
_delay(2464200);
RC0=1;
RC1=1;
_delay(1200000);
RC0=0;
RC1=0;
}
}
}
MPLABでXC8のコンパイラで書きました
部品表
PIC:16F676
ブザ:圧電ブザー
npn型:1815GR
スイッチ:タクトスイッチ
抵抗:すべて1kΩ1/4W
という感じで、部品でした
以上でブザー回路終了!ってことで
次は、何しましょうか
最近、お昼を食べると急激に眠くなってしまいます
さて、今回もブザー回路です
回路図とプログラム等を公開していきたいと思います
作りたい人の参考になればと・・・ただ、IPSCがちょっと不安です
これは、まだ実証してないので、そこらへんは適当にやっといてください
PICを取り外して書き込んでもらえれば一番いいんですが
まずは、回路図
そして、プログラム
#include <stdio.h>
#include <stdlib.h>
/*******************************************************
*3秒タイマーを作ります2015_01_11
*******************************************************/
#include <pic.h>
//#include <delays.h> //pic.hの中に入ってるそうです
#define _XTAL_FREQ 4000000
// PIC16F676 Configuration Bit Settings
#include <xc.h>
// CONFIG
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF // RA3/MCLR pin function select (RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
int main() {
//前処理
OSCCAL =0b10000000;//4MHzの中央値?使う
CMCON= 0b00000111;//コンパレータOFF 111で全オフ 下3ケタで動作モード切替
TRISA =0b00100000;
//TRISA =0b00001001;//RA0,RA3入力
TRISC =0b00011000;//RC3,RC4入力
PORTA=0b00000000;
PORTC =0b00000000;
OPTION_REG =0b11010110;
ANSEL=0b00000000;
GIE = 1;//割り込み許可
T0IE =0;//タイマ割込み許可
while(1){
if(RC4==1){
RC0=1;
RC1=1;
_delay(1222200);
RC0=0;
RC1=1;
_delay(2464200);
RC0=1;
RC1=1;
_delay(1200000);
RC0=0;
RC1=0;
}
else if(RC3==1){
RC0=0;
RC1=1;
_delay(3648649);
RC0=1;
RC1=1;
_delay(1222200);
RC0=0;
RC1=1;
_delay(2464200);
RC0=1;
RC1=1;
_delay(1200000);
RC0=0;
RC1=0;
}
}
}
MPLABでXC8のコンパイラで書きました
部品表
PIC:16F676
ブザ:圧電ブザー
npn型:1815GR
スイッチ:タクトスイッチ
抵抗:すべて1kΩ1/4W
という感じで、部品でした
以上でブザー回路終了!ってことで
次は、何しましょうか