使用 Python 控制 Raspberry Pi GPIO 引脚

pythonserver side programmingprogramming

Raspberry Pi 是一种流行的单板计算机,广泛用于各种项目,从家庭自动化到机器人技术。Raspberry Pi 的主要功能之一是它能够通过其 GPIO(通用输入/输出)引脚与物理世界交互。这些引脚允许您将传感器、执行器和其他电子元件连接到 Raspberry Pi 并使用软件控制它们。

Python 是一种多功能编程语言,广泛用于在 Raspberry Pi 上开发应用程序。事实上,Raspberry Pi OS 预装了 Python,使其成为编程 GPIO 引脚的自然选择。

在本教程中,我们将探索如何使用 Python 控制 Raspberry Pi GPIO 引脚。我们将介绍 GPIO 编程的基础知识,并演示如何使用 Python 打开和关闭 LED。我们还将讨论更高级的概念,例如 PWM(脉冲宽度调制)以及如何与传感器交互。

在本教程结束时,您应该很好地了解如何使用 Python 控制 Raspberry Pi GPIO 引脚,并能够将这些知识应用到您自己的项目中。那么,让我们开始吧!

入门

在深入使用 RPi.GPIO 库之前,我们首先需要使用 pip 安装该库。但是,由于它不是内置的,我们必须首先安装 RPi.GPIO 库。这可以使用 pip 包管理器完成。

要安装 RPi.GPIO 库,请打开您的终端并输入以下命令:

pip install RPi.GPIO

这将下载并安装 RPi.GPIO 库及其依赖项。安装完成后,我们可以开始使用 RPi.GPIO 并利用其模块!

使用 Python 控制 Raspberry Pi GPIO 引脚

在使用 RPi.GPIO 库之前,我们需要将其导入到我们的 Python 脚本中。我们可以通过在脚本开头添加以下代码行来实现这一点:

import RPi.GPIO as GPIO

配置 GPIO 引脚

导入 RPi.GPIO 库后,我们需要配置 GPIO 引脚。我们可以使用 GPIO.setmode() 和 GPIO.setup() 函数来执行此操作。

GPIO.setmode() 函数设置 GPIO 引脚的模式。有两种模式:BCM 和 BOARD。在 BCM 模式下,GPIO 引脚通过其 Broadcom SOC 通道号进行识别。在 BOARD 模式下,GPIO 引脚通过其在 Raspberry Pi 上的物理引脚号进行识别。

以下是如何将 GPIO 模式设置为 BCM 模式的示例:

GPIO.setmode(GPIO.BCM)

GPIO.setup() 函数用于配置 GPIO 引脚的方向和初始状态。该函数有两个参数:GPIO 引脚号和方向(GPIO.IN 或 GPIO.OUT)。

以下是如何将 GPIO 引脚 18 配置为输出的示例:

GPIO.setup(18, GPIO.OUT)

控制 GPIO 引脚

配置 GPIO 引脚后,我们可以开始使用 Python 代码控制它们。我们可以使用两个主要函数来控制 GPIO 引脚:GPIO.output() 和 GPIO.input()。

GPIO.output() 函数用于设置输出 GPIO 引脚的状态。该函数接受两个参数:GPIO 引脚号和状态(GPIO.HIGH 或 GPIO.LOW)。

以下是如何将 GPIO 引脚 18 设置为 HIGH 的示例:

GPIO.output(18, GPIO.HIGH)

GPIO.input() 函数用于读取输入 GPIO 引脚的状态。该函数接受一个参数:GPIO 引脚号。

以下是如何读取 GPIO 引脚 17 的状态的示例:

state = GPIO.input(17)

示例

以下是可用于控制 Raspberry Pi GPIO 引脚的完整 Python 代码:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)

# 设置 GPIO 引脚
led_pin = 11
button_pin = 13

GPIO.setup(led_pin, GPIO.OUT)
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# 打开 LED
GPIO.output(led_pin, GPIO.HIGH)

# 等待按钮按下
while GPIO.input(button_pin) == GPIO.HIGH:
time.sleep(0.1)

# 关闭 LED
GPIO.output(led_pin, GPIO.LOW)

# 清理 GPIO 引脚
GPIO.cleanup()

在此示例中,我们使用 RPi.GPIO 库来控制 Raspberry Pi 上的 GPIO 引脚。我们首先将模式设置为 GPIO.BOARD,它使用物理引脚编号系统。然后,我们设置两个引脚,一个用于 LED,一个用于按钮,并分别配置它们用于输出和输入。

接下来,我们打开 LED 并等待按钮被按下。按下按钮后,我们关闭 LED 并清理 GPIO 引脚。

总体而言,此代码演示了使用 Python 控制 Raspberry Pi 上的 GPIO 引脚的基础知识。通过修改此代码,您可以控制各种设备和传感器,使 Raspberry Pi 成为物理计算项目的多功能平台。

结论

总之,使用 Python 控制 Raspberry Pi GPIO 引脚为自动化、机器人和物联网项目开辟了无限可能。 RPi.GPIO 库提供了一个简单直观的接口来控制引脚,借助 pigpio 和 gpiozero 等附加库,可以实现更高级的功能。

在本教程中,我们介绍了 GPIO 引脚及其功能的基础知识、如何安装和使用 RPi.GPIO 库,并探索了一些适用于不同场景的示例代码。我们还讨论了如何使用 pigpio 和 gpiozero 等其他库来实现更高级的功能,例如 PWM 和中断。

借助此处介绍的知识和工具,任何人都可以开始在 Raspberry Pi 平台上构建自己的项目。无论是控制 LED、电机还是传感器,可能性都是无穷无尽的。


相关文章