【问题标题】:npm gpio wrong initialized gpio pin valuenpm gpio 错误的初始化 gpio pin 值
【发布时间】:2021-08-17 12:58:24
【问题描述】:

我正在使用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 的值时,当我打开开关时,即使那个 gpio 引脚的值的值为 1,它也会始终读取 0 (通过读取管脚电压和Linux文件系统确认)。

如何读取引脚的正确值?

【问题讨论】:

    标签: node.js linux gpio


    【解决方案1】:

    为了解决这个问题,我最终走出了库,在我的代码中使用了 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'));
    

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      相关资源
      最近更新 更多