如数据表所述,RPI_MCP3008是一个用于监听MCP3008 A/D转换器芯片的库。

mcp3008的Python项目详细描述


rpi_mcp3008是一个监听mcp3008 a/d转换器芯片的库 有一个RPI。这个库实现了示例通信协议 描述于 datasheet

通过rpi spi端口进行通信,使用 SpiDev

接线

连接下表中的SPI数据电缆。选择CE0或 CE1连接到CS。

rpi spi gpios

RPi GPIOMode
GPIO 07CE1#
GPIO 08CE0#
GPIO 09MISO
GPIO 10MOSI
GPIO 11SCLK

MCP3008引脚

PinDescriptionPinDescription
01CH009Vdd - Supply voltage (2.7V - 5.5V)
02CH110Vref - Reference voltage
03CH211AGND - Analog ground
04CH312CLK - SPI Clock (SCLK)
05CH413Dout - Data out (MISO)
06CH514Din - Data in (MOSI)
07CH615CS - Chip select (CE0# or CE1#)
08CH716DGND - Digital ground

请检查Adafruit guide 有关配线的详细信息,请参见MCP3008

用法

rpi-mcp3008使用with语句正确处理spi总线 清理。

importmcp3008withmcp3008.MCP3008()asadc:printadc.read([mcp3008.CH0])# prints raw data [CH0]

可以正常实例化对象,但必须 在终止程序之前调用close方法。

importmcp3008adc=mcp3008.MCP3008()printadc.read([mcp3008.CH0])# prints raw data [CH0]adc.close()

初始化参数是MCP3008(bus=0, device=0),其中: MCP3008(X, Y)将打开/dev/spidev-X.Y,与 spidev.SpiDev.open(X, Y)两个参数都是可选的,并且具有 默认值0

方法

目前有两种实现方法:

defread(self,modes,norm=False):'''
    Returns the raw value (0 ... 1024) of the reading.
    The modes argument is a list with the modes of operation to be read (e.g.
    [mcp3008.CH0,mcp3008.Df0]).
    norm is a normalization factor, usually Vref.
    '''
defread_all(self,norm=False):'''
    Returns a list with the readings of all the modes
    Data Order:
    [DF0, DF1, DF2, DF3, DF4, DF5, DF6, DF7,
     CH0, CH1, CH2, CH3, CH4, CH5, CH6, CH7]
    norm is a normalization factor, usually Vref.
    '''
  • modes参数必须是至少具有16种模式之一的列表 列出bellow
  • 参数norm是重新缩放原始值的规范化因子 数据,通常为vref

固定模式

您还可以用fixed mode声明类,这将使 实例可调用,并始终返回所列模式的值。 同样,在调用 实例。

importmcp3008withmcp3008.MCP3008.fixed([mcp3008.CH0,mcp3008.DF0])asadc:printadc()# prints raw data [CH0, DF0]printadc(5.2)# prints normalized data [CH0, DF0]

MCP3008操作模式

MCP3008有16种不同的操作模式:它可以监听 单独信道单端或处于伪差分模式 差异

Single EndedDifferential
CH0DF0 (CH0 = IN+; CH1 = IN-)
CH1DF0 (CH0 = IN-; CH1 = IN+)
CH2DF0 (CH2 = IN+; CH3 = IN-)
CH3DF0 (CH2 = IN-; CH3 = IN+)
CH4DF0 (CH4 = IN+; CH5 = IN-)
CH5DF0 (CH4 = IN-; CH5 = IN+)
CH6DF0 (CH6 = IN+; CH7 = IN-)
CH7DF0 (CH6 = IN-; CH7 = IN+)

调用时使用上表作为操作模式 MCP3008.read(modes)或设置MCP3008.fixed(modes)模式。 (例如MCP3008.read([mcp3008.CH0, mcp3008.DF1])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何复制二维字符串数组?   java Realworld参数优化   输入创建一个Java程序,读取。txt并标识三角形边长   java Apache HttpClient上传后文件无法与MultipartEntityBuilder上传一起使用   java如何从单独的类文件中随机选择两个枚举值   Java获取两个正则表达式之间所有字符串的最佳方法?   java如何将按钮链接到微调器?   java改造2.0:如何映射不同类型的对象   java如何检查Antlr3中的数字范围?   java使用JNDI查找EJB Bean   java构造函数字符串、字符串、int、int、Optional<>在spring boot中未定义   java如何使用jruby(使用jetty运行)创建servlet?   JavaFX:为什么在背景改变之前我必须按下按钮几次?   java可以为违反映射契约的映射生成重复的JSON对象属性名吗?   JavaJSOUP从网站获取某些属性   Eclipse:如何使java文件夹显示为树?   如何在Java中从Matcher获取多个正则表达式组?   构造函数中带有参数的lambda Java 8供应商   java是否可以在ExtJS 3.2中对日期进行自定义排序