¿Nos ayudas a pagar el Hosting?

Compartir en facebook Compartir en twitter Compartir en linkedin

Como acceder a GPIO a través del sistema de archivos

Publicado en Julio de 2018

Como 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/export
Funciona con y sin comillas, por limpieza, yo las pongo.
Orange Pi 2 GPIO Pinout H3

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.

Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2024 desde 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información