迷走の果て・Tiny Objects

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

DS1820をPSoCにつなぐ

DS1820は 1-wireインターフェースの温度センサです。
かなり以前に入手していたのですが、PSoCのユーザーモジュールにOneWireがあるのでつないでみました。
PSoC Designer は ver5.1です。



1-wireインターフェースはタイミングが難しいようなのですが、ユーザーモジュールのおかげで簡単に動きました。
OneWireのデータシートのサンプルどおりでOKでした。
温度データは8bitです、0.5℃ステップですので読み出した温度データを2で割れば温度がわかります。
DS18S20のデータシートでは
9-Bit Thermometer Resolution
となっていますが、実際は8bitです。

分解能をあげるための方法がデータシートに書かれています、温度データとは別に2バイトのデータを読み出す必要があります。
上の写真では最初の1バイトが温度データで、残りが補正用のデータです。
16進で33は10進で51ですから、2で割ると25.5℃となります。近くに置いた温度計は25.6℃でしたから正確といえるでしょう。
分解能を上げる方法もやってみましたが、私の場合そこまで必要はないので簡単にすませます。

さて、表示を見やすくして、複数のDS1820がつながるようにしなきゃ。(これが大変みたいですが・・・)
スポンサーサイト

Dallas Semiconductor のDS1821をPSoCにつなぐ

とりあえず覚書です。
AN2163 - PSoC® 1 - Temperature Measurement with a 1-Wire Digital Sensor

PSoCと気圧センサMPL115A2をつなぐ・またまた続き

参考にさせて頂いた記事のプログラムには一部問題があって、温度が低いと1500ヘクトパスカルなんてとんでもない値を表示することがある。
修正しておいた。


コメントアウトしてあるのがオリジナルのコード

//iPadc = ((int)(rxBuffer[0]) << 8) + ((int)(rxBuffer[1]) & 0x00FF);
//iTadc = ((int)(rxBuffer[2]) << 8) + ((int)(rxBuffer[3]) & 0x00FF);
//iTadc = (int)(iTadc - 0x10000*((0x8000 & iTadc)== 0x8000));
//uiPadc = (double)iPadc / 64.0 ;
//uiTadc = (double)iTadc / 64.0 ;

iPadc = (int)((rxBuffer[0]) << 2) +((rxBuffer[1]) >> 6) ;
iTadc = (int)((rxBuffer[2]) << 2) +((rxBuffer[3]) >> 6) ;
uiPadc = (double)iPadc ;
uiTadc = (double)iTadc ;

iPadcは圧力データ、iTadcは温度データでそれぞれ10ビット。
オリジナルの方法で読み出すと10ビット左詰めでint型変数に入る。
問題なのは温度データで、室温約25度の時に温度データは0x7d40となった。
MPL115A2の温度センサはデータの変化がちょっと変わっている。温度が低くなると数値が増えるのだ。
このため温度が下がると0x8000を超えてしまい、int型変数に入れると負数になってしまう。
これがトラブってしまう要因で、後で64で割るのだったら最初から10ビット右詰にしておけば符号の問題は回避できる。

気圧計4

表示を変更した。
上の行の左は圧力データ、右は温度データ。
下は気圧。

PSoCと気圧センサMPL115A2をつなぐ・続き

先の日記で書いたが参考にした記事ではPSoCとMPL115A2モジュールの接続について記されているが、これはストロベリーリナックスの気圧センサモジュールとの接続方法であって、秋月の気圧センサモジュールとはピン配置が異なるので注意が必要である。
さらにMPL115A2のデータシートによると2番ピンとGND間に1μFのキャパシタを入れるようになっている、ストロベリーリナックスのモジュールにはのっているが、秋月のモジュールにはのっていないので外付けする必要がある。

実験はPSoCEVAL1のブレッドボードに気圧モジュールを載っけて行ったが、数値が結構ばたつくのである。
1500ヘクトパスカルなんてとんでもない数値がたまに出る。
グランドラインを短くして多少ましになった。気圧モジュールにはパスコンが載ってるが100μFのケミコンを外付けしたら数値のばたつきはほとんど収まった。それでも1~2カウントふらつくことがある。ちなみに測定間隔は約1秒。
配線にもう少し気を遣った方がいいのかもしれない、ユニバーサル基板で再実験してみたい。気圧計2


PSoCと気圧センサMPL115A2をつなぐ

秋月電子から購入しました、MPL115A2使用大気圧センサーモジュール
I2Cで接続してマイコンで簡単に大気圧が測れるようになる、と思っていたのですが、データの補正が必要でこれが結構やっかいなのです。
ありがたいことに小林一行研究室PSoCと接続した記事があったので参考にさせて頂いた。
というよりパくらせて頂きました(汗
気圧計3

私の場合はシリアル接続はせずにLCDにデータを表示させるようにしました。
上の行は圧力、温度そして気圧をそれぞれ16進で表示してます。
下の行は気圧で単位はヘクトパスカル。
どうやらそれらしい値が得られています。

OCXOを入手しました。

トヨコムのTCO-635A2です。ユニバーサル基板に乗せようとしたんですが、ピン間隔が2.54mmの整数倍じゃないので入りません、仕方なくドリルで孔を大きくして乗せました。

電源は12Vで出力はTTLレベル。

オーブンが入ってるので電源投入直後はかなり電流が流れます、内部温度が一定になると電流も一定になるようです。
測定してみました。
OCXO電流
データロガーなんてものは持ってませんので、時計と電流計をにらめっこしながらの測定です(汗
途中で用事が出来て測定できていないところもありますが、20分ほどで電流値がほぼ一定になるようです。
ということは内部温度もほぼ一定、だから発振周波数も一定だろうと推定出来ます、発振周波数は測ってませんけど。

さて、これを使って何をしようか。

 | HOME | 

文字サイズの変更

プロフィール

edy

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

脈拍センサーMAX30100を試す(5) May 20, 2017
MT3608モジュールを使ったDSO Shell用電源 May 16, 2017
脈拍センサー MAX30100を試す(4)MAX30100_Registers.h を調べる。 May 13, 2017
脈拍センサー MAX30100を試す(3)正常動作?? May 12, 2017
脈拍センサー MAX30100を試す(2)スケッチとライブラリー May 10, 2017
脈拍センサー MAX30100を試す(1) May 08, 2017
Studuino用電池ボックスを作る(2) May 06, 2017
Studuino用電池ボックスを作る May 05, 2017
MT3608モジュールのテスト Apr 30, 2017
BME280モジュールを使った温度・湿度・気圧計(2)DSO Shellを使って動作電流を測る Apr 23, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

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

月別アーカイブ

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)
電子工作 (399)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (28)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

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

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん