¿Cómo puedo usar los pines GPIO como salidas digitales?

28

He leído que la Raspberry Pi tiene varios pines de entrada y salida.

  • ¿Cómo puedo cambiarlos? (¿de Python?)
  • ¿Qué lógica de voltaje?
  • ¿Necesito resistencias pull-up o pull-down?
  • ¿Necesito cambiar los pines de entradas a salidas?
  • ¿Qué pines están disponibles?
Alex L
fuente
Su segunda pregunta no está clara
Sohan Arafat

Respuestas:

16

Los pines GPIO son de 3.3 V, y la corriente máxima es de 16 mA. Eso significa que no podrá alimentar casi nada directamente. Es por eso que necesita al menos usar un interruptor de transistor, si no un circuito de protección más avanzado. Puede leer más sobre ellos en RPi Tutorial EGHS: Circuitos de protección GPIO .

Una guía general es RPi periféricos de bajo nivel .

Gil
fuente
3
¿Podría por favor ampliar su respuesta? Me gustaría ver todas las preguntas respondidas, y la información en los enlaces proporcionados resumidos. Por el momento la información sobre RTC es incorrecta (RTC es irrelevante)
Alex L
11

Estas instrucciones no son específicas de Python, pero pueden ayudarlo a comenzar a experimentar con GPIO. /raspberrypi//a/350/668 tiene información sobre una biblioteca y uso específico para Python.

Cuando ha arrancado su Raspberry Pi usando la distribución de Debian recomendada, GPIO está deshabilitado. Tienes que habilitar cada pin individualmente.

Si lo está haciendo a través de / sys , encontrará interesantes "Paths in Sysfs" (busque en https://www.kernel.org/doc/Documentation/gpio/sysfs.txt ). En particular, habilitaría un pin "exportándolo". Cualquier comando a continuación asume que se está ejecutando como privilegios de root (sudo o no) o que ha cambiado los permisos / propiedad de los archivos virtuales que se están modificando.

echo 4 > /sys/class/gpio/export

Esto habilita el pin GPIO # 4 que luego hace que / sys / class / gpio / gpio4 exista, que contiene varios archivos virtuales. Esos archivos incluyen "dirección" que define si se trata de un pin de entrada o salida, "valor" que es de solo lectura para entrada o de escritura para salida y contiene el valor actual, y otros.

echo out > /sys/class/gpio/gpio4/direction # set it as an output pin
echo 1 > /sys/class/gpio/gpio4/value # set the value to ON
echo 0 > /sys/class/gpio/gpio4/value # set the value to OFF
echo in > /sys/class/gpio/gpio4/direction # set it as input
cat /sys/class/gpio/gpio4/value # get the value
echo 4 > /sys/class/gpio/unexport # disables pin 4 and removes the gpio4 directory

Por supuesto, probablemente prefiera usar alguna biblioteca preexistente para hacer GPIO suministrado o compatible con el idioma de su elección. Pero si quiere algo simple, puede simplemente interactuar directamente con sysfs para hacer GPIO muy básico.

Emmaly Wilson
fuente
0

Importe la biblioteca de Python y podrá controlar fácilmente los pines. Hay muchos tutoriales en línea. Necesita e ide con los soportes de Python y el conocimiento básico sobre la programación de Python.

Los pines GPIO están disponibles para entradas y salidas.

Sohan Arafat
fuente