- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基于以下链接:
https://forums.adafruit.com/viewtopic.php?f=19&t=83918&p=541562&hilit=TCA9548A#p541562
https://github.com/kizniche/Mycodo/issues/43#issuecomment-156718451
我创建了以下Ñ:
多路复用器.py
#!/usr/bin/python
# Change channel of TCA9548A
# Example: sudo ./multiplexer_channel.py 0
import smbus
import time
import sys
I2C_address = 0x77
I2C_bus_number = 1
I2C_ch_0 = 0b00000001
I2C_ch_1 = 0b00000010
I2C_ch_2 = 0b00000100
I2C_ch_3 = 0b00001000
I2C_ch_4 = 0b00010000
I2C_ch_5 = 0b00100000
I2C_ch_6 = 0b01000000
I2C_ch_7 = 0b10000000
def I2C_setup(i2c_channel_setup):
bus = smbus.SMBus(I2C_bus_number)
bus.write_byte(I2C_address,i2c_channel_setup)
time.sleep(0.1)
print "TCA9548A I2C channel status:", bin(bus.read_byte(I2C_address))
I2C_setup(int(sys.argv[1]))
from tentacle_pi.BMP180 import BMP180
import time
bmp = BMP180(0x70,"/dev/i2c-1")
for x in range(0,1005):
print "temperature: %s" % bmp.temperature()
print "pressure: %s" % bmp.pressure()
print "altitude: %s" % bmp.altitude()
print
time.sleep(2)
# coding=utf-8
import argparse
import smbus
import time
class TCA9548A(object):
def __init__(self, bus, address=0x70, ):
self.i2c_address = address
self.i2c_bus = bus
self.bus = smbus.SMBus(self.i2c_bus)
def setup(self, channel):
try:
self.bus.write_byte(self.i2c_address, channel)
return 1, "Success"
except Exception as msg:
return 0, "Fail: {}".format(msg)
def read(self):
time.sleep(0.1)
return self.bus.read_byte(self.i2c_address)
def menu():
parser = argparse.ArgumentParser(description='Select I2C address and channel of TCA9548A I2C multiplexer')
parser.add_argument('-a', '--address', metavar='ADDRESS', type=int,
help='I2C address of the multiplexer, only last two digits, (ex. enter "70" if 0x70)',
required=True)
parser.add_argument('-b', '--bus', metavar='BUS', type=int,
help='I2C bus of the multiplexer',
required=True)
group = parser.add_mutually_exclusive_group()
group.add_argument('-c', '--channel', metavar='CHANNEL', type=int,
help='Channel to be activated with the multiplexer')
group.add_argument('-r', '--read', action='store_true',
help='Only read multiplexer and return channel number')
args = parser.parse_args()
i2c_address = int(str(args.address), 16)
multiplexer = TCA9548A(args.bus, i2c_address)
if args.channel:
multiplexer.setup(args.channel)
read_response = multiplexer.read()
print("TCA9548A I2C channel status: {} (channel {})".format(bin(read_response), read_response))
if __name__ == "__main__":
menu()
sudo python index3py -a 70 -b 1
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 0
TCA9548A I2C channel status: 0b11111000 (channel 248)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.599998474
pressure: 40287
altitude: -31.4230690002
temperature: -52.5
pressure: 40183
altitude: -31.5887317657
temperature: -52.5
pressure: 40281
altitude: -37.2313270569
temperature: -52.5
pressure: 40284
altitude: -34.078414917
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 1
TCA9548A I2C channel status: 0b1 (channel 1)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 40166
altitude: -31.7548980713
temperature: -52.4000015259
pressure: 40163
altitude: -34.5762786865
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 2
TCA9548A I2C channel status: 0b0 (channel 0)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 28375
altitude: 1204.44226074
temperature: -52.4000015259
pressure: 28303
altitude: 1222.52453613
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 3
TCA9548A I2C channel status: 0b0 (channel 0)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 28304
altitude: 1205.19128418
temperature: -52.5
pressure: 28301
altitude: 1222.90002441
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 4
TCA9548A I2C channel status: 0b100 (channel 4)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 40136
altitude: -46.9332351685
temperature: -52.5
pressure: 40116
altitude: -47.5958938599
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 5
TCA9548A I2C channel status: 0b101 (channel 5)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 40185
altitude: -46.9332351685
temperature: -52.5
pressure: 40136
altitude: -47.0986480713
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 6
TCA9548A I2C channel status: 0b0 (channel 0)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 28365
altitude: 1216.15002441
temperature: -52.5
pressure: 28297
altitude: 1215.96289062
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index3.py -a 77 -b 1 -c 7
TCA9548A I2C channel status: 0b0 (channel 0)
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.p
python: can't open file 'index2.p': [Errno 2] No such file or directory
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ sudo python index2.py
temperature: -125.699996948
pressure: 28368
altitude: 1219.89953613
temperature: -52.5
pressure: 28283
altitude: 1219.71179199
temperature: -52.5
pressure: 28353
altitude: 1219.71179199
^CTraceback (most recent call last):
File "index2.py", line 11, in <module>
time.sleep(2)
KeyboardInterrupt
pi@pi1:~/Documents/NodeJSProjects/PythonTests $ ^C
最佳答案
我修改了您的原始示例,这对我有用:
我的 TCA9548A.py 如下:
#!/usr/bin/python
# intended for import to change channel of TCA9548A
# import then call I2C_setup(multiplexer_addr,multiplexer_channel)
import smbus
import time
import sys
channel_array=[0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b00100000,0b01000000,0b10000000]
def I2C_setup(multiplexer,i2c_channel_setup):
bus = smbus.SMBus(1)
bus.write_byte(multiplexer,channel_array[i2c_channel_setup])
time.sleep(0.01)
#uncomment to debug #print("TCA9548A I2C channel status:", bin(bus.read_byte(multiplexer)))
然后在同一个目录中我有一个文件
read_sensor.py 这利用了你的例子:
#!/usr/bin/python
import TCA9548A
# set specific multiplexer to a specific channel
# TCA9548A.I2C_setup( multiplexer_addr , multiplexer_channel )
TCA9548A.I2C_setup(0x70,5)
接下来,根据需要导入库并从传感器获取数据。我有多个 BMP280,它们都具有相同的 0x76 地址。因此,当我从 0x76 的 BMP280 传感器读取数据时,多路复用器只会选择一个 channel 并打开 I2C 线路。接下来,我可能会转到 TCA9548A.I2C_setup(0x70,6),然后在 0x76 处再次从 BMP280 读取,但我将从该多路复用器的 channel 6 上的下一个 BMP280 接收数据。
关于python - 如何使用python I2C TCA9548A从多路复用器读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41335921/
我遇到以下问题。我想读取一个包含数百万行和数百列的大型 csv。我想向下转换列的数据类型。我的方法是读取 csv,然后使用 pd.to_numeric() 对其进行向下转换。我不知道列数及其类型。在读
目前,我从 SQL server (2008) 数据库获取数据。 cyurrent的方法是使用DataTable,然后将其传递并使用。 if (parameters != null)
我有以下问题。我有一个巨大的 csv 文件,想用多处理加载它。对于一个包含 500000 行和 130 列不同数据类型的示例文件,Pandas 需要 19 秒。我试过 dask 因为我想多处理阅读。但
是否有关于用于序列化各种 MFC 数据结构的二进制格式的明确文档?我已经能够在十六进制编辑器中查看我自己的一些类,并使用 Java 的 ByteBuffer 类读取它们(使用自动字节顺序转换等)。 但
我正在使用 Selenium 进行测试,我们用 HTML 文件编写测试用例,并用它们制作测试套件,我们的要求是编写足够健壮的测试用例,以根据测试环境改变自身。 为此,我不希望在 HTML 脚本本身中包
我需要一个 JavaScript 代码来读取存储为 .txt 文件的字典(或者也可以保存为任何其他类型的文件。它也可以在线获得)并将其内容存储在一个变量中。我不能找到一种让 JavaScript 像
我正在尝试遍历包含 SSH 登录和其他日志的日志文本文件。 程序正在返回 SSH 登录的总数。 我的解决方案确实有效,但似乎有点慢(在 200mo 文件上大约需要 3.5 秒)。我想知道是否有任何方法
我正在将大量数据从一个电子表格复制到工作簿中的其他 160 个电子表格。目前,Excel (2013) 遇到错误,因为它没有足够的资源来完成操作。 我的目标是将工作表 4 中 V13:XI1150 范
我正在尝试读取一个有 1147 行的文本文件。下面的代码仅读取第 1050-1147 行。我的目标是读取整个文件并提取位于不同行的特定值以在脚本中使用。一个示例是包含“BlockList: 2”的行中
我正在为游戏编写解释器。用户将其移动输入解释器,程序执行该移动。 现在我想为每个决定实现一个时间限制。玩家不应该能够思考超过 30 秒来写一个移动并按下回车。 call_with_time_limit
以this file例如,我正在尝试读取 data.frame 中的数据。来自 the doc (pdf 文件,表 1),它遵循一些 fortran 约定。我尝试了以下但收效甚微: dir 0' 将
我正在使用 R 阅读 Outlook 附件。我的引用在这里:Download attachment from an outlook email using R 这是我的电子邮件的截图: 这每天都会发送
我不会从表格中读取行来将主题放在列表中 php脚本 $url_obj='http://'.$host.':8069/xmlrpc/object'; $sock=new xmlrpc_client($u
我有一个这样的 csv 文件: id,name,value 1,peter,5 2,peter\,paul,3 我如何读取此文件并告诉 R "\," 不表示新列,仅表示 ","。 我必须添加该文件
我正在尝试读取 ~/Library/Preferences/com.apple.mail.plist (在 Snow Leopard 上)以获取电子邮件地址和其他信息以进入“关于”对话框。我使用以下代
This question already has answers here: How do I use floating-point division in bash? (19个回答) 5个月前关闭
本练习的目标是读取输入文件并将其存储到表中,然后验证输入中的某些字段并输出任何错误记录。我需要读取并存储每个策略组,以便表中一次仅存储 5 条记录,而不是整个文件。 所以我需要读取一个包含 5 条记录
据我了解,LWT 插入始终以 SERIAL 一致性级别完成。如果为 true,这是否意味着读取作为 LWT 插入的行可以安全地以 ANY 的一致性级别读取? 换句话说,我假设 LWT 插入是完全一致的
我看到很多很多通过java脚本读取cookie的函数,但我只想在变量中使用它一次,我是JS新手。 这是我的代码 var TheNumber = (Math.random() + '') * 10000
我正在使用 asp.net 和 C#。我在服务器上部署了一个应用程序[已发布],现在我想查看该网站的代码,据我所知,我可以阅读程序集来查看代码。 请告诉我如何实现它。 提前致谢。 最佳答案 您可以使用
我是一名优秀的程序员,十分优秀!