树莓派——GPIO笔记
来源:互联网 发布:行最简形矩阵是什么 编辑:程序博客网 时间:2024/05/20 02:56
- shell命令行方式操作文件存在于Linux虚拟文件系统,树莓派重启以后消失
- sudo su:
切换到root用户
- echo 25 > /sys/class/gpio/export:
将25写入 /sys/class/gpio目录下创建一个gpio25的文件夹
cd /sys/class/gpio/gpio25
- echo out > direction
输出电流方向
- echo 1 >value
赋值:点亮(1后面必须有空格)
- echo 0 > value
赋值:熄灭(同上)
- shell脚本方式
一系列shell命令的集合- sudo su
切换到root用户
- cd ~
pwd
切换到/root的“家目录”
- nano blinkled.sh
创建脚本文件,后缀为sh方便区分
#!/bin/sh
echo 25 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio25/direction
while true
do
echo 1 > /sys/class/gpio/gpio25/value
sleep 0.5
echo 0 > /sys/class/gpio/gpio25/value
sleep 0.5
done
- chmod +x blinkled.sh
修改脚本为可执行文件
- ./blinkled.sh
执行脚本
- Python控制
使用模块,可移植性高- sudo python
进入python交互界面
- >>import RPi.GPIO as GPIO
引用RPi.GPIO模块
(如果出错则回到shell中安装 )
quit( )返回shell命令行;
sudo apt-get install python-rpi-gpio
再进入Python交互界面
>>GPIO.VERSION 可以顺便查看版本
- >>GPIO.setmode(GPIO.BCM)
设置GPIO的定义方式(必须先引入模块)
- >>GPIO.setup(25,GPIO.OUT)
设置引脚接口为GPIO25,电流方向为OUT
- >>GPIO.output(25,GPIO.HIGH)
点亮LED
- >>GPIO.output(25,GPIO.LOW)
熄灭LED
- Python控制GPIO
- LED闪烁
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
while True:
GPIO.output(25,GPIO.HIGH)
time.sleep(0.5)
GPIO.output(25,GPIO.LOW)
time.sleep(0.5)
- 按键输入(消抖)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(25,GPIO.OUT)
ledStatus = True
while True:
if (GPIO.input(24) == GPIO.HIGH):
print("button pressed!")
ledStatus = not ledStatus
if ledStatus:
GPIO.output(25,GPIO.HIGH)
else:
GPIO.output(25,GPIO.LOW)
time.sleep(0.3)
time.sleep(0.01)
- 中断
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(25, GPIO.OUT)
ledStatus = True
def my_callback(channel):
print("button pressed")
global ledStatus
ledStatus = not ledStatus
if ledStatus:
GPIO.output(25, GPIO.HIGH)
else:
GPIO,output(25, GPIO.LOW)
GPIO.add_event_detect(24, GPIO.RISING, callback=my_callback)
while True:
try:
print("I'm working...")
time.sleep(5)
except KeyboardInterrupt:
break
GPIO.cleanup
shell命令行方式
操作文件存在于Linux虚拟文件系统,树莓派重启以后消失- sudo su:
切换到root用户 - echo 25 > /sys/class/gpio/export:
将25写入 /sys/class/gpio目录下创建一个gpio25的文件夹
cd /sys/class/gpio/gpio25 - echo out > direction
输出电流方向 - echo 1 >value
赋值:点亮(1后面必须有空格) - echo 0 > value
赋值:熄灭(同上)
一系列shell命令的集合
- sudo su
切换到root用户 - cd ~
pwd
切换到/root的“家目录” - nano blinkled.sh
创建脚本文件,后缀为sh方便区分
#!/bin/sh
echo 25 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio25/direction
while true
do
echo 1 > /sys/class/gpio/gpio25/value
sleep 0.5
echo 0 > /sys/class/gpio/gpio25/value
sleep 0.5
done - chmod +x blinkled.sh
修改脚本为可执行文件 - ./blinkled.sh
执行脚本
使用模块,可移植性高
- sudo python
进入python交互界面 - >>import RPi.GPIO as GPIO
引用RPi.GPIO模块
(如果出错则回到shell中安装 )
quit( )返回shell命令行;
sudo apt-get install python-rpi-gpio
再进入Python交互界面
>>GPIO.VERSION 可以顺便查看版本 - >>GPIO.setmode(GPIO.BCM)
设置GPIO的定义方式(必须先引入模块) - >>GPIO.setup(25,GPIO.OUT)
设置引脚接口为GPIO25,电流方向为OUT - >>GPIO.output(25,GPIO.HIGH)
点亮LED - >>GPIO.output(25,GPIO.LOW)
熄灭LED
- LED闪烁
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
while True:
GPIO.output(25,GPIO.HIGH)
time.sleep(0.5)
GPIO.output(25,GPIO.LOW)
time.sleep(0.5) - 按键输入(消抖)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(25,GPIO.OUT)
ledStatus = True
while True:
if (GPIO.input(24) == GPIO.HIGH):
print("button pressed!")
ledStatus = not ledStatus
if ledStatus:
GPIO.output(25,GPIO.HIGH)
else:
GPIO.output(25,GPIO.LOW)
time.sleep(0.3)
time.sleep(0.01) - 中断
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(25, GPIO.OUT)
ledStatus = True
def my_callback(channel):
print("button pressed")
global ledStatus
ledStatus = not ledStatus
if ledStatus:
GPIO.output(25, GPIO.HIGH)
else:
GPIO,output(25, GPIO.LOW)
GPIO.add_event_detect(24, GPIO.RISING, callback=my_callback)
while True:
try:
print("I'm working...")
time.sleep(5)
except KeyboardInterrupt:
break
GPIO.cleanup
0 0
- 树莓派——GPIO笔记
- 树莓派学习笔记——GPIO功能学习
- 树莓派学习笔记——wiringPi GPIO使用详解
- 树莓派学习笔记——Shell脚本操作GPIO
- 树莓派学习笔记——RPi.GPIO 流水灯
- 02-树莓派学习笔记——GPIO功能学习
- 树莓派学习笔记——GPIO功能学习
- LPC2478入门笔记——GPIO篇
- stm32学习笔记——GPIO
- Tiny6410学习笔记1——GPIO
- ARM7学习笔记——GPIO
- stm32学习笔记——GPIO
- am437调试笔记——串口+GPIO
- 树莓派 Python GPIO 学习笔记
- 树莓派学习笔记——使用文件IO操作GPIO SysFs方式
- Mini2440学习笔记(二)——GPIO
- STM32入门笔记(3)——GPIO
- CC2530学习笔记のGPIO配置——点亮LED
- 电机驱动电路
- stringbuffer与stringbuilder的区别?
- SpringMVC 的 Controller 返回各种视图的处理方式
- @RequestMapping
- 学习小记 之 马尔可夫决策过程(Markov Decision Processes)
- 树莓派——GPIO笔记
- Android应用图标在状态栏上显示实现原理
- Eclipse 反编译插件安装jad
- Android之Uicc框架
- C语言求100~200之间的素数
- Android开发之获取系统所有进程信息。
- 使用python3爬取数据至csv
- 第三周项目2-建设“顺序表”算法库
- Android_自定义Dialog