Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ATENCION
Este documento está bajo licencia Creative Commons 4.0 internacional,
Reconocimiento-NoComercial-CompartirIgual, al descargar, abrir y/o leer
este documento está aceptando la licencia Creative Commons con sus
repectivas restricciones.
Material Código AG
1 Raspberry Pi - RASPBERRYPI-3-MODB+-1GB
1 Eliminador - T5454DV
1 Potenciometro 10k - IM120710014
1 Miniprotoboard - OKY0005
1 ADC MCP3008 o MCP3204 - MCP3008 o MCP3204
1 Led - Led
1 Resistencia de 220 Ohms - RC-220E/1/4
1 Sensor de humedad de tierra - IM121017001
1 LM35 - LM35DZ
- Jumpers - A00CABMF
Codigo (potenciometro):
import spidev
from time import sleep
import RPi.GPIO as GPIO
spi = spidev.SpiDev()
spi.open(0,0)
GPIO.setmode(GPIO.BOARD)
def analogRead(pin):
spi.max_speed_hz = 1350000
adc = spi.xfer2([1,(8+pin) << 4,0])
lec = ((adc[1]&3) << 8) + adc[2]
return lec
while True:
lectura = analogRead(0)
print(lectura)
sleep(0.1)
Tutorial Electrónica
Nueva Electrónica México
Por: Misael Saenz Flores
Correo: misa2pac@gmail.com
2
led = 11 GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led, GPIO.OUT) def analogRead(pin):
spi.max_speed_hz = 1350000
def analogRead(pin): adc = spi.xfer2([1,(8+pin) << 4,0])
spi.max_speed_hz = 1350000 lec = ((adc[1]&3) << 8) + adc[2]
adc = spi.xfer2([1,(8+pin) << 4,0]) return lec
lec = ((adc[1]&3) << 8) + adc[2]
return lec while True:
lectura = analogRead(0)
while True: temp = (3.3 * lectura * 100.0) / 1023.0
lectura = analogRead(0) print(temp)
if lectura > 850: sleep(0.1)
GPIO.output(led, 1)
else:
GPIO.output(led, 0)
print(lectura)
sleep(0.1)
Tutorial Electrónica
Nueva Electrónica México
Por: Misael Saenz Flores
Correo: misa2pac@gmail.com
3
Tutorial Electrónica
Nueva Electrónica México
Por: Misael Saenz Flores
Correo: misa2pac@gmail.com
4
Explicación:
Primero establecemos una velocidad máxima de bus para no tener problemas de “atasco”, esto lo hacemos con
max_speed_hz que es una función de la clase spidev y la establecemos a 1350000, después creamos una variable
adc y le damos el valor usando la función xfer2, esta función realizara la transacción SPI, ósea transferimos bytes,
y operamos haciendo un corrimiento con la operación “<<”, después creamos la variable lec y a esta le almacenaremos
los valores que estamos leyendo de nuestro sensor, simplemente hacemos las operaciones a nivel de bits, obteniendo
los elementos de la lista adc y al final regresamos lec.
Tutorial Electrónica
Nueva Electrónica México
Por: Misael Saenz Flores
Correo: misa2pac@gmail.com