目录
- C语言
- WiringPi
- Python
- RPi.GPIO
- GPIO Zero
- bash脚本
平台:树莓派3B
版本: 2021-05-07-raspios-buster-armhf
若GPIO输出为3.3V 采用压降为1.7V的红色LED灯
设工作电流为15mA,则限流电阻取≥(3.3 - 1.7)/0.015 = 106.67欧较为安全。
C语言
WiringPi
API 手册
WiringPi预装在标准的树莓派操作系统Raspbin中。也可以使用下面的命令进行安装:
sudo apt-get install wiringpi
如果需要更新WiringPi,可以使用系统更新命令:
sudo apt-get update
sudo apt-get upgrade
WiringPi安装完成后,可以使用下面的命令测试是否安装成功:
sudo gpio -v
如果系统中安装了WiringPi,该命令可以显示出其版本号、作者及当前树莓派的一些信息;如下图所示:
WiringPi对树莓派物理引脚进行了封装,定义了一套自己的引脚编号。
如果要查看当前树莓派的引脚编号,可以使用如下命令:
sudo gpio readall
在合适的目录下编辑源文件
#include <wiringPi.h>
int main(int argc, char * argv[])
{ char i;wiringPiSetup();pinMode(0, OUTPUT);for(i = 0; i < 10; ++i){digitalWrite(0, HIGH);delay(500);digitalWrite(0, LOW);delay(500);}return 0;
}
Ctrl+O 回车 保存
Ctrl+X退出编辑
编译这段代码
gcc -o main.o main.c -lwiringPi
运行目标文件
./main.o
Python
RPi.GPIO
API 手册
在合适的地方编源码
nano main.py
import RPi.GPIO #导入RPi.GPIO库
import time
RPi.GPIO.setmode(RPi.GPIO.BOARD) #选择GPIO编号系统 BCM 对应 GPIO numbers, BOARD 对应 physical numbers
RPi.GPIO.setup(11, RPi.GPIO.OUT) #把引脚设置为输出模式
for _ in range(10):RPi.GPIO.output(11, RPi.GPIO.HIGH)time.sleep(0.5)RPi.GPIO.output(11, RPi.GPIO.LOW)time.sleep(0.5)
Ctrl+O 回车 保存
Ctrl+X退出编辑
运行脚本
python3 main.py
可以观察到LED成功闪烁。
GPIO Zero
API手册
使用pinout命令查看引脚编号
在合适的地方编源码
nano main.py
import gpiozero
import time LED_R = gpiozero.LED(17) for _ in range(10):LED_R.on() time.sleep(0.5)LED_R.off() time.sleep(0.5)
Ctrl+O 回车 保存
Ctrl+X退出编辑
运行脚本
python3 main.py
可以观察到LED成功闪烁。
bash脚本
在合适的地方编写源码
在Linux中,外部设备经常被表示成文件。向文件写入或读取字符,就相当于向设备输出或者从设备输入字 符。树莓派上的GPIO端口也是如此,其代表文件位于/sys/class/gpio/ 下。
nano main.bash
#!/bin/bash
echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
COUNTER=0
while [ $COUNTER -le 10 ]
doecho 1 > /sys/class/gpio/gpio17/valuesleep 0.5echo 0 > /sys/class/gpio/gpio17/valuesleep 0.5let COUNTER+=1
done
echo 17 > /sys/class/gpio/unexport
Ctrl+O 回车 保存
Ctrl+X退出编辑
运行脚本
chmod 777 main.bash
./main.bash
可看到LED灯闪烁。