PIC電圧計の完成!(C言語バージョン+7セグメントLED) - PIC電圧計

Posted by kyosuke at 04/02 2008
>>次の記事: 定電圧電源の製作、電圧表示付き(7セグメント3つ)
>>前の記事: PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー



PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー
http://toolible.net/monozukuri/articles/51<br />
のアップデート版です。


前回のやつは、
LEDバーで電圧を表示させていました。

今回は、74ls47(BCD to 10 digit)を使って2つの7セグメントLEDをドライブ、
ちゃんとした2桁の数字(0.0V-5.0V)で電圧を表示させます。


回路図
Vol_reg_seg
dotを表示させるところに
100オームの抵抗を入れるの忘れた。。
ちゃんと入れておかないと、
dotのところだけ焼きつくかも・・。







プログラム PIC C Liteを使用
(delay.hはPIC C Liteのサンプルプログラムから)

#include <pic.h>
#include "delay.h"
__CONFIG(0xFF32);

/* ADコンバータの初期化 10ビットを使用 */
void init_a2d(void){
	ADCON0=0;		// select Fosc/2
	ADCON1=0x8E;	// select right justify result. A/D port configuration 0
	ADON=1;			// turn on the A2D conversion module
}

/* AN0(RA0) アナログ→デジタル電圧の読み取り */
short read_a2d(unsigned char channel){
	channel&=0x07;	// truncate channel to 3 bits
	ADCON0&=0xC5;	// clear current channel select
	ADCON0|=(channel<<3);	// apply the new channel select
	ADGO=1;	// initiate conversion on the selected channel
	while(ADGO)continue;
	return(((ADRESH<<8)+(ADRESL)));	// return 10 MSB of the result
}

void main(void){
	short x;
	unsigned char cnt=0;
	unsigned char tmp=0;

	init_a2d();	// initialise the A2D module
	GIE=0;		// we don't want interrupts
	TRISB=0x00;	// POTRB all output
	
	for(;;){
		x=read_a2d(1);		//0-1024 Gnd-Vcc
		if(cnt==0){	// x > 10V
			PORTB = 0x10;
			cnt = 1;
		}else if(cnt==1){ //  10V > x > 1V
			PORTB = x/200 + 32; //200->205
			cnt = 2;
		}else{ // x < 1V
			PORTB = (x%200)/20 + 64; //200->205
			cnt = 0;
		}
		DelayMs(2);
	}
}


実物
Vol_reg_7seg
7セグメントLEDのところがワイヤーだらけ・・。
2つセットの7セグメントを買うのが良いです。

部品
抵抗 100オーム×7 1kオーム×1 50kオームの可変抵抗×1
7セグメントはアノードコマン×2(または2つセットのやつを1つ)
74LS47×1
PIC16F877×1
セラロック 4MHz×1
コンデンサ 10uFくらい×1


結構正確に電圧を表示してくれます。
プログラムのところで、
200のところを205にしたほうがより正確になりそうです。


>>次の記事: 定電圧電源の製作、電圧表示付き(7セグメント3つ)
>>前の記事: PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー





PIC電圧計のモノ作り記事

Vol_reg_thumb
定電圧電源の製作、電圧表示付き(7セグメント3つ)
PIC電圧計の完成!(C言語バージョン+7セグメントLED)&lt;br /&gt; http://give-n-take.net/gat/user/show_diary/229 &lt;br /...
続きを読む>>定電圧電源の製作、電圧表示付き(7セグメント3つ)
Posted by kyosuke at 04/10 2008

Vol_reg_seg_thumb
PIC電圧計の完成!(C言語バージョン+7セグメントLED)
現在のページです
Posted by kyosuke at 04/02 2008

Vol_reg_thumb
PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー
電圧計の完成!&lt;br /&gt; http://toolible.net/monozukuri/articles/21&lt;br /&gt; &lt;br /&gt; とか書いてあります...
続きを読む>>PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー
Posted by kyosuke at 03/30 2008

Pictester_thumb
PIC電圧計の完成!(アセンブラバージョン)
前回は、割り込み処理のデバックが終わった。&lt;br /&gt; &lt;br /&gt; いうなれば、今回のデバックが電圧計のためのものと。。&lt;br /&gt; &lt;br /&gt...
続きを読む>>PIC電圧計の完成!(アセンブラバージョン)
Posted by kyosuke at 08/11 2007

No_image
電圧計PICプログラム デバック
さて、デバックする。&lt;br /&gt; &lt;br /&gt; 凡ミスを取り除いて、&lt;br /&gt; ビルトOK。&lt;br /&gt; &lt;br /&gt; RUNし...
続きを読む>>電圧計PICプログラム デバック
Posted by kyosuke at 08/09 2007

PIC電圧計 の14記事を見る