在树莓派上面使用 MCP3424 18位AD转换模块
前段时间在DFRobot的用户群里面有个用户用到了这个模块:他想要一个中文的教程, 在LZ的努力下, 终于跑通了.
1. 安装最新的树莓派镜像, 可以参考这个帖子:
2. 然后进行连线的工作 (MCP3424上面的编码器全部拨到ON的一侧)
[*]MCP3424 GND >> 树莓派 Ground
[*]MCP3424 +5V >> 树莓派 DC Power 5V
[*]MCP3424 SCL >> 树莓派 GPIO03(SCL1, I2C)
[*]MCP3424 SDA >> 树莓派 GPIO02(SDA1, I2C)
[*]MCP3424 C*+ 和 C*- 接上对应需要测电压的两端.
3. 首先要启用I2C接口功能,
[*]打开Terminal.
[*]键入sudo raspi-config
[*]用上下键选择 5 Interfacing Options , 按回车进入.
[*]选择 5 I2C , 按回车确认.(需要重启)
4. 安装Python依赖库(树莓派需要联网)
[*]更新包sudo apt-get update
[*]安装包sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev
[*]安装Python包(最新的0.3.4会出现依赖问题, 这里使用了0.3.3版)pip install MCP342x==0.3.3
5. 运行下面的Python脚本就可以了:#!/usr/bin/env python
import glob
import logging
import smbus
from MCP342x import MCP342x
import numpy as np
__author__ = 'Steve Marple'
__version__ = '0.3.3'
__license__ = 'MIT'
def get_smbus():
candidates = []
prefix = '/dev/i2c-'
for bus in glob.glob(prefix + '*'):
try:
n = int(bus.replace(prefix, ''))
candidates.append(n)
except:
pass
if len(candidates) == 1:
return smbus.SMBus(candidates)
elif len(candidates) == 0:
raise Exception("Could not find an I2C bus")
else:
raise Exception("Multiple I2C busses found")
logging.basicConfig(level='DEBUG')
logger = logging.getLogger(__name__)
bus = get_smbus()
# Create objects for each signal to be sampled
addr68_ch0 = MCP342x(bus, 0x68, channel=0, resolution=18)
addr68_ch1 = MCP342x(bus, 0x68, channel=1, resolution=18)
addr68_ch2 = MCP342x(bus, 0x68, channel=2, resolution=18)
addr68_ch3 = MCP342x(bus, 0x68, channel=3, resolution=16)
# Create a list of all the objects. They will be sampled in this
# order, unless any later objects can be sampled can be moved earlier
# for simultaneous sampling.
adcs =
r = MCP342x.convert_and_read_many(adcs, samples=2)
print('return values: ')
print(r)
# , scale_factor=2.448579823702253
addr68_ch0.convert()
print(addr68_ch3.convert_and_read())
玩得开心 :)
不错,支持一下 你好,打扰了。
我参照你的教程,执行到第4步的pip install MCP342x处有问题了如下图
请问这怎么解决?
是不是安装这个之前要安装驱动,我看了网站MCP3424购买页面下面有个树莓派驱动安装,难道是要先安装驱动?
打扰到你十分抱歉,项目急需望能回复。
{:5_138:}
Kanekiyi 发表于 2018-4-11 16:27
你好,打扰了。
我参照你的教程,执行到第4步的pip install MCP342x处有问题了如下图
请问 ...
不需要手动安装驱动.
这是因为最新版的MCP342x库安装时出现了依赖问题.
可以回滚到0.3.3版, 运行下面的代码安装
pip install MCP342x==0.3.3 这个模块能接入电压和电流吗?输入量最大是多少? 学习了 期待学习更多案例 正好学到这里,很及时的帖子 Angelo 发表于 2017-9-8 15:04
前段时间在DFRobot的用户群里面有个用户用到了这个模块:
他想要一个中文的教程, 在LZ的努力下, 终于跑通了. ...
您好,我是用您的程序,发现有很多地方未被定义是什么情况呢?
页:
[1]