温度传感器/w Raspberry Pi 3

Temperature sensor /w Raspberry Pi 3

我正在尝试解决温度 sensor.The 问题 is:I 连接传感器(VCC 为 5v,GND 为地,OUT 为高级使用(我猜是用于传感器)。现在的问题是,我制作了 python 文件让它工作,但它显示的不是实际温度和电压,而是连续的 -50,即使我试图加热他仍然 -50.This 是python 代码:

import spidev
import time
spi = spidev.SpiDev()
spi.open(0,0)

def readadc(adcnum):
    if ((adcnum > 7) or (adcnum < 0)):
        return -1
    r = spi.xfer2([1,(8+adcnum)<<4,0])
    adcout = ((r[1]&3) << 8) + r[2]
    return adcout

while True:
    for adcInput in range(0,8):
        value = readadc(adcInput)
        voltage = value * 3.3
        voltage /= 1024.0
        tempCelsius = (voltage-0.5)*100
        print "---------------------------"
        print "ADC(", adcInput,")= ", value
        print "---------------------------"
        print "Voltage: ", voltage
        print "---------------------------"
        print "Temp: ", tempCelsius
    time.sleep(1)

现在的问题是,什么可能导致这个问题;传感器或代码的设置?我输入了#coding UTF-8,但仍然 -50.I 是编码方面的新手,我真的找不到如何修复它。

P.S。 : 我正在使用 Raspberry Pi 3 2015

您说您将 OUT 连接到引脚 28。正如我在您的代码中看到的,您使用的是与 SPI 接口的 ADC。 SPI 是同步的,您只需连接一个 OUT 数字引脚:一个时钟引脚未命中。

你们有这样的shield(带SPI接口的ADC)吗?必须让您的覆盆子读取一些模拟值(覆盆子上没有 adc)。

其实raspberry pi中的模拟输入是无法读取的,需要借助电子线路读取信息。 例如,MCP3008 是一款低成本的 8 通道 10 位模数转换器。 https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/overview

您正在尝试从 Pi 读取模拟信号 - 正如另一个用途所说:没有 ADC 这是不可能的。我建议使用 Arduino 板并通过串行端口从 Arduino 读取值。 Arduino 有一个庞大的模拟信号处理数据库,所以我总是首先推荐它。我写了一篇关于如何做到这一点的博客文章,请查看(如果您有兴趣):

Datalogging with Arduino and pySerial on a Raspberry Pi