Arduino + Android: Kommunizieren Sie mit einem JY-MCU-Modul

Ich versuche, eine LED mit meinem Android-Gerät über ein Bluetooth-Modul (JY-MCU V1.05) ein- und auszuschalten. Ich kann mich mit dem Schlüssel „1234“ mit dem Modul verbinden, aber wenn ich einen Befehl an das Modul sende die „Bluetooth Terminal“ app, gibt es keine antwort, keine aktion von der LED.

Hier meine Anlage:

http://uppix.net/HOIKli.png

Hier ist der Arduino-Code:

char val;         
int ledpin = 13;  

void setup()
{
  pinMode(ledpin = 13, OUTPUT);       
  Serial.begin(115200);               
}

void loop() {
  if( Serial.available() )            
  {                               
  val = Serial.read();                

  if( val == '0' )                    
  {
    digitalWrite(ledpin, LOW);        
    delay(1000);                      
    Serial.println("13 off");         
  }

if( val == '1' )                      
 {
    digitalWrite(ledpin = 13, HIGH);  
    delay(1000);                     
    Serial.println("13 on");          
  }
 }
}

(Auch mit einer Seriennummer von 9600 versucht)

Irgendeine Idee, warum ich nicht mit dem Arduino kommunizieren kann?

Ich habe Ihr Foto gerade zugeschnitten und eingefügt, obwohl ein Schema viel klarer wäre. Sie können entweder den Editor vor Ort verwenden, indem Sie Strg-M drücken, oder ein anderes Bild posten, und jemand kann es einfügen.
if( Serial.available() ) {;}sieht nicht richtig aus...

Antworten (2)

Ein paar Probleme die ich sehe sind:

  • Die JY-MCU scheint ein 3,3-V-Gerät zu sein, und Sie haben es mit VIN5 V verbunden. Versuchen Sie, eine Verbindung mit der 3V3Leitung herzustellen, beachten Sie jedoch, dass dies nur verfügbar ist, wenn es mit USB-Strom betrieben wird, da es vom FTDI-USB-Chip geliefert wird.

  • Zuvor habe ich jedoch Hinweise darauf gefunden, dass keine 5-V-toleranten seriellen Leitungen vorhanden sind, und eine Empfehlung gefunden, einen Spannungsteiler zu verwenden, indem ein 2,2-kΩ-Widerstand von der TX-Leitung des Ardunio an Masse und ein 1-kΩ-Widerstand zwischen der TX-Leitung in Reihe geschaltet wird auf dem Arduino und der RX-Leitung auf dem Modul. Das war Teil eines Erfolgs mit dem JY-MCU (linvor) Bluetooth-Modul Instructable, das Sie vielleicht auch lesen möchten.

  • Die Standardgeschwindigkeit scheint 9600 BPS zu sein, also bleiben Sie im Moment dabei.

Und ein paar Empfehlungen, die wahrscheinlich nicht Ihr Problem sind, aber eine Änderung wert sind:

  • Sie haben keinen Strombegrenzungswiderstand in Reihe mit Ihrer LED. Siehe Frage Richtige Formel für LED-Strombegrenzungswiderstand?

  • Lassen Sie es nur ledpin = 13in der Nähe der obersten Zeile, wo es deklariert ist, und entfernen Sie es aus den Aufrufen von digitalWrite. Es macht keinen funktionalen Unterschied, es ist nur eine gute Angewohnheit, denn wenn Sie den Stift ändern, müssen Sie dies im Moment an mehreren Stellen tun, wenn dies nicht erforderlich ist, und können dies vergessen.

Hast du den USB am Arduino angeschlossen? Ich glaube (zumindest beim Uno), dass die Pins 0 und 1 blockiert sind, wenn der USB-Anschluss angeschlossen ist, also habe ich die SoftSerial-Bibliothek verwendet , um andere digitale I/O-Pins als Rx und Tx zu verwenden.

Sie können definitiv kompilieren, aber der Code wird nicht ausgeführt.
Sie müssen nicht jede Seriennummer in mySerial ändern. In Ihrem Code druckt serial.println() auf die Konsole, nicht auf den Tx-Pin. Sie müssen also Ihre Befehle digitalWrite() und digitalRead() durch mySerial read und write ersetzen.