User Tools

Site Tools


gpio_led_control

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gpio_led_control [2016/08/09 17:49] walkeradmingpio_led_control [2023/03/09 22:35] (current) – external edit 127.0.0.1
Line 8: Line 8:
 \\  \\ 
 \\  \\ 
-**Please be aware, the GPIO pins are 3.3v Logic, and are restricted to 16mA**+**Please be aware, the GPIO pins are 3.3v Logic, and are restricted to 16mA - exceeding 16 mA will damage your Pi**
 \\  \\ 
 \\  \\ 
Line 20: Line 20:
 \\  \\ 
 \\  \\ 
 +When the Pin goes high (under our software control) it will provide 3.3v, and thus the LED will light (famous last words)
 +\\ 
 +\\ 
 +If you are using your Raspberry Pi via SSH or a Remote Desktop session, you need to enable remote access of the GPIO Pins, instructions for this are [[enable_remote_access_to_gpio_pins|here]]:
 +\\ 
 +\\ 
 +Once you have connected the circuit, we can create the Python programme, in this example we will be doing it from the command line using the editor nano:
 +\\ 
 +    sudo nano LED.py (starts the nano editor with a new file called LED.py)
 +\\ 
 +Now enter this code: (you can copy and paste by the way)
 +\\ 
 +    #import modules
 +    import RPi.GPIO as GPIO    # This imports the GPIO libarary that allows the use of the GPIO pins,
 +    import time                # This imports the time libarary (for delays among other things)
 +                               # These libraries are built in to Raspbian.
 +    
 +    
 +    GPIO.setmode (GPIO.BOARD)  # This sets the GPIO pin numbering. Our LED is connected to Pin 12,
 +                               # so we can reference it by using BOARD as pin 12. However there is
 +                               # another option (BCM) where we can reference a pin by it's name, pin
 +                               # 12 is called GPIO18 (a reference to its place on the chip).
 +    
 +    GPIO.setup(12, GPIO.OUT)   # Sets the GPIO pin as output. (as opposed to input, which would
 +                               # read in a voltage (but only in terms of a 0 or a 1))
 +    
 +    GPIO.output(12, 0)         # sets the GPIO Pin 12 to low (so 0v)
 +    
 +    time.sleep(1)              # waits one second (settling time)
 +    
 +    GPIO.output(12, 1)         # sets the GPIO Pin 12 to high (so 3.3v) LED will turn on
 +    
 +    time.sleep(3)              # waits 3 seconds, so LED will be on for 3 seconds
 +    
 +    GPIO.cleanup()             # Resets all the GPIO pins to their default state (LED will go off)
 +\\ 
 +\\ 
 +Because we are accessing the GPIO, we need to run our Python program as the sudo user:
 +\\ 
 +    sudo python LED.py
 +\\ 
 +The LED should come on for 3 seconds, then go off. The program will then end.
 +\\ 
 +\\ 
 +You can see it in operation Here: {{:led_video.mp4|950x574|autoplay,loop}}
 +\\ 
 +**Remember:**
 +
 +Pins are 3.3v
 +\\ 
 +16mA MAX
 +\\ 
 +\\ 
 +This guide is comprised of information from a youtube video by **Gaven MacDonald**. Thanks Gaven.
 +\\ 
 +\\ 
 +
gpio_led_control.1470761348.txt.gz · Last modified: 2023/03/09 22:35 (external edit)