在本章中,我们将使用 Raspberry Pi 及其 GPIO 来使 LED 闪烁。
我们使用 Node.js 和 onoff 模块来控制 GPIO。
为了打开 LED 灯,我们使用 GPIO 引脚作为"Output",并创建一个脚本来打开和关闭它(闪烁)。
在本章中,我们将创建一个控制 LED 灯的简单示例。
为此,您需要:
单击上面列表中的链接以获取不同组件的说明。
笔记:您需要的电阻器可能与我们使用的不同,具体取决于您使用的 LED 类型。大多数小型 LED 仅需要一个小电阻,大约 200-500 欧姆。通常使用的具体值并不重要,但电阻值越小,LED 就会越亮。
现在是时候在我们的面包板上构建电路了。
如果您不熟悉电子产品,我们建议您关闭 Raspberry Pi 的电源。并使用防静电垫或接地带以避免损坏。
使用以下命令正确关闭 Raspberry Pi:
pi@w3demopi:~ $ sudo shutdown -h now
当 Raspberry Pi 上的 LED 停止闪烁后,从 Raspberry Pi 上拔下电源插头(或关闭其连接的电源板)。
仅拔掉插头而不正确关闭可能会导致存储卡损坏。
看上面的电路图。
您的电路现在应该已经完成,并且您的连接应该与上图非常相似。
现在是时候启动 Raspberry Pi 并编写 Node.js 脚本与其交互了。
现在我们已经完成了所有设置,我们可以编写一个脚本来打开和关闭 LED。
首先创建一个可以保存 Node.js 脚本的目录:
pi@w3demopi:~ $ mkdir nodetest
转到我们的新目录:
pi@w3demopi:~ $ cd nodetest
现在我们将创建一个名为“blink.js
“使用 Nano 编辑器:
pi@w3demopi:~ $ nano blink.js
该文件现已打开,可以使用内置的 Nano 编辑器进行编辑。
编写或粘贴以下代码:
var Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
var LED = new Gpio(4, 'out'); //use GPIO pin 4, and specify that it is output
var blinkInterval = setInterval(blinkLED, 250); //run the blinkLED function every 250ms
function blinkLED() { //function to start blinking
if (LED.readSync() === 0) { //check the pin state, if the state is 0 (or off)
LED.writeSync(1); //set pin state to 1 (turn LED on)
} else {
LED.writeSync(0); //set pin state to 0 (turn LED off)
}
}
function endBlink() { //function to stop blinking
clearInterval(blinkInterval); // Stop blink intervals
LED.writeSync(0); // Turn LED off
LED.unexport(); // Unexport GPIO to free resources
}
setTimeout(endBlink, 5000); //stop blinking after 5 seconds
按下Ctrl+x
保存代码。确认使用 "y
",并确认名称使用 "Enter
"。
运行代码:
pi@w3demopi:~ $ node blink.js
现在,LED 应闪烁 5 秒(10 次),然后再次关闭!
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!