Go Down

Topic: Arduinos über Bluetooth verbinden (Read 1 time) previous topic - next topic

Metal123

Mit der Version aus dem Link funktioniert es bei mir nun endlich auch vielen Dank für die schnelle Hilfe :D

MFG Metal123

Metal123

Aba jetzt hätt ich noch ne frage, kann man mit den beiden modulen:
http://www.exp-tech.de/Shields/RF-Link-Transmitter-434MHz-WRL-10534.html

http://www.exp-tech.de/Shields/RF-Link-Receiver-4800bps-434MHz.html

eine Wireless verbindung zwischen einem Arduino UNO und einem Arduino Mega2560 herstellen oder funktioniert das nicht.

jurs


Aba jetzt hätt ich noch ne frage, kann man mit den beiden modulen:
http://www.exp-tech.de/Shields/RF-Link-Transmitter-434MHz-WRL-10534.html

http://www.exp-tech.de/Shields/RF-Link-Receiver-4800bps-434MHz.html

eine Wireless verbindung zwischen einem Arduino UNO und einem Arduino Mega2560 herstellen oder funktioniert das nicht.


Mit einem Sender und einem Empfänger kannst Du eine Einbahnstraßen-Kommunikation aufbauen: Ein Board sendet Daten, das andere Board empfängt Daten.

Beispiele zum Beispiel unter
"Datei - Beispiele - VirtualWire - transmitter"
"Datei - Beispiele - VirtualWire - receiver"

Falls Du auf Seiten des Senders und Empfängers nicht die Default-Pins der Library verwenden möchtest (welche das sind steht in der Dokumentation oder im Library-Quellcode), sind folgende Funktionen hilfreich zum Setzen anderer Pins für die angeschlossenen Module:

#define RXPIN 2
Und im Setup:
vw_set_rx_pin(RXPIN);     

#define TXPIN 3
Und im Setup:
vw_set_tx_pin(TXPIN);

Oder so. Für eine Verbindung mit Rückkanal, also dass beide Boards senden und empfangen können, benötigst Du für jedes Board einen Sender und einen Empfänger.

uwefed


Oder so. Für eine Verbindung mit Rückkanal, also dass beide Boards senden und empfangen können, benötigst Du für jedes Board einen Sender und einen Empfänger.

Wobei sich der eine Sender nicht mit dem anderen Sender stören dürfen sprich verschiedene Frequenzen haben müssen. Alternative wären bidirezionale Module.
Grüße Uwe

jurs


Wobei sich der eine Sender nicht mit dem anderen Sender stören dürfen sprich verschiedene Frequenzen haben müssen.


Die Frequenz dieser Module ist fest bei 433,92 MHz.

Auf derselben Frequenz senden viele handelsübliche kabellose Temperatursensoren, Wetterstationen, Garagentoröffner, Babyphone, und vielerlei anderes. Die 433/434 MHz Frequenz ist eine stark genutzte Frequenz für Funkanwendungen kleiner Reichweite. Wie zuverlässig und mit welcher Reichweite eine Funkverbindung auf dieser Frequenz möglich ist, hängt stark von den lokalen Gegebenheiten ab und wie stark funkverseucht der Nahbereich mit ähnlichen Sendern auf derselben Frequenz bereits ist.

Das Senden und Empfangen  kann nicht zeitgleich erfolgen, weil sich dann die Funkaussendungen gegenseitig stören.

Aber man benötigt bei diesen Modulen natürlich keine verschiedenen Frequenzen, sondern zeitliches Multiplexing: Es darf eben nur ein Sender zur Zeit im Umkreis auf dieser Frequenz senden, damit er empfangen werden kann.

Metal123

So weiß jemand wieso ich bei diesem code:
Code: [Select]
 
  #include <VirtualWire.h>

void setup()
{
    Serial.begin(9600); // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000); // Bits per sec
    vw_set_rx_pin(0);
    vw_rx_start();       // Start the receiver PLL running

pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}

void loop()
{
 
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
 
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
int i;

        digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");

for (i = 0; i < buflen; i++)
{
    Serial.print(buf[i]);
        if(buf[i] == '1'){digitalWrite(8, HIGH);}
        if(buf[i] == '2'){digitalWrite(9, HIGH);}
        if(buf[i] == '3'){digitalWrite(10, HIGH);}
        if(buf[i] == '4'){digitalWrite(11, HIGH);}
    Serial.print(" ");
}
Serial.println("");
        digitalWrite(13, false);

   }
}


bei meinem Arduino Mega 2560 immer diesen Fehler erhalte:
Binäre Sketchgröße: 7.060 Bytes (von einem Maximum von 258.048 Bytes)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 21
   at processing.app.tools.DiscourseFormat.appendFormattedLine(DiscourseFormat.java:194)
   at processing.app.tools.DiscourseFormat.show(DiscourseFormat.java:99)
   at processing.app.Editor.handleDiscourseCopy(Editor.java:1688)
   at processing.app.Editor$TextAreaPopup$4.actionPerformed(Editor.java:2705)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
   at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
   at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
   at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)
   at java.awt.Component.processMouseEvent(Component.java:6263)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
   at java.awt.Component.processEvent(Component.java:6028)
   at java.awt.Container.processEvent(Container.java:2041)
   at java.awt.Component.dispatchEventImpl(Component.java:4630)
   at java.awt.Container.dispatchEventImpl(Container.java:2099)
   at java.awt.Component.dispatchEvent(Component.java:4460)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
   at java.awt.Container.dispatchEventImpl(Container.java:2085)
   at java.awt.Component.dispatchEvent(Component.java:4460)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 21
   at processing.app.tools.DiscourseFormat.appendFormattedLine(DiscourseFormat.java:194)
   at processing.app.tools.DiscourseFormat.show(DiscourseFormat.java:99)
   at processing.app.Editor.handleDiscourseCopy(Editor.java:1688)
   at processing.app.Editor$TextAreaPopup$4.actionPerformed(Editor.java:2705)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
   at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
   at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
   at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)
   at java.awt.Component.processMouseEvent(Component.java:6263)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
   at java.awt.Component.processEvent(Component.java:6028)
   at java.awt.Container.processEvent(Container.java:2041)
   at java.awt.Component.dispatchEventImpl(Component.java:4630)
   at java.awt.Container.dispatchEventImpl(Container.java:2099)
   at java.awt.Component.dispatchEvent(Component.java:4460)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
   at java.awt.Container.dispatchEventImpl(Container.java:2085)
   at java.awt.Component.dispatchEvent(Component.java:4460)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

der code ist als beispielcode bei einem RF Link Transmitter mit angegeben: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/General/RFASK_Example_Code.pde

das einzigste das ich verändert habe ist, dass ich den ausdruck "vw_set_rx_pin(2);" von 2 auf 0 geändert habe danach bekahm ich den fehler.
kann mir da jemand helfen
MFG Metal123

michael_x

Der Code ist nicht das Problem, er liess sich ja übersetzen.

Irgendwas mit der Seriellen Schnittstelle zum Hochladen stimmt nicht...

Quote
"AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 21


Kann es sein dass du mit COM21 arbeiten willst, die es gar nicht (mehr) gibt ?


Go Up