树莓派点亮LED灯
通过树莓派的1和6引脚点亮LED灯是一个基础的入门实验。这里需要注意的是,接线方式和我们编程控制GPIO的常规方法略有不同。下面我将为你解释原因,并提供详细的硬件连接与代码示例。
💡 硬件连接说明
树莓派的 1号引脚 通常提供 3.3V 电源,而 6号引脚 是 GND(地线)。
在这种连接方式下,1号引脚(3.3V)持续供电,无法通过编程(如设置高低电平)直接控制LED的亮灭。LED会因始终形成电流回路而常亮。
若想通过编程(例如Python)控制LED的闪烁,需调整接线,将LED的正极连接到标准的GPIO引脚(如GPIO17对应物理引脚11),再通过程序控制该GPIO引脚输出高低电平。下面将给出两种常见的控制方法。
🛠️ 方法一:使用 Python 和 RPi.GPIO 库
这是较常见的方式。请注意,下面的代码示例基于调整后的接线(即LED正极通过电阻接GPIO引脚,负极接GND)。
确保已安装 RPi.GPIO 库:
树莓派系统通常自带。若无,可通过终端安装:bash
sudo apt update sudo apt install python3-rpi.gpio
创建并运行Python脚本:
创建一个名为led_blink.py
的文件,输入以下代码:python
import RPi.GPIO as GPIO import time# 设置GPIO编号模式为BOARD(物理引脚编号) GPIO.setmode(GPIO.BOARD)# 根据调整后的接线,例如使用11号物理引脚(对应BCM GPIO17) # 请根据你实际连接GPIO的物理引脚号修改 LED_PIN = 11# 设置该引脚为输出模式 GPIO.setup(LED_PIN, GPIO.OUT)try:print("LED开始闪烁。按 Ctrl+C 停止。")while True:# 点亮LEDGPIO.output(LED_PIN, GPIO.HIGH)print("LED点亮")time.sleep(1) # 等待1秒# 熄灭LEDGPIO.output(LED_PIN, GPIO.LOW)print("LED熄灭")time.sleep(1) # 等待1秒except KeyboardInterrupt:print("\n程序被用户中断")finally:# 清理GPIO设置,将引脚恢复为输入模式GPIO.cleanup()print("GPIO已清理")
在终端中,使用以下命令运行脚本(需要sudo权限以操作GPIO):
bash
sudo python3 led_blink.py
🔌 方法二:使用 Shell 脚本
也可以通过直接读写文件系统的方式控制GPIO。
创建一个Shell脚本(例如
led_control.sh
):bash
#!/bin/bash# 指定要使用的GPIO引脚(例如BCM编号的17,对应物理引脚11) GPIO_BCM=17 # 计算对应的物理引脚号(针对BOARD模式),这里以BCM 17对应物理引脚11为例 # 实际使用时,你可能需要根据实际情况调整或直接使用BCM编号 # 这个示例主要展示思路,使用sysfs接口操作GPIO通常使用BCM编号或gpiochip全局编号 # 请注意:树莓派不同版本,sysfs接口使用方式可能有所不同# 启用GPIO引脚(这里以BCM编号为例,具体sysfs路径请根据你的树莓派版本调整) # 注意:新版本树莓派可能使用新的gpiochip机制,此示例方法可能需调整 echo $GPIO_BCM > /sys/class/gpio/export sleep 1 # 等待一下确保文件生成# 设置引脚为输出 echo out > /sys/class/gpio/gpio$GPIO_BCM/direction# 点亮LED echo 1 > /sys/class/gpio/gpio$GPIO_BCM/value echo "LED点亮" sleep 2 # 等待2秒# 熄灭LED echo 0 > /sys/class/gpio/gpio$GPIO_BCM/value echo "LED熄灭"# 禁用GPIO引脚 echo $GPIO_BCM > /sys/class/gpio/unexport
给脚本添加执行权限并运行:
bash
chmod +x led_control.sh sudo ./led_control.sh
请注意:Shell脚本的方法,尤其是sysfs接口的具体使用,可能因树莓派OS版本不同而有所变化。若遇到问题,建议优先使用Python方法。
⚠️ 重要提示
电阻是必须的:LED电路中务必串联一个约220Ω至470Ω的电阻,以防损坏LED或树莓派。
识别LED极性:LED长脚为正极(阳极),短脚为负极(阴极)。
谨慎接线:接线错误可能会损坏树莓派。接线或更改电路前,最好断开电源。
GPIO清理:Python脚本中
GPIO.cleanup()
很重要,它能在程序退出时将GPIO恢复至安全状态。
💎 总结
直接将LED接在1号(3.3V)和6号(GND)引脚之间,LED会常亮,无法通过编程控制。
若想用程序(如Python)控制LED闪烁,需将LED正极(通过电阻)接可编程的GPIO引脚(如物理引脚11),负极接GND(如物理引脚6)。
Python代码中,注意使用
sudo
运行,并处理好GPIO.cleanup()
。
希望这些信息能帮助你。如果你打算调整接线以实现闪烁效果,或有其他疑问,随时可以再问我。