【树莓派学习笔记】三、点亮一个LED灯(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 ]
do
    echo 1 > /sys/class/gpio/gpio17/value
    sleep 0.5
    echo 0 > /sys/class/gpio/gpio17/value
    sleep 0.5
    let COUNTER+=1
done
echo 17 > /sys/class/gpio/unexport

在这里插入图片描述
Ctrl+O 回车 保存
Ctrl+X退出编辑
运行脚本

chmod 777 main.bash
./main.bash

可看到LED灯闪烁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乙酸氧铍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值