【问题标题】:Raspberry Pi Node.js GPIO control树莓派 Node.js GPIO 控制
【发布时间】:2019-12-04 21:52:17
【问题描述】:

我正在尝试从 RPI4 命令两个与 l298n 模块连接的电机。 这不适用于 node.js,但 python 中的相同脚本(某种移植)可以工作,因为电机运行。

Python 脚本:

import RPi.GPIO as GPIO
from time import sleep

in1 = 24
in2 = 23
en = 25

GPIO.setmode(GPIO.BCM)
GPIO.setup(in1,GPIO.OUT)
GPIO.setup(in2,GPIO.OUT)
GPIO.setup(en,GPIO.OUT)
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)
p=GPIO.PWM(en,1000)
p.start(25)

while(1):
    GPIO.output(in1,GPIO.HIGH)
    GPIO.output(in2,GPIO.LOW)

JS 脚本(可能没什么意思,用 sudo 启动):

var Gpio = require('pigpio').Gpio;

const in1 = new Gpio(24, {mode: Gpio.OUTPUT});
const in2 = new Gpio(23, {mode: Gpio.OUTPUT});
const en = new Gpio(25, {mode: Gpio.OUTPUT});

in1.digitalWrite(0);
in2.digitalWrite(0);
en.pwmWrite(255);
setTimeout(function(){ console.log("finish"); }, 10000);

pigpiod -v 给我版本 71

问题出在哪里? (PS:我从https://www.npmjs.com/package/motor-l298n开始,但当发现电机不工作时,我尝试直接使用pigpio)。该项目在 JS 中,所以 python 脚本只是为了检查事情是否有效。 谢谢

【问题讨论】:

    标签: node.js raspberry-pi gpio


    【解决方案1】:

    此代码有效:

    const Gpio = require('pigpio').Gpio;
    
    const in1 = new Gpio(24, {mode: Gpio.OUTPUT});
    const in2 = new Gpio(23, {mode: Gpio.OUTPUT});
    const en = new Gpio(25, {mode: Gpio.OUTPUT});
    
    let dutyCycle = 0;
    in1.digitalWrite(1);
        in2.digitalWrite(0);
    setInterval(() => {
        en.pwmWrite(dutyCycle);
    
    dutyCycle += 5;
    if (dutyCycle > 255) {
        dutyCycle = 0;
    }
    }, 20);
    

    所以我会努力的

    【讨论】:

      猜你喜欢
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2013-11-23
      • 1970-01-01
      相关资源
      最近更新 更多