Leer sensores digitales
Publicado en Septiembre de 2017En algún momento necesitaremos leer la salida de un sensor y actuar en consecuencia. Como ejemplo más sencillo podemos tratar la información como un valor digital, es decir, Valor SI - Valor NO (1 o 0). En este caso vamos a usar un fotoresistor, que es una resistencia dependiente de la luz (en inglés LDR). También conocida como fotocélula es una resistencia cuya resistencia disminuirá cuando se incremente la intensidad de la luz incidente. Al conectarla a una entrada digital podemos saber cuando hay luz y cuando no la hay. Para este ejemplo voy a usar la fotocelula más sencilla posible.
Que necesitas:
Necesitaremos tener instalada una librería que maneje GPIO y para este ejemplo yo he usado orangepi_PC_gpio_pyH3. Para instalarla, haz click aquí para ver como.
Una vez que esté instalada, apaga la placa y conecta al GPIO a través de unos cables o con una placa de pruebas.
Esta placa tiene tres pines:
- VCC (5v) al pin 2 del GPIO
- GND (tierra o masa) al pin 6 del GPIO
- OUT (señal) al pin 7 del GPIO
Ahora crea un fichero en, por ejemplo, /home/orangepi
con sudo nano sensorluz.py y escribe este código:
#!/usr/bin/env python # -*- coding: iso-8859-15 -*- # author : "javier pérez santos para orangepiweb.es" # credits : "javier pérez santos, orangepiweb.es" # copyright : "Copyright 2017, orangepiweb.es" """ ___ ____ ___ __ _ / _ \ _ __ __ _ _ __ __ _ ___| _ \(_) \ / /__| |__ ___ ___ | | | | '__/ _` | '_ \ / _` |/ _ \ |_) | |\ \ /\ / / _ \ '_ \ / _ \/ __| | |_| | | | (_| | | | | (_| | __/ __/| | \ V V / __/ |_) | __/\__ \ \___/|_| \__,_|_| |_|\__, |\___|_| |_| \_/\_/ \___|_.__(_)___||___/ |___/ Leer sensores digitales """ import os import sys from time import sleep from pyA20.gpio import gpio from pyA20.gpio import port sensor = port.PA6 gpio.init() gpio.setcfg(sensor, gpio.INPUT) try: print ("Pulsa CTRL+C para salir") while True: state = gpio.input(sensor) # Lee el estado del sensor print state # Muestra el estado por pantalla sleep (1) # Espera un segundo except KeyboardInterrupt: print ("Saliendo.")
Ejecútalo con sudo python sensorluz.py y obtendrás la lectura del sensor cada segundo. Puedes cambiar este tiempo con la línea sleep (1). Si hay luz, el valor será 1 y si no hay luz, será 0. Ten en cuenta que este sensor es lo más básico del mercado. Debido a su sencillez no se puede ajustar y el valor puede no coincidir con tus necesidades. Si necesitas más precisión existen unos sensores ajustables a través de una resistencia variable que podemos ajustar con un destornillador igual de económicos y tan fáciles de usar como estos.
Ahora puedes crear tu propio programa en el que en vez de imprimir el estado por pantalla ejecute algún comando más complejo, como puede ser activar el motor que recoje un toldo cuando ya no hay luz y lo despliega cuando si detecta luz.
Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.
Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.
No olvides añadir tu distribución y tu placa.
Todos los comentarios serán validados antes de su publicación.
Copyright © 2024 desde 2016. Todos los derechos reservados | Diseño JaviPSantos