Firtec

MCP3201 con Python y Raspberry PI

Este conversor de 12 bits es ideal para dotar a Raspberry con la funcionalidad de poder hacer mediciones en el mundo físico y pasarlas al sistema digital.
Para su funcionamiento simplemente hemos pasado las rutinas de C a Python logrando el mismo nivel de precisión y estabilidad que en los códigos originales de C.
El conversor es leído 16 veces para luego promediar las mediciones y mostrarlas en una terminal. Si se usara un conversor con mas canales solo hay que cambiar el canal antes de llamar al método Conversor().

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#******************** FUNCIÓN QUE LEE EL CONVERSOR *************************
def Conversor():
    M0 =0
    muestras =0
    while muestras <= 15:
        adc = spi.xfer2([0, 0])
        hi = (adc[0] & 0x1F);
        low = (adc[1] & 0xFe);
        dato = (hi << 8) | low;
        M0 += dato
        muestras += 1
 
    dato = M0 / 16
    Va = (long) (dato) * 3.3 / 8192.0;
    print "Voltios:% .3f" % Va
    
#**************************************************************************

 

Para la configuración inicial del bus SPI y su comunicación con el conversor se han importado los correspondientes módulos para una correcta comunicación a nivel de hardware.

 

1
2
3
import spidev
spi = spidev.SpiDev()
spi.open(0, 0) 

 

Instalar los controladores para el bus SPI en Raspberry lo podemos resumir en una serie de pasos simples que ejecutamos en la consola RaspBian.

 

1) sudo apt-get install python-dev
2) wget https://github.com/Gadgetoid/py-spidev/archive/master.zip
3) unzip master.zip
4) cd py-spidev-master
5) sudo python setup.py install

 

También podríamos adecuar el script para ver el voltaje en una pantalla LCD.

 

 

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.