PIC ことはじめ ~ A/D 変換

Posted by
ぴろり
Posted at
2011/10/31 09:33
Trackbacks
関連記事 (1)
Comments
コメント (1)
Post Comment
コメントできます
Category
電子工作 カテゴリ
カバーイメージ

 次に、PIC12F675 の A/D (アナログ/デジタル)変換機能を使ってみます。A/D 変換を用いると、入力ポートに接続された電圧などのアナログ値を、プログラムからデジタル データとして扱うことができるようになります。これを利用して、PIC に様々なセンサを接続することで、電圧や明るさ、温度、湿度などに応じて処理を変化させることができるようになります。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

概要

  • PIC12F675 を用いた簡単な A/D 変換回路を実装する。
  • PIC の入力(GP2)の電圧に応じて、PIC の出力(GP0, GP1, GP4, GP5)に接続された 4 つの LED の点灯消灯を制御する。

ソースコード

#include <htc.h>

__CONFIG (FOSC_INTRCIO  // 内蔵オシレータ
        & WDTE_OFF      // WDT 無効
        & PWRTE_OFF     // PWRT 無効
        & MCLRE_OFF     // MCLR 使用しない
        & BOREN_OFF     // BOD 無効
        & CP_OFF        // Program Memory code protection 無効
        & CPD_OFF       // Data memory code protection 無効
);

void main ()
{
	// ポートの入出力方向を設定
	// GP0	OUT - LED1
	// GP1	OUT - LED2
	// GP2	IN - Analog
	// GP3	IN - NC
	// GP4	OUT - LED3
	// GP5	OUT - LED4
	TRISIO = 0b00001100;

	// 内蔵クロックを使用、AN2 を使用
	ANSEL = 0b00110100;
	// コンパレータは使用しない(必要)
	CMCON = 0b00000111;

	GPIO = 0;
	while (1) {
		// 右詰め、VDD基準、AN2、ADON(必要)
		ADCON0 = 0b10001001;
		// A/D変換を開始
		GO = 1;
		// A/D変換の終了を待つ
		while (GO)
			continue;

		if ((ADRESH & 3) == 0) GPIO0 = 1, GPIO1 = 0, GPIO4 = 0, GPIO5 = 0;
		if ((ADRESH & 3) == 1) GPIO0 = 0, GPIO1 = 1, GPIO4 = 0, GPIO5 = 0;
		if ((ADRESH & 3) == 2) GPIO0 = 0, GPIO1 = 0, GPIO4 = 1, GPIO5 = 0;
		if ((ADRESH & 3) == 3) GPIO0 = 0, GPIO1 = 0, GPIO4 = 0, GPIO5 = 1;
	}
}

回路図

回路図

 回路はほぼそのままに、LED の出力部分を流用し、入力ポートに可変抵抗を接続します。可変抵抗を操作することで、GP2 の電圧を VDD から GND レベルまで変化させることができます。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  


この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:PIC ことはじめ ~ A/D 変換 + 7 セグメント LED

関連記事/トラックバック (全 1 件中、最新 5 件まで表示しています)

Open MagicVox.net のスクリーンショット
タイトル
PIC ことはじめ ~ A/D 変換 + 7 セグメント LED
Trackbacked at
2012/01/23 13:43
from
Open MagicVox.net
概要
 さて、7 セグメント LED による表示ができるようになったところで、以前、実験した A/D 変換を組み合わせてみたいと思います。これによって、A/D...

この記事にトラックバックを送るには?

寄せられたコメント (全 1 件中、最新 5 件まで表示しています)

Posted by
やまかわやまかわ
at
2011/10/31 15:13
ID
RyLzdLq6
今ならAVR + Arduinoが楽っすよたぶん!
PICプログラマーも持ってますがしばらく使ってないですねえ。

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。