忍者ブログ
[275]  [274]  [273]  [272]  [271]  [270]  [269]  [268]  [267]  [266]  [265
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

1.ADT7410の13bitと16bitの切り替え

 コンフィギュレーション・レジスタを1にする
 ADT7410のコンフィグレジスタは0X03

 上位1ビットが1なら16ビット 0なら13ビット

 i2c.write_byte_data(adt7410_addr,0x03,0x00) が13ビット
 i2c.write_byte_data(adt7410_addr,0x03,0x80) が16ビット

2.分解能が
 13ビットなら1/16
  if (data>4096):
         data = data - 8192
    data = data /16.0
 
   16ビットなら
  if (data>= 32768):     マイナスフラグが上位1ビットのため
       data= temp - 65536
    data = data/128.0

3.13ビットのデータソース

#i2c adt7410
import time
import smbus

#make new
i2c = smbus.SMBus(1)

#i2caddr
adt7410_addr = 0x48
register7410 = 0x00
#rejista03 16bit
i2c.write_byte_data(adt7410_addr,0x03,0x00)

while True:
     #rejisuta 0x00 0x01 2byte
 
 
     datas = i2c.read_i2c_block_data(adt7410_addr,register7410,2)
     data = datas[0] << 8
     data = data | datas[1]
     data = data >> 3
     if (data>4096):
         data = data - 8192
     data = data /16.0
     print(data )

     time.sleep(1)

4.16ビットの時のデータソース
#i2c adt7410
import time
import smbus

#make new
i2c = smbus.SMBus(1)

#i2caddr
adt7410_addr = 0x48

#rejista03 16bit
i2c.write_byte_data(adt7410_addr,0x03,0x80)

while True:
    #rejisuta 0x00 0x01 2byte
    t_data = i2c.read_i2c_block_data(adt7410_addr,0x00,2)
    temp = t_data[0] << 8
    temp = temp | t_data[1]

    if (temp >= 32768):
        temp = temp - 65536

    now_temp = temp /128.0

    print(now_temp)

    time.sleep(1)
   
温度であまり意味がないが、、、


拍手

PR
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新CM
[03/10 DORA]
最新TB
プロフィール
HN:
dorabu
性別:
非公開
バーコード
ブログ内検索
P R
Copyright © ドラブーのアンドロイドとIoTなブログ All rights reserved. / Template by 四季. / Material by てんせん.

忍者ブログ [PR]