約 1,457,847 件
https://w.atwiki.jp/oxygennotincluded/pages/130.html
液体用パイプ温度センサー
https://w.atwiki.jp/oxygennotincluded/pages/149.html
気体用パイプ温度センサー
https://w.atwiki.jp/arduino/pages/29.html
温度センサー LM61CIZ http //akizukidenshi.com/catalog/g/gI-02726/ 4つで200円の温度センサー。 ■汎用の高精度IC温度センサーです ■測定範囲:−30℃〜100℃ ■温度係数:+10mV/℃ ■動作電圧範囲:+2.7〜+10V ■出力インピーダンス:800Ω ・Vo=(+10mV/℃×T℃)+600mV +100℃/+1600mV +85℃/+1450mV +25℃/+850mV 0℃/+600mV −25℃/+350mV −30℃/+300mV 単純な温度取得 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 int ledPin = 13; int templPin = 5; void setup() { analogReference(INTERNAL); Serial.begin(19200); } void loop() { int val; double volt; double templ; val = analogRead(templPin); // 0-1023 / 1.1Vで1024になる volt = 1.1*val/1024.0; templ = (volt-0.6)*100.0; // 10mV=1c Serial.print(val); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); delay(1000); } 複数回データを取得して平均する int ledPin = 13; int templPin = 5; void setup() { analogReference(INTERNAL); Serial.begin(19200); } #define SAMPLING_COUNT 30 void loop() { int val; int i; double volt; double templ; val = 0; for(i=0; i SAMPLING_COUNT; i++){ val += analogRead(templPin); delay(10); } val = val/SAMPLING_COUNT; volt = 1.1*val/1024.0; templ = (volt-0.6)*100.0; // 10mV=1c Serial.print(val); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); delay(700); } ブレが小さくなる。 LM35DZ http //akizukidenshi.com/catalog/g/gI-00116/ 高精度IC温度センサ LM35DZ 0〜100℃ [LM35DZ] 通販コード I-00116 発売日 2001/12/12 メーカー NATIONAL SEMICONDUCTOR 摂氏(℃)に比例した電圧出力 ◎例: 0℃→0V 20℃→200mV ◆測定温度範囲:0〜100℃ ◆精度:±1℃ ◆温度係数:10.0mV/℃ ◆電源電圧:DC4V〜20V 低消費電流:60μA ◆低出力インピーダンス:0.1Ω ◆T0-92パッケージ ピン配置はLM61CIZと同じだが出力全圧が違う。 LM61CIZ vs LM35DZ void setup() { analogReference(INTERNAL); Serial.begin(115200); } void task_LM61CIZ() { static int pin = 5; static int sum = 0; static int samples = 0; double volt; double templ; sum += analogRead(pin); samples += 1; if(30 samples){ volt = 1.1*sum/samples/1024.0; templ = (volt-0.6)*100.0; // 10mV=1c Serial.print("LM61CIZ "); Serial.print(sum); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); sum = 0; samples = 0; } } void task_LM35DZ() { static int pin = 4; static int sum = 0; static int samples = 0; double volt; double templ; sum += analogRead(pin); samples += 1; if(30 samples){ volt = 1.1*sum/samples/1024.0; templ = volt*100.0; // 10mV=1c Serial.print("LM35DZ "); Serial.print(sum); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); sum = 0; samples = 0; } } void loop() { task_LM61CIZ(); task_LM35DZ(); delay(100); } LM61CIZ 27723 / 0.96V / 36.07C LM35DZ 10155 / 0.35V / 35.19C LM61CIZ 27722 / 0.96V / 36.06C LM35DZ 10156 / 0.35V / 35.19C LM61CIZ 27721 / 0.96V / 36.06C LM35DZ 10153 / 0.35V / 35.18C LM61CIZ 27728 / 0.96V / 36.08C LM35DZ 10158 / 0.35V / 35.20C LM61CIZ 27721 / 0.96V / 36.06C LM35DZ 10148 / 0.35V / 35.17C LM61CIZ 27724 / 0.96V / 36.07C LM35DZ 10155 / 0.35V / 35.19C LM61CIZ 27726 / 0.96V / 36.08C LM35DZ 10161 / 0.35V / 35.21C 参考URL http //nekosan0.bake-neko.net/structure_analog_in.html http //www.musashinodenpa.com/arduino/ref/index.php?f=0 pos=1949
https://w.atwiki.jp/marykiban/pages/46.html
温度センサDS18B20の接続 MARY以外のマイコン基盤の記事なんかを眺めていますと、温度センサが搭載されているものをよく見かけます。それが結構面白そうなので、MARY基盤でも何とかできないかな、とぼんやり考えていたときにふと見つけたのが、MAXIMという会社の1-WIRE LANと言う規格を使ったセンサ群でした。 このセンサは、 マイコンとセンサの間はデジタル接続であり、コンバータなどを必要としない 電源、GNDを除くと信号線は1本ですむ ひとつの信号線にはいくつもセンサをぶら下げられ、それぞれを個別に制御できる といった特徴があるようです。 今回は温度センサDS18B20を用いて、複数箇所の温度測定をMARY基盤で行いました。 ちなみに、購入はストロベリー・リナックスから通販で購入しています。 MARY基盤との接続 MARYとの接続は次のようになります。 文献をあさると、信号線の電圧を利用することでセンサをドライブし、5V接続を不要としたパラサイト接続という方法があるようですが、制御が少々面倒になるので素直に5VをMARYからいただきました。
https://w.atwiki.jp/p6tr2e/pages/22.html
P6Tのセンサー ■1 150 名前:Socket774[sage] 投稿日:2008/11/26(水) 23 24 35 ID 7UONzstT P6Tで不満なのは・・・・ メモリ電圧、NB電圧、SB電圧のモニタが出来ないことと、 NB温度、SB温度等の温度センサーがない事ぐらいかな あとは問題なし ■2 106 名前:Socket774[sage] 投稿日:2009/01/15(木) 21 31 50 ID r61WKbYU というかP6TもR2Eも変わらんよ どちらでも3.5GHz程度のOCなら楽だし 109 名前:Socket774[sage] 投稿日:2009/01/15(木) 21 34 48 ID +UlivZWP #106 P6のセンサーのなさすぎはひどいだろ R2Eのメリットは殆どないよ 115 名前:Socket774[sage] 投稿日:2009/01/15(木) 21 43 19 ID +UlivZWP 兄貴から早速クレーム来たけどP6ってEverestでCPUコア電圧しか見れないんしょ? メモリーの電圧も見れないっていうし 117 名前:Socket774[sage] 投稿日:2009/01/15(木) 21 51 10 ID +UlivZWP まっ人それぞれだけど俺はR2EとP6でこんだけ違うのは微妙に感じる 119 名前:Socket774[sage] 投稿日:2009/01/15(木) 21 56 05 ID xahrhQqg #117 俺も初めてROG買ったときに モニター項目たくさんあって最近のASUSは凄いなと 勘違いしたけど、そのあと寺を買ったら何か普通でしょんぼり。。。 もう寺には戻れない
https://w.atwiki.jp/geomagneticfield/pages/11.html
MLSM303DLHCについて 地磁気センサーモジュールとして、マルツパーツ館のMLSM303DLHCを選択した。地磁気だけでなく、加速度センサーと温度センサーもパッケージされている。STMicroelectronics社のLSM303DLHCの小型ICと共に、プルアップ抵抗やコンデンサーを基盤に載せて、8ピンパッケージに変換したモジュールとなっている。 他には、Strawberry Linuxから同様の品が発売されているようだ。 仕様 検出範囲(磁場) ±130000 nT, ±190000 nT, ±250000 nT, ±400000 nT, ~±470000 nT, ±560000 nT, ±810000 nT (ソフトウェアで選択) 検出範囲(加速度) ±2 g, ±4 g, ±8 g, ±16 g (ソフトウェアで選択) 分解能 16 bit サンプリング周波数 100 kHz, 400 kHz 電源電圧 2.16-3.6 V インターフェイス I2C データシートの最初のページによれば、分解能は16 bitとなっているが、実際のGain settingには、出力は12 bit(-2048から+2047)となっている。そのまま計算すれば、磁場の検出レンジをもっとも狭いもの(±130000 nT)にしたとき、12 bitでは、260000 nT/(212)=63.4765625 nTとなる。ただし、Gain settingの記述では、X,Y軸については1100 LSB/Gauss(=0.011 LSB/nT)、Z軸については980 LSB/Gauss(=0.0098 LSB/nT)ということなので、分解能はそれぞれ90.9 nT、102.04 nTになるようである。 サンプリング周波数のほうも、実際のアウトプットとしては、0.75 Hz-220 Hzの間の8段階でしか選択ができない。デフォルトでは15 Hzである。 配線
https://w.atwiki.jp/geomagneticfield/pages/13.html
レジスターマッピング LSM303DLHCのデータシートによると、レジスターのアドレスとその意味は次のようになっている。 加速度計の方はかなり沢山の設定項目(Type=rwのところ)があるが、磁力計の方は0x00, 0x01, 0x02の3つのレジスタを設定するだけのようである。 磁力計の設定 レジスタアドレス0x00 (CRA_REG_M) 最初の設定レジスタは、温度センサーによる測定の可否と磁場測定のサンプリングレートを決めるためのものである。 温度センサーを有効にして、サンプリングを15 Hzにするためには、 10010000 というビットを立てればいいので、0x90を書き込むことにする。 レジスタアドレス0x01 (CRB_REG_M) 次のアドレスは、磁場計測のレンジを決めるところで、大変重要なものである。 レンジを最も狭くして感度を上げたいので、 00100000 というビットをたてることにする。16進数では、0x20となる。 この場合、レンジは±130000 nTで、分解能は12 bit(±2048)であるが、実際にはX軸とY軸は、1100/1E5 LSB/nT, Z軸は、980/1E5 LSB/nTであるので、1 LSBあたり、大体100 nT程度になるようだ。(LSB=Least Significant Bit(?), 量子化単位) レジスタアドレス0x02 (MR_REG_M) 最後の設定項目は、観測実施モードについて。 連続して観測したいので、 00000000 というビットを立てる。16進数では、0x00となる。 レジスタへの書き込み じゃあ、上で決めた値をレジスタに書きもう。 % sudo i2cset -y 1 0x1e 0x00 0x90 % sudo i2cset -y 1 0x1e 0x01 0x20 % sudo i2cset -y 1 0x1e 0x02 0x00 何もメッセージは出てこないが、レジスタ値をダンプ(i2cdump)してみると、きちんとレジスタ値は書き変わっていた。 加速度計の設定 加速度計のほうはやたらと設定項目があるが、さしあたって最初の設定が必要そうなのは、0x20と0x23の2か所のようである。 レジスタアドレス0x20 (CTRL_REG1_A) このレジスタは、加速度測定のサンプリングレートと各軸の計測可否を決めるためのものである。 全ての軸の測定を可能にして、サンプリングを10 Hzにするためには、 00100111 とすればよい。すなわち、0x27を書き込むことになる。 レジスタアドレス0x23 (CTRL_REG4_A) このレジスタは、加速度測定のレンジを指定する。 一番レンジの狭い±2gとして、"High-resolution output mode"に切り替えたいので、 00001000 というビット、すなわち、0x08を書き込む。 センサーの感度については、この表には記載がないが、他のページにの情報によれば、順に1 mg/LSB, 2 mg/LSB, 4 mg/LSB, 12 mg/LSBとなっている。 ちなみに、"BLE"にあるBig/Littleエンディアンの設定は、0=Big Endian(LSB@lower address), 1=Little Endian(MSB@lower address)のどちらかを選ぶ。 レジスタへの書き込み 磁力計への書き込みと同様に、加速度計にも上で決めた値をレジスタに書む。 % sudo i2cset -y 1 0x19 0x20 0x27 % sudo i2cset -y 1 0x19 0x23 0x08 同じく何もメッセージは出てこないが、レジスタ値をダンプ(i2cdump)してみると、きちんとレジスタ値は書き変わっていた。
https://w.atwiki.jp/denkai/pages/23.html
https //docs.google.com/document/d/12G61jaFQBMRDYZrBTpuVRJGnpB9wb-aJs03aV1qMvDc/edit?usp=drivesdk 以上に更新します。 2018年モデルからの速度センサー付が3000円で改造できます。うまく行けば30kmまで最大出力
https://w.atwiki.jp/geomagneticfield/pages/14.html
磁力計の出力読み取り レジスタマップによれば、磁力計の出力は0x03-0x08の6つのレジスタ、温度計の出力は0x31-0x32の2つのレジスタに入るらしい。また、磁力計のデータが準備できたかどうかの情報がはいるレジスタ(0x09)もあるらしい。 レジスタアドレス0x03-0x08, 0x09 (OUT_X_H_M, OUT_X_L_M, OUT_Z_H_M, OUT_Z_L_M, OUT_Y_H_M, OUT_Y_L_M, SR_REG_M) まずは、磁力計の出力の説明。 2アドレスを構成する16ビットのうち、下位12ビットで測定値を表している。注意しないといけないのは、 (1) 12ビットは符号付2進数であること (2) アドレスの順に、X, Z, Y軸の計測値となっていること である。 次は、計測値有効・無効フラグの説明。 こちらは下位2ビットだけを見ることになる。0x01か0x03となっていれば新しいデータとみなしてよいのだろう。 レジスタアドレス0x31-0x32 (TEMP_OUT_H_M, TEMP_OUT_L_M) 温度も12ビットだが、上位から12ビット分を読まないといけない。磁力計のデータの格納の仕方と違うので注意が必要だ。ここには、温度計の分解能も記載されていて、8 LSB/degなので、0.125℃の分解能であることがわかる。 レジスタ値を読み出してみる レジスタ値を読み取るために、i2ctoolsでは、i2cgetというコマンドが用意されている。上記レジスタの値を読みだしてみる。 % sudo i2cget -y 1 0x1e 0x03 0x01 % sudo i2cget -y 1 0x1e 0x04 0x25 % sudo i2cget -y 1 0x1e 0x05 0xfe % sudo i2cget -y 1 0x1e 0x06 0x7f % sudo i2cget -y 1 0x1e 0x07 0xff % sudo i2cget -y 1 0x1e 0x08 0xf9 % sudo i2cget -y 1 0x1e 0x09 0x03 X軸の計測値は、0x0125なので、1*256+2*16+5=293である。 Z軸の計測値は、0xFE7Fである。符号付12ビット整数であれば、11ビットで最大の数(0x07FF)を超えると負になるので、この計測値は、14(=E)*256+7*16+15(=F)-4096=-385である。 Y軸の計測値は、0xFFF9である。10進数に直すと、15(=F)*256+15(=F)*16+9-4906=-7となった。 最後のレジスタ値は、0x03となっているので、データは新しく計測されたものと判断できる。 磁場の計測値を物理単位に直すと、 X軸 293/1100*1E5=26636 (nT) Y軸 -7/1100*1E5=-636 (nT) Z軸 -385/1100*1E5=-39286 (nT) と求まった。 次に温度の方を読んでみる。 % sudo i2cget -y 1 0x1e 0x31 0x03 % sudo i2cget -y 1 0x1e 0x32 0x80 計測値は0x0380で、上から12ビットを使うのだから、0*256+3*16+8=56となる。温度に直すには、8で割ればよいので、56/8=7℃。なんかおかしい。夏なんですけど。。。温度センサーはおまけみたいなものだから、使い物にならないのかもしれない。 加速度計の出力読み取り 加速度計の出力は0x28-0x2Dの6つのレジスタに入るらしい。 レジスタアドレス0x28-0x2D (OUT_X_L_A, OUT_X_H_A, OUT_Y_L_A, OUT_Y_h_A, OUT_Z_L_A, OUT_Z_H_A) 磁力計とは、軸の順番、上位・下位バイトの順番が異なるので混乱しそうだ。注意する必要がある。 2アドレスを構成する16ビットのうち、どの12ビットで測定値を表すかについての明確な記述がなく戸惑ったが、Z軸の出力値が1G近くになるようにビットを選ぶことで、上からの12ビットで測定値を表しているという推定ができる。磁力計のデータ格納方法とは異なるので、ここも注意する必要がある。(温度センサーと同じ格納の仕方ではあるが。) レジスタ値を読み出してみる 磁力計と同じように、i2cgetでレジスタ値を読み取ってみる。 % sudo i2cget -y 1 0x19 0x28 0xf0 % sudo i2cget -y 1 0x19 0x29 0xff % sudo i2cget -y 1 0x19 0x2a 0x40 % sudo i2cget -y 1 0x19 0x2b 0x02 % sudo i2cget -y 1 0x19 0x2c 0xc0 % sudo i2cget -y 1 0x19 0x2d 0x40 上位バイトと下位バイトが逆順であることと上位12ビットが計測値であることに注意して、 X軸の計測値は、0xFFF0なので、15*256+15*16+15-4096=-1である。 Y軸の計測値は、0x0240なので、0*256+2*16+4=36である。 Z軸の計測値は、0x40C0なので、4*256+0*16+12(=C)=1036である。 加速度の計測値を物理単位に直すと、1 mg/LSBであることを使って、 X軸 -1/1=-1 (mg)=-0.001 (g) Y軸 36/1=36 (mg)=0.036 (g) Z軸 1036/1=1036 (mg)=1.036 (g) と求まった。
https://w.atwiki.jp/badend119/pages/27.html
加速度センサ 加速度センサから得られる情報と、活用方法を調べる。 参考サイト http //ednjapan.com/edn/articles/1205/16/news110.html