简介
node-wiring-pi 是一个基于 Node.js 的树莓派 GPIO (General Purpose Input/Output) 库,可用于操作 GPIO 引脚,控制电路或与其他设备通信。它支持数字和模拟输入输出,具有易于使用和灵活性的特点,很容易集成到您的 Node.js 项目中。
这篇文章将向您介绍如何使用 npm 包 node-wiring-pi 来操作树莓派 GPIO 引脚,包括安装、初始化、读取和写入数字/模拟信号等。
安装 node-wiring-pi
确保安装了 Node.js 和 wiringPi 库。要在 Raspbian 上安装 wiringPi,请运行以下命令:
sudo apt-get update sudo apt-get upgrade sudo apt-get install wiringpi
在命令行中运行以下命令安装 node-wiring-pi:
npm install wiring-pi
初始化 GPIO
在编写任何 GPIO 应用程序之前,需要初始化 GPIO 引脚。可以使用以下代码:
const wpi = require('wiring-pi'); wpi.setup('wpi');
在代码的第一行中,我们使用 require 语句引入了 node-wiring-pi 包,并将其保存在变量 wpi 中。在第二行中,我们调用 wpi 对象的 setup() 方法来初始化树莓派的 GPIO 引脚。该方法的参数确定了使用 BCM 或 wPi 引脚编号系统,这里使用了 wPi 系统。
读取数字输入
使用 node-wiring-pi 读取数字输入非常简单。我们可以使用 wpi.digitalRead() 方法读取 GPIO 引脚的输入状态。例如,要读取 GPIO2 引脚的状态,可以执行以下代码:
const wpi = require('wiring-pi'); wpi.setup('wpi'); const inputPin = 2; const value = wpi.digitalRead(inputPin);
在上面的代码中,我们首先初始化了 GPIO 引脚,然后定义了 inputPin 变量并将其设置为要读取的 GPIO 引脚号。最后,我们使用 wpi.digitalRead() 方法获取输入值并将其存储在 value 变量中。
写入数字输出
使用 node-wiring-pi 写入数字输出同样也很简单。可以使用 wpi.digitalWrite() 方法写入 GPIO 引脚的输出状态。例如,要将 GPIO3 引脚设置为高电平,可以执行以下代码:
const wpi = require('wiring-pi'); wpi.setup('wpi'); const outputPin = 3; const value = wpi.HIGH; wpi.digitalWrite(outputPin, value);
在上面的代码中,我们首先初始化了 GPIO 引脚,然后定义了 outputPin 变量并将其设置为要写入的 GPIO 引脚号。最后,我们使用 wpi.digitalWrite() 方法将输出值设置为 HIGH,即高电平。
读取模拟输入
使用 node-wiring-pi 读取模拟输入也很简单。可以使用 wpi.analogRead() 方法读取 GPIO 引脚的输入值。例如,要读取 ADC0 引脚的值,可以执行以下代码:
const wpi = require('wiring-pi'); wpi.setup('wpi'); const inputPin = 0; const value = wpi.analogRead(inputPin);
在上面的代码中,我们首先初始化了 GPIO 引脚,然后定义了 inputPin 变量并将其设置为要读取的 ADC 引脚号。最后,我们使用 wpi.analogRead() 方法获取输入值并将其存储在 value 变量中。
写入模拟输出
使用 node-wiring-pi 写入模拟输出也很简单。我们可以使用 wpi.analogWrite() 方法对模拟输出进行写操作。例如,要将 PWM0 引脚设置为 50% 的占空比,可以执行以下代码:
const wpi = require('wiring-pi'); wpi.setup('wpi'); const outputPin = 1; const value = 128; wpi.analogWrite(outputPin, value);
在上面的代码中,我们首先初始化了 GPIO 引脚,然后定义了 outputPin 变量并将其设置为要写入的 PWM 引脚号。最后,我们使用 wpi.analogWrite() 方法将占空比设置为 128,即 50%。
示例代码
下面是一个完整的示例代码,展示了如何使用 node-wiring-pi 读取 GPIO 输入、写入 GPIO 输出、读取 ADC 输入和写入 PWM 输出:
-- -------------------- ---- ------- ----- --- - --------------------- ----------------- ----- -------- - -- ----- --------- - -- ----- ----------- - -- ----- ------------ - -- -- ------ ----- ----- - -------------------------- ------------------- -- ------- -- ------ ----- ----- - --------- --------------------------- ------- -------------------- -- ------- -- ------ ----- ----------- - ---------------------------- ------------------- ------ -- ------------- -- ------ ----------------------------- ----- ---------------- ------- ------
结论
在此文中,我们介绍了如何使用 node-wiring-pi 包来操作树莓派 GPIO 引脚。我们演示了如何初始化 GPIO、读取数字/模拟输入、写入数字/模拟输出,并提供了相应的示例代码。
使用 node-wiring-pi,您可以轻松地将 GPIO 引脚集成到您的 Node.js 项目中,以连接和控制外部设备。因此它具有深度和学习的含义,可以指导开发者学习并应用树莓派上的 GPIO 引脚进行开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672513660cf7123b362d4