Parpadeo de led con raspberry

Sección General del foro
Responder
Avatar de Usuario
boyrok
Pi Newbie
Pi Newbie
Mensajes: 5
Registrado: 04 Sep 2017, 13:34
Agradecido: 0
Agradecimiento recibido: 0

pues hoy he trasteando con los leds pero se me ha quedado una duda en el tema eléctrico y python con los puertos GPIO.

El código empleado es este:

Código: Seleccionar todo

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time

LedPin = 11    # pin11

def setup():
	GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
	GPIO.setup(LedPin, GPIO.OUT)   # Set LedPin's mode is output
	GPIO.output(LedPin, GPIO.HIGH) # Set LedPin high(+3.3V) to off led

def loop():
	while True:
		print '...led on'
		GPIO.output(LedPin, GPIO.LOW)  # led on
		time.sleep(0.5)
		print 'led off...'
		GPIO.output(LedPin, GPIO.HIGH) # led off
		time.sleep(0.5)

def destroy():
	GPIO.output(LedPin, GPIO.HIGH)     # led off
	GPIO.cleanup()                     # Release resource

if __name__ == '__main__':     # Program start from here
	setup()
	try:
		loop()
	except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.
		destroy()
Este primer ejemplo lo tengo claro, el led siempre esta encendido. Dirección de la corriente: 3v3->220ohm->led->tierra
Imagen

Segundo ejemplo necesario para poder hacer parpadear al led, aqui lo que entiendo es que cuando el GP17 este en LOW el led estará apagado y en HIGH estará encendido
Imagen

El tercero ejemplo y el que tengo montado actualmente y no tengo claro como funciona el tema eléctrico, porque la alimentación la proporciona el 3,3v pero el que la hacer parpadear es el GPIO. No entiendo porque cuando el pin 11 esta en LOW el LED esta encendido, ni tampoco que este configurado en OUT. ¿Al estar en LOW deja pasar la corriente del 3,3v?¿En HIGH pasarían los dos 3,3, se bloquea el led? Ando un poco perdido en el tema electrónico...
ImagenImagen
Avatar de Usuario
rbcheca
Pi Alpha
Pi Alpha
Mensajes: 18
Registrado: 10 Sep 2016, 20:11
Agradecido: 0
Agradecimiento recibido: 0

Si te sirve de algo, yo lo hago así:
import RPi.GPIO as GPIO
from time import sleep

GPIO.setwarnings(False) # Desactivamos la alerta de pin en uso
GPIO.setmode(GPIO.BCM) # Usamos la numeración BCM de GPIO
GPIO.setup(23, GPIO.OUT) # GPIO 23 como salida

GPIO.output(23, True) # Enciende el led
sleep(1) # Espera 1 segundo
GPIO.output(23, False) # Apaga el led
O con la librería gpiozero mucho más sencillo:
from gpiozero import LED
from time import sleep

led = LED(23)

led.on()
sleep(1)
led.off()
sleep(1)

https://gpiozero.readthedocs.io/en/stable/
Responder