定電圧電源の製作、電圧表示付き(7セグメント3つ) - PIC電圧計

Posted by kyosuke at 04/10 2008
>>前の記事: PIC電圧計の完成!(C言語バージョン+7セグメントLED)



PIC電圧計の完成!(C言語バージョン+7セグメントLED)
http://give-n-take.net/gat/user/show_diary/229

をベースに、
電圧表示付きの定電圧電源の製作します。
(今まで使っていた自作の定電圧電源がご愁傷様を迎えそうなため。。)

とりあえず、ブレッドボードで動きます。
無計画にやってしまったので、
ワイヤーだらけ・・・。

Vol_reg

フラッシュをたいているので見づらいですが、
試したのはACアダプタの入力が18.5Vで、
出力が1.3V-15V(可変抵抗を動かして)出ます。

入力の大きさによって、
出力も変わります。

入力した電圧から3V引いた値が、
出力できる最大電圧です。

最小電圧は、1.3V

まぁ、ぼちぼち動いております。

1.9Vから2.0Vに移るときなんかに、
表示がぶれてしてしまうんですが、
まぁ、あまり気にせず使いましょう。








回路図
Vol_reg
7セグメントLEDは、アノードコモン

上記の回路図の拡大版
http://give-n-take.net/gat/upload_images/0000/0064/vol_reg_large.gif

実際の基板におろすときは、
可変抵抗の値なんかを少し変える予定です。


入力には、
ACアダプターを使います。

私の持っているACアダプターの中で、
もっとも強力なものは、18.5V 4.9A(90W)ですので、
それに合わせてICとかを選ぼうと思います。


ブレッドボードで使った3端子レギュレータ(電圧可変型)は、
LM317 最大1.5Aまで。

実機ではLM350の5Aタイプを使おうと思います。

LM350の許容損失25Wまでだから、
ACアダプターが90Wもあっても、
そこまで使えないんですけどね。。


実は、PIC16F877は40ピンもあるので、
使いたくなかったんですが、

現存する中でADコンバータが使えて、
7つのアウトプットができ、
PIC C LITEを使えるのは、

どうやらPIC16F877(A)のみのようです。。


PIC16F690用にプログラムを書いたら、
秋月のPICライターで書き込みできなかったり・・・。(かなりマヌケだ・・

PIC16F88を使おうかなと思ったら、
PIC C LITEを使えなかったり・・。

PIC12F675を使おうと思ったら、
使えるアウトプットは5つまでだったり。。
最低限6つのアウトプットがあれば、
デコーダでごまかそうと思ったんですけどね。



まぁ、そんな感じで、
あきらめてPICF877を使うことにしました。



プログラム

#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=0;
	short tmp;
	unsigned char cnt=0;

	init_a2d();	// initialise the A2D module
	GIE=0;		// we don't want interrupts
	TRISB=0x00;	// POTRB all output
	
	for(;;){
		tmp=read_a2d(1);		//0-1024 Gnd-Vcc
		tmp -= 6;
		if(tmp>x+1 || tmp<x-1){
			x = tmp*22;
		}else{
			x = x;
		}
		if(cnt==0){	// x > 10V
			PORTB = 0x10;
			tmp = x/9980;
			if(tmp>=1){
				PORTB = tmp + 16;
			}else{
				PORTB = 0x00;
			}
			cnt = 1;
		}else if(cnt==1){ //  10V > x > 1V
			PORTB = (x%9880)/988 + 32;
			cnt = 2;
		}else{ // x < 1V
			PORTB = (x%1000)/100 + 64;
			cnt = 0;
		}
		DelayMs(4);
	}
}


ちなみに、
電源をACアダプターからではなく、
自分で一から作りたい人は、

Regulated_dc_power_supply
なんかを参考にするといいかもです。
(私が今まで使っていた自作の定電圧電源)

なお3端子レギュレータの前に入れるコンデンサの値は
それぞれ2000uFくらいです。


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





PIC電圧計のモノ作り記事

Vol_reg_thumb
定電圧電源の製作、電圧表示付き(7セグメント3つ)
現在のページです
Posted by kyosuke at 04/10 2008

Vol_reg_seg_thumb
PIC電圧計の完成!(C言語バージョン+7セグメントLED)
PICマイコンの10ビットA/Dコンバータのプログラム+回路図+LEDバー&lt;br /&gt; http://toolible.net/monozukuri/articles/51&lt;br ...
続きを読む>>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記事を見る