#!/usr/bin/python # -*- coding: utf-8 -*- # Lecture de valeurs analogiques par un MCP3008 branché au Raspberry Pi # Un potentiomètre est branché au canal 0 du MCP3008, un autre est branché # au canal 1. # http://electroniqueamateur.blogspot.com/2014/03/lecture-de-capteurs-analogiques-sur-le.html import spidev import time # Ouverture du bus SPI spi = spidev.SpiDev() spi.open(0,0) # car j'utilise la pin CE0: serait spi.open(0,1) si j'utilisais la pin CE1 spi.max_speed_hz=1000000 # maintenant nécessaire pour que ça fonctionne # Fonction qui lit l'information en provenance du MCP3008 # L'argument channel est le numéro de canal du MCP3008: entier de 0 à 7 def ReadChannel(channel): adc = spi.xfer2([1,(8+channel)<<4,0]) data = ((adc[1]&3) << 8) + adc[2] return data while True: # Lecture du premier capteur, branché au canal 0 du MCP3008 valeur1 = ReadChannel(0) # Lecture du deuxième capteur, branché au canal 1 du MCP3008 valeur2 = ReadChannel(1) # Affichage des résulats à l'écran print( "Valeur 1: " + str( valeur1 ) +", Valeur 2: " + str( valeur2) ) # Pause syndicale: on attend une seconde avant la prochaine prise de mesure. time.sleep(1)