मेरा उद्देश्य एक पीसी और एक एंड्रॉइड डिवाइस के बीच एचसी-05 ब्लूटूथ मॉड्यूल का उपयोग कर संचार स्थापित करने के लिए Arduino का उपयोग करना है।Arduino: ब्लूटूथ मॉड्यूल के साथ सीरियल और सॉफ्टवेयर सीरियल का उपयोग
मैं पीसी और आर्डिनो (सीरियल मॉनिटर) और एचसी-05 से कनेक्ट करने के लिए एक सॉफ्टवेयर सर्जिकल के बीच यूएसबी संचार का उपयोग करता हूं।
मेरी समस्या यह है कि संचार बीटी से पीसी तक अच्छी तरह से काम करता है, लेकिन दूसरी तरफ अपेक्षित काम नहीं करता है। पीसी से बीटी में भेजते समय सभी पात्रों को बीटी डिवाइस द्वारा प्राप्त किया जाता है जब मैं पीसी पर सीरियल मॉनीटर बंद करता हूं या जब मैं Arduino को रीसेट करता हूं।
मैंने बीटी मॉड्यूल या एंड्रॉइड एप्लिकेशन के साथ एक समस्या को छोड़ दिया है क्योंकि अगर Arduino में मैं एक "ईसीएचओ" कोड (एंड्रॉइड में लिखना और एंड्रॉइड में भेजना) लागू करता हूं तो सब कुछ ठीक काम करता है।
अपेक्षित व्यवहार से नीचे पोस्ट किए गए Arduino कोड के साथ: Arduino रीसेट-> हैलो शब्द भेजा गया है, सीरियल मॉनीटर खोला-> कुछ भी नहीं होता है, सीरियल मॉनिटर पर लिखा चरित्र-> बीटी पर प्राप्त चरित्र, बीटी-> चरित्र पर लिखा चरित्र सीरियल मॉनिटर पर प्राप्त, सीरियल मॉनीटर बंद-> कुछ भी नहीं होता है।
असली व्यवहार है: Arduino रीसेट-> हैलो शब्द भेजा गया है, सीरियल मॉनीटर खोला गया है-> पीसी पर बीटी और 1 ("शुभरात्रि") पर हैलो शब्द, धारावाहिक मॉनीटर पर लिखा चरित्र-> कुछ नहीं, बीटी पर लिखा चरित्र -> सीरियल मॉनिटर पर प्राप्त चरित्र, सीरियल मॉनीटर बंद-> सीरियल मॉनिटर में पिछले लिखित चरित्र प्राप्त + हैलो वर्ड।
मैं इस समस्या को कैसे ठीक कर सकता हूं?
कोड:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
int a=0;
char c;
char d;
void setup() {
Serial.begin(9600);
Serial.println("Goodnight moon!");
mySerial.begin(9600);
mySerial.println("Hello, world?");
}
void loop() {
delay(10);
if (Serial.available()) {
c=Serial.read();
delay(10);
Serial.write(c);
}
delay(10);
if (mySerial.available()) {
d=mySerial.read();
delay(10);
mySerial.write(d);
}
}
क्या आपने सॉफ़्टवेयर के लिए अलग-अलग पिन का उपयोग करने का प्रयास किया है? आप जिस बोर्ड का उपयोग कर रहे हैं उसके आधार पर सभी पिन समर्थित नहीं हैं: http://arduino.cc/en/Reference/SoftwareSerial – user2461391
आपके सुझाव के लिए धन्यवाद, मैं एक Arduino Uno का उपयोग कर रहा हूं इसलिए कोई समस्या नहीं होनी चाहिए लेकिन मैंने कोशिश की वैसे भी, वही परिणाम। ध्यान दें कि केवल बीटी कार्यों के माध्यम से भेजना और प्राप्त करना, समस्या तब होती है जब बीटी के साथ यूएसबी सीरियल पोर्ट पक्ष का उपयोग किया जाता है। – user2706612
क्या आपने अलग-अलग बाउड्रेट की कोशिश की है? क्या आप Arduino IDE में सही बंदरगाह का उपयोग कर रहे हैं? – ladislas