树莓派使用shell和python控制GPIO

使用树莓派控制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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值