1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# test_CAN_2.py
#
#
# source devellopez.com Raspberry et le port GPIO par Alexandre Galode
# et https://scruss.com/blog/2013/02/02/simple-adc-with-the-raspberry-pi/
# les essais ont été faits avec une carte Custard pi2
# https://www.sf-innovations.co.uk/product-page/custard-pi-2
import spidev
import time
def lire_analog(puce_spi , entree_analog ):#entrée_analog = cho :0 ou ch1 :1
liaison = spidev.SpiDev(0, puce_spi)
liaison.max_speed_hz = 300000 # en Hertz
# Initialisation des parametres de lecture
# (cf datasheet pour les curieux) mcp3202
if entree_analog == 0:
value = 160 # 128
else: # pour fonctionner en différentiel
value = 224 # 160
to_send = [1,value, 0]
# Lecture
rd_octets = liaison.xfer2(to_send)
# La reponse arrive sur deux octets
msb = rd_octets[1]
lsb = rd_octets[2]
value = ((msb & 15) << 8) | lsb + lsb
# calcul = 2* (value * 3.3) / 4096
calcul = (value * 3.3) / 4096
return calcul
while True:
entree_analog = 0 # pour lire en ch0 pour lire en ch1
puce_spi = 0
calcul = lire_analog(puce_spi , entree_analog )
print ("{:2.3f}". format(calcul))
time.sleep(1) |