GPIO 引脚图

image.png
image.png
使用 gpio readall 命令可以换取 GPIO 状态:
截屏2022-05-29 下午2.39.49.png
对于大部分针脚而言在进入系统后的 GPIO 口状态其实就是芯片上电时的 带有上下拉电阻的输入状态 ,下面是树莓派 4B 的 IO 口功能复用表其中 Default Pull 列即为上电时默认的上下拉状态:
截屏2022-05-29 下午10.03.57.png

RPi.GPIO

使用温度:https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/

GPIO 针脚两种模式

  • BOARD 模式:

    1. GPIO.setmode(GPIO.BOARD)

    例如:物理针脚 11 脚 对应 GPIO 11,物理针脚12 脚,对应 GPIO 12

  • BCM 模式:

    1. GPIO.setmode(GPIO.BCM)

    例如:物理针脚 11 脚,对应 GPIO 17;物理针脚 12 脚,对应 GPIO 18
    image.png

    配置通道

    配置为输入的通道:

    1. GPIO.setup(channel, GPIO.IN)

    配置为输出的通道:

    1. GPIO.setup(channel, GPIO.OUT)

    可以指定输出通道的初始值:

    1. GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)

    输入

    读取 GPIO 针脚的值:

    1. GPIO.input(channel)

    通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。这将返回 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

    输出

    设置 GPIO 针脚的输出状态:

    1. GPIO.output(channel, state)

    状态可以为 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

    清理

    恢复所有使用过的通道状态为输入,您可以避免由于短路意外损坏您的 Raspberry Pi 针脚。注意,该操作仅会清理您的脚本使用过的 GPIO 通道。

    1. 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

控制直流电机

image.png
电源引脚

  • 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-

调速控制引脚