Esempio n. 1
0
class PT100(Sensor):
    def __init__(self):
        self.val = None
        self.tempList = []
        self.spi = SPI(0, 0)
        self.spi.msh = 1000000
        GPIO.setup(CS_PIN, GPIO.OUT)
        GPIO.output(CS_PIN, GPIO.HIGH)
        self.inter = Interpolate(x, y)

    def spi_read(self):
        GPIO.output(CS_PIN, GPIO.LOW)
        self.spi.xfer([REG_CONF, CNF_ONESHOT])
        GPIO.output(CS_PIN, GPIO.HIGH)
        time.sleep(0.1)

        GPIO.output(CS_PIN, GPIO.LOW)
        self.spi.xfer([REG_LSB])
        lsb = self.spi.readbytes(1)
        GPIO.output(CS_PIN, GPIO.HIGH)

        GPIO.output(CS_PIN, GPIO.LOW)
        self.spi.xfer([REG_MSB])
        msb = self.spi.readbytes(1)
        GPIO.output(CS_PIN, GPIO.HIGH)

        err = (False, True)[lsb[0] & 1]

        adc = (msb[0] << 8 | lsb[0]) >> 1
        return (err, adc)

    def update(self):
        value = 0
        err = False
        for i in range(10):
            err, adc = self.spi_read()
            if err:
                break
            value = value + adc
        if err:
            #self.val=None
            return
        value = value / 10.

        res = (value / 2**15 * 400)

        self.tempList.append(self.inter(res))
        if len(self.tempList) > 5:
            del self.tempList[0]
        tSum = 0
        for t in self.tempList:
            tSum = tSum + t
        self.val = tSum / len(self.tempList)
Esempio n. 2
0
#import Adafruit_BBIO.SPI as SPI
from Adafruit_BBIO.SPI import SPI

spi = SPI(0, 0)
print(spi.xfer([0x01, 0x00]))
print(spi.xfer([0x02, 0xFF]))
Esempio n. 3
0
CNF_ONESHOT = 0b10100011

CNF_IDLE = 0b00000011


if __name__ == '__main__':
    
    spi = SPI(0, 0)
    spi.msh=1000000
    GPIO.setup(CS_PIN,GPIO.OUT)
    GPIO.output(CS_PIN,GPIO.HIGH)
    inter=Interpolate(x,y)
    while True:
        
        GPIO.output(CS_PIN,GPIO.LOW)
        spi.xfer([REG_CONF,CNF_ONESHOT])
        GPIO.output(CS_PIN,GPIO.HIGH)
        time.sleep(0.1)
        
        GPIO.output(CS_PIN,GPIO.LOW)
        spi.xfer([0x02])
        lsb=spi.readbytes(1)
        GPIO.output(CS_PIN,GPIO.HIGH)
        
        GPIO.output(CS_PIN,GPIO.LOW)
        spi.xfer([0x01])
        msb=spi.readbytes(1)
        GPIO.output(CS_PIN,GPIO.HIGH)
        
        
        GPIO.output(CS_PIN,GPIO.LOW)
Esempio n. 4
0
from Adafruit_BBIO.SPI import SPI
import struct
import time

spi = SPI(0,0)
spi.mode = 1
spi.msh = 300000
spi.xfer([0b00011000, 0x02])


def decode_sent_command(ser_cmd):
    cmd_bits = (ser_cmd & (((1<<6) - 1)<<10))>>10
    data_bits = ser_cmd & ((1<<10)-1)
    return bin(cmd_bits)[2:], data_bits


def send_cmd(cmd,data):
    ser_cmd = (cmd << 10) | (data & ((1<<10)-1))
    w0 = ser_cmd >> 8
    w1 = ser_cmd & ((1<<8)-1)
    return [w0, w1]

 # write to RDAC
spi.xfer(list(struct.unpack('BB', struct.pack('>H', 1 << 10 | 0))))

 # read RDAC
spi.xfer(list(struct.unpack('BB', struct.pack('>H', 0b10 << 10 | 0))))

 # read Control register
spi.xfer(list(struct.unpack('BB', struct.pack('>H', 0b111 << 10 | 0))))
spi.readbytes(2)
Esempio n. 5
0
from Adafruit_BBIO.SPI import SPI 
import Adafruit_BBIO.GPIO as GPIO

spi = SPI(1,0)

#Send something
print(spi.xfer([0x41]))
#print(spi.xfer2([32, 11, 110, 22, 220]))
#print(spi.xfer2([0x41]))
#print(spi.xfer([32, 11, 110, 22, 220]))

spi.close()
#Only need to execute one of the following lines:
#spi = SPI(bus, device) #/dev/spidev<bus>.<device>
#spi = SPI(0,0)	#/dev/spidev1.0
#spi = SPI(0,1)	#/dev/spidev1.1
#spi = SPI(1,0)	#/dev/spidev2.0
#spi = SPI(1,1)	#/dev/spidev2.1