npm gpio 初始化 gpio 引脚值错误
npm gpio wrong initialized gpio pin value
我正在使用这个 gpio library 来读取 gpio 引脚的值。这是我用来初始化和读取 gpio 引脚的代码:
var gpio38 = gpio.export(38, {
direction: gpio.DIRECTION.IN,
interval: 200
});
gpio38.on("change", function(val) {
if(val == 1)
console.log("high")
else {
console.log("low")
}
});
console.log(gpio38.value); //this is where the problem is
从代码中可以看出,gpio引脚设置为输入,会根据物理开关变化。 change
功能完美运行,当开关打开时将打印 high
,关闭时将打印 off
。
我遇到的问题是,当我尝试在初始化后立即打印 gpio38
的值时,当我打开开关时,它总是读取 0,即使那个值的值gpio 引脚为 1(通过读取引脚电压和 Linux 文件系统确认)。
如何读取引脚的正确值?
为了解决这个问题,我最终走出了图书馆,在我的代码中使用了 Linux 命令来确保 GPIO 引脚被导出。我还在初始启动时读取了导出的 GPIO 文件的 value
文件以查看值,然后让库在引脚值更改中工作:
exec('echo 38 > /sys/class/gpio/export');
exec('echo 36 > /sys/class/gpio/export');
var pin38_value = parseInt(fs.readFileSync('/sys/class/gpio/gpio38/value', 'utf8'));
var pin36_value = parseInt(fs.readFileSync('/sys/class/gpio/gpio36/value', 'utf8'));
我正在使用这个 gpio library 来读取 gpio 引脚的值。这是我用来初始化和读取 gpio 引脚的代码:
var gpio38 = gpio.export(38, {
direction: gpio.DIRECTION.IN,
interval: 200
});
gpio38.on("change", function(val) {
if(val == 1)
console.log("high")
else {
console.log("low")
}
});
console.log(gpio38.value); //this is where the problem is
从代码中可以看出,gpio引脚设置为输入,会根据物理开关变化。 change
功能完美运行,当开关打开时将打印 high
,关闭时将打印 off
。
我遇到的问题是,当我尝试在初始化后立即打印 gpio38
的值时,当我打开开关时,它总是读取 0,即使那个值的值gpio 引脚为 1(通过读取引脚电压和 Linux 文件系统确认)。
如何读取引脚的正确值?
为了解决这个问题,我最终走出了图书馆,在我的代码中使用了 Linux 命令来确保 GPIO 引脚被导出。我还在初始启动时读取了导出的 GPIO 文件的 value
文件以查看值,然后让库在引脚值更改中工作:
exec('echo 38 > /sys/class/gpio/export');
exec('echo 36 > /sys/class/gpio/export');
var pin38_value = parseInt(fs.readFileSync('/sys/class/gpio/gpio38/value', 'utf8'));
var pin36_value = parseInt(fs.readFileSync('/sys/class/gpio/gpio36/value', 'utf8'));