Como acceder a GPIO a través del sistema de archivos
Publicado en Julio de 2018Como acceder a GPIO con Armbian en OrangePi a través del sistema de archivos, habilitando y deshabilitando los pines, es decir, poniendo a 1 o a 0, a través de la línea de comandos o vía Shell Scripts.
Que necesitas:
Ya hemos explicado como acceder a través de la numeración BCM en este artículo, pero ahora vamos a explicar otra manera. Podemos acceder a los pines GPIO a través del sistema de archivos sysfs
que es un sistema de archivos virtual
que viene con el kernel para que las apicaciones puedan acceder a información sobre el hardware y los drivers. Diremos que en /sys encontramos información variada sobre dispositivos, y entre esos datos podemos ver el estado de los mismos (en funcionamiento o no), el fabricante y modelo, y el bus al que están conectados. Para habilitar un pin específico, debemos exportar a /sys/class/gpio/export. Para el pin PA1 el comando sería:
echo 1 > sys/class/gpio/export.
Antes de seguir. Si pruebas esto, seguramente te dará un error de permiso denegado. Esto sólo funciona como superusuario, así que, si no accedes como root
(cosa que no deberías hacer por costumbre...). puedes ejecutar el comando su para que funcione.
El número de pin se calcula con la siguiente fórmula:
(posición la letra en el alfabeto - 1) * 32 + número del nombre de pin
En el caso de PA1
'A' es la primera letra, así que valor 1, menos 1 da como resultado 0, que multiplicado por 32 da 0, más 1 (de PA1), igual a 1:
(1 - 1) * 32 + 1
En el caso de PG7
, que es el pin 40 del header, 'G' es la séptima letra, así que valor es 7, menos 1 da como resultado 6, que multiplicado por 32 da 192, más 7, igual a PIN 199:
(7 - 1) * 32 + 7
Así que para habilitarlo:
echo 199 > sys/class/gpio/exportFunciona con y sin comillas, por limpieza, yo las pongo.
Ahora para activarlo y desactivarlo juega con direction (in / out) y value (0 / 1):
echo "199" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio199/direction echo "1" > /sys/class/gpio/gpio199/value
Para que deje de estar activo:
echo "199" > /sys/class/gpio/unexport
Fuente: https://linux-sunxi.org/GPIO
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