
通过树莓派的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: # 点亮LED GPIO.output(LED_PIN, GPIO.HIGH) print("LED点亮") time.sleep(1) # 等待1秒 # 熄灭LED GPIO.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()
。
希望这些信息能帮助你。如果你打算调整接线以实现闪烁效果,或有其他疑问,随时可以再问我。