Me gustaría controlar mi robot Arduino con Node.js y un joystick, pero serialport.write no envía ningún dato a Arduino. He intentado usar código sin joystick y funciona pero solo con un serial.write .
¿Hay un error en mi código?
codigo arduino:
String data = Serial.readString(); Serial.println(data); if(data=="2") { //motor1 }Nodo.js
var hid = require('node-hid'); var SerialPort = require("serialport").SerialPort var serialPort = new SerialPort('COM3', { baudrate: 9600 }); serialPort.on("open", function() { console.log('open'); function sentData(data) { console.log(data); if (data == 0) setTimeout(function() { serialPort.write('1') }, 2000); else if (data > 999) setTimeout(function() { serialPort.write('2') }, 2000); } var device = new hid.HID(1133, 49685); device.on('data', function(buf) { var ch = buf.toString('hex').match(/.{1,2}/g).map(function(c) { return parseInt(c, 16); }); var position = ((ch[2] & 0x0f) << 6) + ((ch[1] & 0xfc) >> 2); position = parseInt(position);sentData(position); }); });El código de arduino debería verse así:
String data = ''; while(Serial.available() > 0) { data = data + Serial.read(); } Serial.println(data); if(data == "2") { //code }Pero, lo siento, no puedo ver si hay un problema en tu node.js