GPIO 引脚图
使用 gpio readall 命令可以换取 GPIO 状态:
对于大部分针脚而言在进入系统后的 GPIO 口状态其实就是芯片上电时的 带有上下拉电阻的输入状态 ,下面是树莓派 4B 的 IO 口功能复用表其中 Default Pull 列即为上电时默认的上下拉状态:
RPi.GPIO
使用温度:https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/
GPIO 针脚两种模式
BOARD 模式:
GPIO.setmode(GPIO.BOARD)
例如:物理针脚 11 脚 对应 GPIO 11,物理针脚12 脚,对应 GPIO 12
BCM 模式:
GPIO.setmode(GPIO.BCM)
例如:物理针脚 11 脚,对应 GPIO 17;物理针脚 12 脚,对应 GPIO 18
配置通道
配置为输入的通道:
GPIO.setup(channel, GPIO.IN)
配置为输出的通道:
GPIO.setup(channel, GPIO.OUT)
可以指定输出通道的初始值:
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)
输入
读取 GPIO 针脚的值:
GPIO.input(channel)
通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。这将返回 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。
输出
设置 GPIO 针脚的输出状态:
GPIO.output(channel, state)
状态可以为 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。
清理
恢复所有使用过的通道状态为输入,您可以避免由于短路意外损坏您的 Raspberry Pi 针脚。注意,该操作仅会清理您的脚本使用过的 GPIO 通道。
GPIO.cleanup()
控制三色 LED 灯
示例:闪烁 LED
将三色 LED 呼吸灯 RGB 引脚连接树莓派 GPIO 18、23、24 三个引脚,通过控制 GPIO 高低电平实现 LED 点亮/熄灭操作。 ```python
!/usr/bin/python3
import RPi.GPIO as GPIO import time
GPIO.setmode(GPIO.BCM)
LED_R_GPIO_PIN = 18 LED_G_GPIO_PIN = 23 LED_B_GPIO_PIN = 24
def led_init(): GPIO.setup(LED_R_GPIO_PIN, GPIO.OUT) GPIO.setup(LED_G_GPIO_PIN, GPIO.OUT) GPIO.setup(LED_B_GPIO_PIN, GPIO.OUT)
def led_on(): GPIO.output(LED_R_GPIO_PIN, GPIO.HIGH) GPIO.output(LED_G_GPIO_PIN, GPIO.HIGH) GPIO.output(LED_B_GPIO_PIN, GPIO.HIGH)
def led_off(): GPIO.output(LED_R_GPIO_PIN, GPIO.LOW) GPIO.output(LED_G_GPIO_PIN, GPIO.LOW) GPIO.output(LED_B_GPIO_PIN, GPIO.LOW)
led_init() blinks = 0 while(blinks < 5): led_on() time.sleep(1.0) led_off() time.sleep(1.0) blinks = blinks + 1 led_off() GPIO.cleanup() ```
示例:PWM 信号控制 LED
控制直流电机
电源引脚
- VCC:外接直流电源引脚,电压范围在 5~35 V之间
- GND:接地引脚,连接到电源负极
- 5V:驱动芯片内部逻辑供电引脚,如果安装了 5V 跳帽,则此引脚可输出 5V 电压,为微控板或其他电路提供电力供给,如果拔掉 5V 跳帽,则需要独立外接 5V 电源
控制引脚
- IN1 & IN2 电机驱动器 A 的输入引脚,控制电机 A 转动及旋转角度
- IN1 输入高电平 HIGH,IN2输入低电平 LOW,对应电机 A 正转
- IN1 输入低电平 LOW,IN2输入高电平 HIGH,对应电机A反转
- IN1、IN2 同时输入高电平 HIGH 或低电平 LOW,对应电机 A 停止转动
- 调速就是改变 IN1、IN2 高电平的占空比(需拔掉 ENA 处跳帽)
- IN3 & IN4 电机驱动器B的输入引脚,控制电机B转动及旋转角度
- IN3 输入高电平 HIGH,IN4 输入低电平 LOW,对应电机 B 正转
- IN3 输入低电平 LOW,IN4 输入高电平 HIGH,对应电机 B 反转
- IN3、IN4 同时输入高电平 HIGH 或低电平 LOW,对应电机 B 停止转动
- 调速就是改变 IN3、IN4 高电平的占空比(需拔掉 ENB 处跳帽)
输出引脚
- OUT1 & OUT2 电机驱动器 A 的输出引脚,接直流电机 A 或步进电机的 A+ 和 A-
- OUT3 & OUT3 电机驱动器B的输出引脚,接直流电机 B 或步进电机的 B+ 和 B-
调速控制引脚
- ENA 电机 A 调速开关引脚,拔掉跳帽,使用 PWM 对电机 A 调速,插上电机 A 高速运行
- ENB 电机 B 调速开关引脚,拔掉跳帽,使用 PWM 对电机 B 调速,插上电机 B 高速运行
参考
L298N 电机驱动板 - 详细介绍
《Raspberry Pi 4 Model B Datasheet》