使用树莓派控制LED
这里使用的是BCM脚位 引脚分别为
led0正极接树莓派17脚 负极接GND
led1正极接树莓派27脚 负极接GND
led2正极树莓派22脚 负极接GND
引脚图如下
使用python可以直接使用gpiozero库,如下为每个灯亮5秒示例
root@raspberrypi:~/gpio_py# cat 3led_5s.py
from gpiozero import LED
from time import sleep
led0 = LED(17)
led0.on()
sleep(5)
led0.off()
led1 = LED(27)
led1.on()
sleep(5)
led1.off()
led2 = LED(22)
led2.on()
sleep(5)
led2.off()
也可以使用RPi.GPIO库,这里为不停闪烁死循环,需要手动结束
root@raspberrypi:~/gpio_py# cat led2.py
# -*- coding: utf-8 -*-
#将RPi.GPIO 模块映射为GPIO来使用
import RPi.GPIO as GPIO
#引入time 模块
import time
#定义IO
GPIO_PIN0 = 17
GPIO_PIN1 = 27
GPIO_PIN2 = 22
GPIO.setmode(GPIO.BCM) #//使用BCM对针脚进行编号
GPIO.setup(GPIO_PIN0, GPIO.OUT) #//配置GPIO为输出模式
GPIO.setup(GPIO_PIN1, GPIO.OUT)
GPIO.setup(GPIO_PIN2, GPIO.OUT)
try:
while True:
GPIO.output(GPIO_PIN0,GPIO.HIGH) #//输出为高
GPIO.output(GPIO_PIN1,GPIO.HIGH)
GPIO.output(GPIO_PIN2,GPIO.HIGH)
time.sleep(1) #//延时1s
GPIO.output(GPIO_PIN0,GPIO.LOW)
GPIO.output(GPIO_PIN1,GPIO.LOW)
GPIO.output(GPIO_PIN2,GPIO.LOW) #//输出低
time.sleep(1) #//延时1s
except KeyboardInterrupt:
GPIO.cleanup()
使用shell控制led开关,方法例如
sh led_switch.sh 17 on
sh led_switch.sh 17 off
root@raspberrypi:~/gpio_py# cat led_switch.sh
#!/bin/bash
case $2 in
"on")
echo $1 > /sys/class/gpio/export
echo "setting direction to output"
echo out > /sys/class/gpio/gpio$1/direction
echo "setting gpio$1 high"
echo 1 > /sys/class/gpio/gpio$1/value
;;
"off")
echo "setting gpio$1 low"
echo 0 > /sys/class/gpio/gpio$1/value
;;
*)
echo "Input Error !!!"
echo "bash led.sh {PortNumber} {on/off}"
echo "example: bash led.sh 17 on"
echo "example: bash led.sh 17 off"
;;
esac