迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

LCDのコントラスト調整について2

LCDのコントラスト
再度左図のようにしておき、3pinの電圧と電流を測定してみた。
電圧(V) 電流(mA)
0.213 0.169
0.397 0.162
0.713 0.15
0.927 0.142
1.09 0.136

この結果から内部等価回路は
LCDのコントラスト3
このように推定できる。
ネットであれこれ検索していると、ELMさんのサイト答えがあった。

私なりに書き直してみました。
LCDのコントラスト2
5つの抵抗の合計値が28KΩだったわけだ。
これがわかれば右図のように半固定抵抗で分圧した電圧を3pinに加える必要はなく、左図のようにしても問題ないはずだ。
ただし、どのLCDモジュールでもこの手が使えるかどうかはわからないが、HD44780を使ってるならたぶんOKだろう。
この方法で湿度・温度計のCPUスリープ時の消費電流は0.64mAにまで減少した。
スポンサーサイト

LCDのコントラスト調整

SHT-71湿度温度計
sht-71を使った湿度温度センサの消費電流が2mAほどまで減らせた、となると気になるのはLCDのコントラスト調整用の10kΩに流れる電流、約0.5mA。これを減らせないか?
どの製作例を見てもこれには10KΩの半固定抵抗を使っている。
コントラスト調整用の端子の電圧は約0.4V、これならもうちょっと抵抗値を大きくしてもいいんじゃないか?
LCDのコントラスト
まずは左のようにパターンをカットして試してみたら、ちゃんと表示するではないか。
このままにしようかとも思ったがとりあえず右図のように20KΩを追加して様子を見ている。
これでスリープ時の電流は0.8mAにまで減少した。

SHT-71を使った湿度・温度計3

ストロベリーリナックスさんのPSoCマイコンボードに組み直しました。
CY3210-PSoCEVAL1ではMAX232が基板上にハンダ付けされており外せないので正確な消費電流が測れないからです。
SHT71_6.jpg
いくつか部品が乗ってますが、以前実験したときのもので、電源ラインは外してあります。
SHT71_7.jpg
SHT-71はこの写真のように足を前後に曲げて基板に載せました。

プログラムを書き換えました、Sleep Timerを使います。
タイマは1秒に設定し、温度と湿度を交互に測定します。
それぞれ12ビットモードにしてあります。
消費電流ですが、1秒中約80mSの間に8mAほど流れ、あとは約1.4mA程度でした。
平均すれば約2mAぐらいでしょうか。

LCDをストロベリーリナックスさんのI2C低電圧キャラクタ液晶モジュールに変えれば1mA以下になることが期待できます。

SHT-71を使った湿度・温度計2

SHT71_5.jpg
単位が出るように表示ルーチンをいじりました。
百均で買った温度計と並べてみました。

PSoCのユーザーモジュールLEDをDATAportに使っていましたが、やめました。
プロジェクトを開くたびにDriveがStrongになるのが面倒なのと、Shadow Registerを試したかったからです。
SCKportは今まで通りLEDユーザーモジュールを使います。

測定時間について:
データシートから引用します。

測定に要する時間は8/12/14 ビット測定に対応して最大でそれぞれ20/80/320 ms です。この時間は内部発振器の速度によって変化し、30% 程度まで短い値を示すことがあります。

・・・中略・・・

重要:自己加熱を0.1℃ 未満に抑えるため、SHT7xを使用する全時間帯の中で実際にデバイスが動作する時間が10% を超えないようにしてください。たとえば、12 ビット精度の測定ならば最高でも毎秒1回の測定としてください。

デフォルトで温度は14ビット、湿度は12ビットで測定されます。上記に引用した注意点を守るとするならば温度は3秒、湿度は1秒測定にかかることになります。

再度データシートから引用します。

測定分解能:特に何も指定しなければ温度は14 ビット、湿度は12 ビット精度で測定されますが、それぞれの分解能を12 および8 ビットへ下げることも可能です。特に高速測定が必要な場合や、消費電力を抑える必要がある場合は分解能を下げることが有効です

私の場合、温度湿度共に12ビットで測定するようにしました、変更はステータスレジスタへの書き込みで行えます。
このようにソフトで分解能を変えることが出来るので、スイッチを付けて普段は低分解能で測定しておき、必要になったら高分解能に切り替えるなんて事が出来ます。(まだやってませんけど)

SHT-71を使った湿度・温度計

SHT-71湿度温度計

一応、回路図です、簡単です。
PSoCのP_1_7とP_1_6ポートを使っています。
ユーザーモジュールのLEDを使っています、P_1_6はクロックでPSoCから一方的に送り出すだけなので問題はないのですが、P_1_7はデータをやりとりするポートで双方向です、従ってPull Upに設定します。
pinout.jpg
一つやっかいなのはLEDモジュールを使ったために、プロジェクトを開くたびにDriveがStrongに戻ってしまうことです。
この場合、マニュアルでPull Upに再設定していますが、プログラム中で書き換えた方がいいのかもしれません。

ストロベリーリナックスでお買い物・温度湿度センサSHT-71

Sensirion 1チップ温度・湿度センサ [SHT-71] を買ってしまいました。
SHT71_1.jpg
SHT-11にリード線がついたものです。デジタルでデータが読み取れるので便利なのですが、
SHT-11の説明ページには

■I2Cバスでマイコンに簡単に接続できます。I2Cバスがあるマイコンならより簡単!


と書いてあるのですが、I2Cとコンパチでありません。
説明ページで引用してあるデータシートにも

The serial interface of the SHTxx is optimized for sensor readout and power consumption and is not compatible with I2C interfaces


と書いてあるんですが・・・・。

幸いにもエレキジャックの2線式 温・湿度センサSHT11 アーカイブを見つけ制御の方法がわかりましたので、PSoCで試してみました。

SHT71_2.jpg
CY-3210-PSoCEVAL1のブレッドボードに差し込みますが、リード間隔が1.27mmなので1本おきに曲げて差し込み、曲げたピンにはケーブルを半田付けしました。

プログラムは先のエレキジャックの記事が大変参考になりました、というかほとんどパクリです(汗

SHT71_3.jpg
とりあえず、何とか表示にこぎつけました。
下は温度を表示しているのですtが、printfの桁制御が出来ないようなので、上の湿度表示では自前のルーチンで表示しています。

SHT71_4.jpg
さらに手を入れて何とかましな表示になりました。
でも温度がどうにも高めにでます。
センシリオン株式会社からのデータシートによると

重要:自己加熱を0.1℃ 未満に抑えるため、SHT7xを使用する全時間帯の中で実際にデバイスが動作する時間が10% を超えないようにしてください。たとえば、12 ビット精度の測定ならば最高でも毎秒1回の測定としてください。


とあります、今回は間隔を置かずに連続で測定していたので自己加熱によって温度か高めに出たと思います。
もうちょっといじってみます。

熱電対温度計・リニアライズ2

熱電対の起電力がマイナスの場合のリニアライズをやってみた。
例によって熱電対の起電力表を参照している。
0℃から-100℃までのデータをエクセルに打ち込み、二次の近似式を当てはめてみた。
K型熱電対マイナス
起電力をV(mV)、温度をT(℃)とするとき、
T=-0.945V^2+24.698V
と近似できる。
これを元にプログラムし、台所の冷凍庫の温度を測ってみた。
Kthermo090808_2.jpg

-23℃、こんなもんでしょうか、家庭用冷蔵庫の冷凍庫は。

7セグメントLCDを2線だけで制御する

ネットをうろついていて見つけたのがこちら。
この記事の元ネタはEDN japanの記事なのだけどLCDの反応の遅さを利用して出力にラッチのないHC164でうまく処理している。
7segLCD.jpg
実は手持ちに7セグメントのLCDを持っているので、早速に試してみようかと思っている。
これをPSoCで制御したいわけだ。
ポートを2つ用意する、データ用とクロック用だ。これをソフトでオンオフしてやればいいわけだが、PSoCなんだからユーザーモジュールで何とかならないかと調べたら、SPIMがまさにどんぴしゃで使える。
このSPIM中身はシフトレジスタにコントロール回路があって、クロックを自動で出してくれるし、LSBから送るかMSBから送るかの選択も出来る等便利なのだ。
APIで送信可能かチェックして、OKなら送信データをAPIに渡せばいい。

「デュアル周波数カウンタ+K型熱電対温度計」の回路図

とりあえずアップしておきます。まだいじりたいところがあるので、明日には変わってるかも・・・。


K型熱電対温度計の概要
熱電対部の概略です。
温度湿度を測るときはPGA1のゲインを1にします。

熱電対の電圧を測るときはPGA1のゲインを8にします。
このままではPGA1のオフセット電圧が無視できないのでまずAMUXをPGA2につないでPGA1のオフセット電圧を測り、次に熱電対の起電力を測って先のオフセット電圧をソフトで引き算します。

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

ブリッジドT発振回路(3)光るランプ Oct 16, 2017
ダイソーのかぼちゃで電飾 Oct 08, 2017
ブリッジドT発振回路(2)オペアンプとっかえひっかえ Oct 07, 2017
ブリッジドT発振回路(1) Oct 02, 2017
AD587を使った基準電源【追加有り】 Oct 01, 2017
DABPを使った発振回路(5)ランプの特性、分圧抵抗を変更、コンデンサを変更。 Sep 24, 2017
DABPを使った発振回路(4)ランプ変更(修正版) Sep 18, 2017
DABPを使った発振回路(3)LEDからランプ制御へ Sep 09, 2017
DABPを使った発振回路(2) Sep 03, 2017
DABPを使った発振回路 Aug 27, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (420)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (32)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん