本文目录导读:

- 场景一:树莓派 (Raspberry Pi) 控制引脚上的LED灯
- 场景二:Arduino (或ESP8266/ESP32) 控制板载或外接LED
- 场景三:Windows/Linux 电脑控制外接USB设备的LED
- 场景四:通过操作系统命令控制(无需外接硬件)
- 选择最适合你的方案
要用脚本控制电源灯(通常是设备的LED指示灯),方法取决于你使用的硬件平台(如Arduino、树莓派、单片机)或操作系统(如Windows、Linux)。
以下是几种最常见场景的脚本控制方法:
树莓派 (Raspberry Pi) 控制引脚上的LED灯
树莓派的GPIO引脚可以被Python脚本控制,从而点亮或熄灭外接在引脚上的电源灯(或板载的ACT灯)。
硬件连接: 将一个LED(带限流电阻)的正极连接到GPIO17,负极连接到GND。
Python脚本示例 (使用 gpiozero 库):
from gpiozero import LED
from time import sleep
# 定义连接到GPIO 17的LED
led = LED(17)
# 循环闪烁
while True:
led.on() # 点亮
sleep(1)
led.off() # 熄灭
sleep(1)
使用 RPi.GPIO 库的示例:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT) # 设置GPIO17为输出
try:
while True:
GPIO.output(17, GPIO.HIGH) # 高电平点亮
time.sleep(1)
GPIO.output(17, GPIO.LOW) # 低电平熄灭
time.sleep(1)
finally:
GPIO.cleanup() # 清理GPIO状态
Arduino (或ESP8266/ESP32) 控制板载或外接LED
硬件: 如果是板载LED,通常引脚是LED_BUILTIN;外接LED则连接到数字引脚(如D13)。
Arduino IDE 代码 (C++风格脚本):
// 定义LED引脚
int ledPin = 13; // 板载LED通常是13
void setup() {
pinMode(ledPin, OUTPUT); // 设置为输出模式
}
void loop() {
digitalWrite(ledPin, HIGH); // 点亮
delay(1000); // 等待1秒
digitalWrite(ledPin, LOW); // 熄灭
delay(1000);
}
对于ESP32/ESP8266 (MicroPython):
from machine import Pin
import time
led = Pin(2, Pin.OUT) # 很多ESP8266/ESP32的板载灯在GPIO2
while True:
led.value(1) # 点亮
time.sleep(1)
led.value(0) # 熄灭
time.sleep(1)
Windows/Linux 电脑控制外接USB设备的LED
如果你的“电源灯”是电脑机箱上的灯(通过主板跳线控制),或者是一个USB控制的灯(如智能灯条),则需要通过串口或USB协议控制。
方法1:通过串口控制USB继电器(再连LED)
很多USB继电器模块(如常见的1路/2路继电器)可通过串口AT指令控制。
Python 示例 (使用 pyserial):
import serial
import time
# 打开串口(端口号根据实际修改,Windows: COM3, Linux: /dev/ttyUSB0)
ser = serial.Serial('COM3', 9600, timeout=1)
def turn_on():
ser.write(b'ON\n') # 发送“开”指令,具体指令看继电器手册
def turn_off():
ser.write(b'OFF\n')
turn_on()
time.sleep(2)
turn_off()
ser.close()
方法2:使用HIDAPI控制USB LED灯
如果你的灯是一个USB HID设备(如某些廉价LED条),可以使用 pywinusb 或 hidapi 库发送控制指令,这通常需要查阅该LED的USB协议。
通过操作系统命令控制(无需外接硬件)
- Windows (命令行控制屏幕背光/键盘灯): 使用
powershell或第三方工具,但直接控制主板“电源灯”需要底层I/O操作(不推荐非程序员尝试)。 - Linux (使用通用GPIO,如sysfs): 较老的系统可以通过
/sys/class/gpio导出GPIO并控制,现在推荐使用libgpiod或python-periphery。
选择最适合你的方案
| 你的设备/环境 | 推荐方法 | 核心工具 |
|---|---|---|
| 树莓派/Orange Pi | Python 脚本控制 GPIO | gpiozero / RPi.GPIO |
| Arduino | 在Arduino IDE写C++代码 | digitalWrite() |
| ESP32/ESP8266 | MicroPython 或 C++ | machine.Pin / Arduino |
| 电脑机箱灯 (主板控制) | 通常不能通过脚本直接控制(需主板支持或BIOS设置) | 除非是USB连接的灯或使用超低频的LPT口 |
| USB继电器模块 | 通过串口发送指令 | Python + pyserial |
| 网络控制的智能灯 | HTTP API或MQTT控制 | requests / paho-mqtt |
安全提示: 不要用脚本直接短接主板上的跳线来模拟点亮电源灯,这可能导致短路,最好使用外接的LED模块(带电阻)或USB继电器来达到控制目的。