Difference between revisions of "RPI ADC base shield 教程 中文版"
(Created page with "教你如何在raspberry pi上使用RPi_Shield的ADC 首先介绍下RPi_Shield上使用的ADC芯片型号是:MCP3004(10位精度,4通道,SPI通讯),下面教你如...") |
(No difference)
|
Latest revision as of 16:24, 29 July 2013
教你如何在raspberry pi上使用RPi_Shield的ADC 首先介绍下RPi_Shield上使用的ADC芯片型号是:MCP3004(10位精度,4通道,SPI通讯),下面教你如何使用(python)。 因为我们使用了spi通讯、所以我们需要启动spi内核模块, 先编辑内核模块的黑名单文件,使能spi :
sudo vi /etc/modprobe.d/raspi-blacklist.conf
修改为: #blacklist spi-bcm2708 然后输入指令 lsmod 你可以看到如下内容: Module Size Used by spi_bcm2708 4421 0 接下来安装python-pip ( pip是一个可以替代easy_install的安装和管python软件包的工具 ) : sudo apt-get install python-imaging python-imaging-tk python-pip python-dev git 利用pip安装spidev: sudo pip install spidev 利用pip安装WiringPi ( WiringPi是专门为树莓派打造的类似于arduino下的wiring驱动库,安装好这个库后无论是用c、shell还是python都可以直接调用函数配置和控制GPIO功能): sudo pip install wiringpi
到这里前期的工作已经完成,下面是MCP3004的python驱动代码:
Import spidev
Import time
spi = spidev.SpiDev() spi.open(0,0)
def readadc(adcnum):
- read SPI data from MCP3004 chip, 4 possible adc's (0 thru 3)
ifadcnum >3oradcnum <0: return-1 r = spi.xfer2([1,8+adcnum <<4,0]) adcout = ((r[1] &3) <<8)+r[2]
Returnadcout
whileTrue:
value=readadc(0)
volts=(value*3.3)/1024
print("%4d/1023 => %5.3f V" % (value, volts)) time.sleep(0.5)
保存为linker_adc.py文件,进入到相关的目录下运行: Python ./linker_adc.py 运行后会在终端显示如下信息: