PIC16F88のAN4のアナログ/デジタル変換について教えてください?
PIC16F88にて以下のピンアサインでCCS社のCコンパイラで作成しました。AN2の温度AN3の湿度は正常にLCDに表示するのですがAN4の電圧がAN3の湿度の変化に追従してくるんです。ピンアサインが間違っているのか、PIC16F88に制限があるのか英語の説明書見てもチンプンかんぷんで。どなたかよろしくご教授お願いします。(現在AN4の電圧測定はオープン状態で0.245V 湿度計を触ると0.443vに変化します)
RB7(13ピン) LCD DB7(14ピン)
RB6(12ピン) LCD DB6(13ピン)
RB5(11ピン) LCD DB5(12ピン)
RB4(10ピン) LCD DB4(11ピン)
RB2(8ピン) LCD RS (4ピン)
RB3(9ピン) LCD STB (6ピン)
LCD R/W(5ピン)→GND
LCD VSS(1ピン)→GND****LCDタイプによりVSSとVDDが逆****
LCD VDD(2ピン)→+5V****LCDタイプによりVSSとVDDが逆****
RA2(1ピン)AN2LMC662CN 温度電圧入力
RA3(2ピン)AN3LMC662CN 湿度電圧入力
RA4(3ピン)AN4電圧測定
RA0(17ピン)右SW(B_sw)MAX and MIN クリア
RA1(18ピン)左SW (A_sw)MAX and MIN and 電圧 表示
関係ありそうなプログラム抜粋
#include<16f88.h>
#fuses HS,NOWDT,PUT,NOPROTECT,NOLVP,NOBROWNOUT,
#device ADC=10 //アナログ/デジタル変換10ビットモード
#usedelay(clock=4000000)//4Mzクロック
#usefast_io(b)//ポートB出力設定
途中省略
set_adc_channel(2);//A/D変換チャンネル設定
delay_us(116);//変換にかかる時間96μs+19.72μs
ondo = read_adc();//A/D変換レジスタリードしondoへ
ondo = (ondo * 50.0) / 1024;//ondo値を実数に変換
途中省略
set_adc_channel(3);//A/D変換チャンネル設定
delay_us(116);//変換にかかる時間96μs+19.72μs
shitsudo = read_adc();//A/D変換レジスタリードしshitsudoへ
shitsudo = (shitsudo * 100.0) / 1024;//shitsudo値を実数に変換
途中省略
set_adc_channel(4);//A/D変換チャンネル設定
delay_us(116);//変換にかかる時間96μs+19.72μs+α
v = read_adc();//A/D変換レジスタリードしvへ
v = (v * 0.5) / 1024;//v値を実数に変換
途中省略
main()
{
////////////////////////温度計湿度計電圧計の設定///////////////////
setup_adc_ports(sAN2 | sAN3 | sAN4 | VSS_VDD);//アナログポート設定
setup_adc(ADC_CLOCK_DIV_32);//アナログ変換クロック設定
No.1ベストアンサー
- 回答日時:
オープンにしているからです。
インピーダンスが非常に高いため、アナログマルチプレクサの浮遊容量等の影響で、隣の信号レベルが誘導されます。このピンに限らず、入力ピンをオープンにしておいてはだめです。このような誘導や、入力レベルが中間値になると電源に大電流が流れたり、いろいろ不都合が出ます。
オープンピンは出力モードにするか、入力モードなら、10KΩ程度の抵抗でGNDか電源につなぐようにしなければなりません。これは CMOS IC を使う上での常識です。
P0O9Iさま
今日パーツショップで10KΩの抵抗4つと10KΩの半固定可変抵抗4つを購入し実験回路を作って早速試してみました。AN1,AN2,AN3に回路を接続しAN4のみオープンとしました。
結果おっしゃる通りでオープン状態だと隣の端子に電圧が引っ張られます。抵抗と半固定の回路をAN4に接続するとVRの変化に比例して電圧測定出来ました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(AV機器・カメラ) オーディオケーブル変換 オーディオケーブルだ2ピン(モノラル)を3ピン(ステレオ)に変換できる機器は 4 2023/03/26 13:55
- CPU・メモリ・マザーボード すみません、hpプロデスク600g1 のマザーボードの電源コネクタスロットが6ピンで24ピンのコネク 2 2023/03/31 14:28
- CPU・メモリ・マザーボード 至急、 24ピンの電源コネクタを6ピンのスロット に挿すと壊れますか?また、変換ケーブルを買った方が 3 2023/03/31 13:50
- その他(趣味・アウトドア・車) Arudino nanoが正常に動作しない原因 1 2022/10/30 18:29
- ビデオカード・サウンドカード 6ピン 8ピン 変換 2 2022/08/20 22:06
- CPU・メモリ・マザーボード pcについてですが、hpプロデスクの マザーボードを使ってgtx660ti ddr5 2gb を動か 1 2023/03/31 17:23
- ブルーレイ・プレーヤー・レコーダー DENONのレコードプレーヤーDP67Lでストップを押すと高速回転します。正常停止する時もあります。 1 2022/11/04 12:57
- CAD・DTP 逐次比較ADCとフラッシュADC 1 2022/07/03 15:46
- 体温計・血圧計 導電性ゴムとLCDの接続 2 2023/08/02 19:05
- 車検・修理・メンテナンス ステアリング交換 ステアリング交換をDIYしようと今現在取り外そうとしたのですが、エアバッグ固定ピン 4 2023/05/17 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
PHPで、日本語からアルファベッ...
-
C/C++→JAVAに変換するツール
-
F-BASICからC言語への変換
-
PDF形式による特殊文字の表示
-
エクセルのvbaで検索ボタンを作る
-
マンセル⇔XYZ,RGB変換式或いは...
-
特定のタイムゾーンからtime_t...
-
シフトJISのCSVファイルをUFT-8...
-
c++でmatからvectorへの変換の...
-
10進数を2進数に変換するプログ...
-
System::Stringからconst char...
-
10進数をBCDに変換する方法
-
TIFF形式のイメージをBMPに変換...
-
画像ファイル変換(Tiff→PDF)
-
VBAを使って二進法計算
-
bitmapクラスをiconクラスに変...
-
VC++2005で、CString型に16進...
-
VB 6 を VS 2012に変換するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
エクセルVBAの自動変換機能?
-
アセンブラ言語の数字を数値に...
-
なぜ通信には16進数文字列が使...
-
SJIS⇔UTF-8の文字コード...
-
C++からCへのソース変換について
-
分を時間に変換するプログラム
-
UTF8→ShiftJISに変換したいです!
-
家電製品の電力周波数を変える機械
-
マンセル⇔XYZ,RGB変換式或いは...
-
VB.NETをJavaに変換するツール...
-
画像ファイル変換(Tiff→PDF)
-
PHPで、日本語からアルファベッ...
-
魚眼レンズの画像処理
-
C#で漢字→ローマ字を変換
-
StrConvの使い方について教えて...
おすすめ情報