Está en la página 1de 5

!

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.

En consecuencia, si viola y/o infringe la licencia Creative Commons se


recurrirá a la justicia ordinaria.

Cualquier modificación que desee hacerle al proyecto presentado en el


documento, tiene que ponerse en contacto con el autor del mismo, el
decidirá si le da el permiso o no de hacer la modificación.

Esta licencia (BY-NC-ND) permite copiar y distribuir libremente la obra


pero obliga a atribuir la autoría y prohíbe la creación de obras derivadas
(modificación) y el uso comercial.
1

Sensores En esta parte del curso se enseña el uso de sensores


Analógicos que nos mandan una señal entre rangos de
0 a 5 voltios dependiendo de la lógica que estén usando,

Analógicos como se explica Raspberry Pi no tiene un ADC, así que


usamos electrónica externa en este caso el MCP3204 y
gracias a esto podremos hacer lecturas de diferentes tipos.

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

Sensores En esta parte del curso se enseña el uso de sensores


Analógicos que nos mandan una señal entre rangos de
0 a 5 voltios dependiendo de la lógica que estén usando,

Analógicos como se explica Raspberry Pi no tiene un ADC, así que


usamos electrónica externa en este caso el MCP3204 y
gracias a esto podremos hacer lecturas de diferentes tipos.

Codigo (sensor de humedad): Codigo (sensor de temperatura):

import spidev import spidev


from time import sleep from time import sleep
import RPi.GPIO as GPIO import RPi.GPIO as GPIO
spi = spidev.SpiDev() spi = spidev.SpiDev()
spi.open(0,0) spi.open(0,0)

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

Sensores En esta parte del curso se enseña el uso de sensores


Analógicos que nos mandan una señal entre rangos de
0 a 5 voltios dependiendo de la lógica que estén usando,

Analógicos como se explica Raspberry Pi no tiene un ADC, así que


usamos electrónica externa en este caso el MCP3204 y
gracias a esto podremos hacer lecturas de diferentes tipos.

Diagrama (esquemático): MCP3204

Diagrama (esquemático): MCP3204

Tutorial Electrónica
Nueva Electrónica México
Por: Misael Saenz Flores
Correo: misa2pac@gmail.com
4

Sensores En esta parte del curso se enseña el uso de sensores


Analógicos que nos mandan una señal entre rangos de
0 a 5 voltios dependiendo de la lógica que estén usando,

Analógicos como se explica Raspberry Pi no tiene un ADC, así que


usamos electrónica externa en este caso el MCP3204 y
gracias a esto podremos hacer lecturas de diferentes tipos.

Diagrama (esquemático): MCP3204

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

También podría gustarte