मैंने एक प्रोग्राम बनाया है जो मेरे Arduino को डेटा भेजता है जो पता लगाता है कि क्या भेजा गया था और फिर कुंजी पिन दबाए जाने के बाद सही पिन चालू करता है।सीरियल पोर्ट काम नहीं कर रहा है?
मेरी खिड़कियां कंप्यूटर से Arduino सॉफ्टवेयर arduino स्केच ठीक काम करता है का उपयोग कर, मैं प्रत्येक पिन मोड़ पर और बंद या तो किया गया था या भेजने डी
द्वारा जब arduino चमक पर नोड के माध्यम से भेजने RX प्रकाश कर सकते हैं लेकिन कुछ और नहीं होता है।
क्या कोई मदद कर सकता है?
Node.js कार्यक्रम:
var httpServer = require('http').createServer(function(req, response){ /* Serve your static files */ })
httpServer.listen(8080);
var nowjs = require("now");
var everyone = nowjs.initialize(httpServer);
everyone.now.logStuff = function(msg){
console.log(msg);
}
var SerialPort = require('serialport2').SerialPort;
var assert = require('assert');
var portName;
if (process.platform == 'win32') {
portName = 'COM4';
} else if (process.platform == 'darwin') {
portName = '/dev/cu.usbserial-A800eFN5';
} else {
portName = '/dev/ttyUSB0';
}
var readData = '';
var sp = new SerialPort();
sp.on('close', function (err) {
console.log('port closed');
});
sp.on('error', function (err) {
console.error("error", err);
});
sp.on('open', function() {
console.log('port opened... Press reset on the Arduino.');
});
sp.open(portName, {
baudRate: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: false
});
everyone.now.forward = function() {
sp.write("w");
}
everyone.now.back = function() {
sp.write("s");
}
everyone.now.left = function() {
sp.write("a");
}
everyone.now.right = function() {
sp.write("d");
}
sp.on('data', function(data) {
console.log(data.toString());
});
Arduino कार्यक्रम:
void setup(){
Serial.begin(9600);
Serial.write("READY");
//Set all the pins we need to output pins
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop(){
if (Serial.available() > 0) {
//read serial as a character
char ser = Serial.read();
Serial.write(ser);
//NOTE because the serial is read as "char" and not "int", the read value must be compared to character numbers
//hence the quotes around the numbers in the case statement
switch (ser) {
case 'w':
move(8);
break;
case 's':
move(9);
break;
case 'a':
move(10);
break;
case 'q':
move(10);
move(8);
break;
case 'd':
move(11);
break;
case 'e':
move(11);
move(8);
break;
}
}
}
void move(int pin){
Serial.print(pin);
digitalWrite(pin, HIGH);
delay(1);
digitalWrite(pin, LOW);
}
अद्यतन, इसके दिखने से Arduino उपलब्ध सीरियल पोर्ट का पता नहीं लगा रहा है। मुझे नहीं पता कि इससे मदद मिलती है या नहीं। –
मेरा पहला विचार यह है कि सीरियल पोर्ट का पता लगाया गया है और काम कर रहा है (फ्लैशिंग के कारण)। मेरा अनुमान भेजने के अंत में है। "ComEmulDrv3" googling का प्रयास करें। यह आपको एक आभासी कॉम्पोरेट स्थापित करने देता है जिससे आप यह सत्यापित कर सकें कि आप क्या भेज रहे हैं। देखने के लिए चीजें चरित्र एन्कोडिंग और सफेद जगह शामिल हैं। – cstrutton