树莓派点亮LED灯--基础篇

树莓派GPIO编程与串口通信实战教程

目录

一、高低电平点灯

1、查看树莓派的GPIO引脚信息

2、GPIO的编码类型

3、GPIO引脚设置输出模式

4、读取GPIO引脚的状态

5、设置GPIO高低电平

二、Python控制点灯

三、C语言控制树莓派引脚

四、串口通信

1、树莓派串口引脚的介绍

2、树莓派串口通信的基本步骤

​编辑a、准备硬件串口

b、minicom调试工具安装

c、电脑安装调试软件  串口助手

d、树莓派和电脑通讯

五、学习总结


一、高低电平点灯

1、查看树莓派的GPIO引脚信息

使用的指令:

2、GPIO的编码类型

 python适用:

C语言适用:

3、GPIO引脚设置输出模式

4、读取GPIO引脚的状态

5、设置GPIO高低电平

二、Python控制点灯

输入命令python3 led.py ,运行代码。

三、C语言控制树莓派引脚

创建c文件  :

nano led.c 

运行c语言代码:

gcc -o led led.c -lwiringPi

sudo ./led

四、串口通信

1、树莓派串口引脚的介绍

树莓派的两个串口:

2、树莓派串口通信的基本步骤

a、准备硬件串口

可以看到树莓派的硬件串口默认是辅助串口,serial1 - > ttyAMA0;

打开mini串口

打开树莓派,点击左上角点击首选项打开Serial Port

关闭Serial Console

现在mini串口已经设置为ttyS0,但是硬件串口还是ttyAMA0,我们要把硬件串口设置为主串口。

硬件串口设置为主串口

输入命令:

sudo nano /boot/config.txt

修改这个文件,添加两行代码:

dtoverlay=pi3-miniuart-bt

force_turbo=1

修改如下所示:

再次查看查看信息:ls /dev -al

发现硬件串口变成了主串口,serial0 -> ttyAMA0

b、minicom调试工具安装
  • 树莓派安装串口工具:sudo apt-get install minicom

c、电脑安装调试软件  串口助手
  • 将ch340和树莓派连接。
d、树莓派和电脑通讯

回到树莓派终端,输入以下命令:

minicom -D /dev/ttyAMA0 -b 9600

运行失败,没有找到minicom库

minicom库安装:

sudo apt-get update
sudo apt-get install minicom

安装过程中发现存在报错:

W: GPG error: http://mirrors.ustc.edu.cn/kali kali-rolling InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6 E: The repository 'http://mirrors.ustc.edu.cn/kali kali-rolling InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package minicom

原因分析

我的软件源出现了 GPG 错误。这个错误表明 apt 无法验证软件包的签名。因为你的系统中缺少公钥。

解决

1、运行以下代码:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED444FF07D8D0BF6

成功导入了 Kali Linux 仓库的公钥。

E: Unable to locate package minicom root@pi:/home/pi# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED444FF07D8D0BF6 Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). Executing: /tmp/apt-key-gpghome.jvb8b7e3dd/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys ED444FF07D8D0BF6 gpg: key ED444FF07D8D0BF6: 2 duplicate signatures removed gpg: key ED444FF07D8D0BF6: public key "Kali Linux Repository <devel@kali.org>" imported gpg: Total number processed: 1 gpg: imported: 1

2、重新安装minicom库:sudo apt-get update sudo apt-get install minicom

可以看出minicom正在安装,问题解决。

3、继续运行以下命令:

minicom:minicom -D /dev/ttyAMA0 -b 9600

运行成功如下图所示:

4、打开电脑的串口工具,查看是否有串口。波特率设置为9600。

5、打开串口,点击发送数据  love

在树莓派minicom终端接收到了数据:  love

退出minicom的步骤:

先按下ctrl + a再按下z,会弹出菜单,最后按下x选择YES,回车确定。

五、学习总结

        本次学习,学会了树莓派的引脚编码的种类,学会了查看树莓派引脚信息、GOIO设置输出模式、读取GPIO引脚状态、设置GPIO高低电平的Linux系统操作指令,并且学会了利用Python、C语言代码控制树莓派LED灯的亮灭,学会了树莓派几种串口引脚的类型,树莓派串口通信的基本步骤,解决了串口通信过程中出现的minicom库安装错误的问题。

### 树莓派 GPIO 控制 LED 亮 示例代码 以下是通过 Python 编程实现树莓派 GPIO 控制 LED 亮的示例代码: ```python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO # 引入RPi.GPIO库函数命名为GPIO import time # 引入计时time函数 # 设置GPIO模式为BOARD编号方式,基于插座引脚编号 GPIO.setmode(GPIO.BOARD) # 将Board 15引脚(BCM 22)设置为输出引脚 GPIO.setup(15, GPIO.OUT) try: while True: # 条件为真,下面程序一直循环执行 GPIO.output(15, GPIO.HIGH) # 将15引脚电压置高,点亮LED time.sleep(1) # 延时1秒 GPIO.output(15, GPIO.LOW) # 将15引脚电压置低,熄灭LED time.sleep(1) # 延时1秒 except KeyboardInterrupt: GPIO.cleanup() # 清理GPIO资源并退出 ``` 上述代码实现了 LED 的亮灭功能[^1]。`GPIO.setmode(GPIO.BOARD)` 定义了引脚编号的方式为物理引脚编号。`GPIO.setup()` 方法用于配置指定引脚为输入或输出模式,在此将其设为输出模式。 如果希望使用图形化编程工具来控制 LED,则可以考虑使用 Scratch 或者 Thonny IDE 中集成的可视化模块。例如,Scratch for Raspberry Pi 提供了一个简单易用的界面,允许拖拽积木块完成逻辑设计[^3]。 另外,PyQt5 可以用来创建 GUI 应用程序,并结合 PWM 技术实现呼吸效果。以下是一个简单的 PyQt5 实现呼吸的例子: ```python from gpiozero import PWMLed from signal import pause led = PWMLed(15) # 使用 Board 15 引脚作为 PWM 输出 def breathe(): """模拟呼吸效果""" led.value = 0 while True: for brightness in range(100): # 逐渐变亮 led.value = brightness / 100.0 time.sleep(0.01) for brightness in reversed(range(100)): # 逐渐变暗 led.value = brightness / 100.0 time.sleep(0.01) breathe() pause() ``` 该代码展示了如何利用 `gpiozero.PWMLed` 类实现平滑变化的亮度调节[^4]。 #### 注意事项 断开与树莓派的连接前,请务必清理所有已使用的 GPIO 资源,防止下次运行程序时报错。可以通过调用 `GPIO.cleanup()` 函数释放占用的硬件接口。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值