《边学边用树莓派-5》树莓派通过Shell脚本控制 GPIO

2014-06-221.5万
AI 快速预览详细 收起
本文介绍了如何使用Shell脚本控制树莓派的GPIO引脚。首先,通过echo命令将GPIO25引脚的操作接口从内核空间暴露到用户空间。然后,设置GPIO25为输出模式,并通过echo命令将其置高或置低来控制LED灯。此外,还可以将GPIO25设置为输入模式,并读取按钮的状态。最后,将这些操作保存为一个名为on.sh的Shell脚本,通过chmod命令设置为可执行文件。这个方法适用于初学者入门,适合STEM教育场景。
Raspberry Pi  主板配置了一组GPIO,一共有8个GPIO可以用作输入或输出,可以用这些GPIO来开发一些电子项目。
如控制LED灯、电机、继电器。也可以作为输入接口,读取按键等开关量输入的传感器。这里需要提醒大家,树莓派的GPIO是3.3V的。这意味着他输出高电平是3.3V,作为输入的话也只能最大限度接受3.3V的输入。特别是树莓派的CPU非常精密,如果因为实验的时候输入了错误的电压或者不小心短路了GPIO,树莓派将损毁而基本不能修复。
如果要万无一失可以使用DFRobot开发的 Raspberry Pi 面包板扩展板  或者 Raspberry Pi Meet Arduino 扩展板对IO进行保护,同时也将3.3V转化为5V,兼容更多的外设。

树莓派有多种GPIO控制方式:Shell脚本、Python编程、wiringPi C/C++库。这里咱们看看如何通过Shell脚本进行控制。

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

这里我们使用Raspberry Pi 面包板扩展板、一颗510欧电阻、一颗LED灯、一个面包板来做如下实验。

《面包板图》

首先进入root权限模式,将GPIO25引脚的操作接口从内核空间暴露到用户空间:
  1. pi@raspberrypi ~ $ su
  2. Password:
  3. root@raspberrypi:/home/pi# echo 25 > /sys/class/gpio/export
复制代码
在以下地址产生了一个gpio25的目录,并产生了所需的控制文件
  1. root@raspberrypi:/home/pi# cd /sys/class/gpio/gpio25
  2. root@raspberrypi:/sys/class/gpio/gpio25# ls
  3. active_low  direction  edge  power  subsystem  uevent  value
复制代码

将GPIO25设置为输出
  1. root@raspberrypi:/sys/class/gpio/gpio25# echo out > direction
复制代码

将GPIO25 置高
  1. root@raspberrypi:/sys/class/gpio/gpio25# echo 1 > value
复制代码

将GPIO25 置低
  1. root@raspberrypi:/sys/class/gpio/gpio25# echo 0 > value
复制代码

我们也可以将GPIO25设置为输入模式,并读取IO状态,在这里我们使用一个按钮开关来做实验
  1. root@raspberrypi:/sys/class/gpio/gpio25# echo in > direction
  2. root@raspberrypi:/sys/class/gpio/gpio25# cat value
  3. 1
  4. root@raspberrypi:/sys/class/gpio/gpio25#
复制代码
试试按钮按下读取的状态

下面我们可以将操作保存为Shell脚本,所谓脚本是指包含了很多Shell命令的文件。
使用nano编辑器输入以下代码,将它保存为文件名为  on.sh  的文件
  1. #!/bin/bash
  2. echo Exporting pin $1.
  3. echo $1> /sys/class/gpio/export
  4. echo Setting direction to out
  5. echo out > /sys/class/gpio/gpio$1/direction
  6. echo Setting pin high.
  7. echo 1 > /sys/class/gpio/gpio$1/value
复制代码
$1指代第一个命令行参数,在执行脚本的时候通过命令行参数选择控制某个GPIO

通过chmod命令把它设置为可执行:
  1. root@raspberrypi:/home/pi# chmod +x on.sh
复制代码

执行这个Shell脚本置GPIO25为高:
  1. root@raspberrypi:/home/pi# ./on.sh 25
复制代码

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -