RFM12 Arduino Mega2560 und Arduino Nano

Hallo Arduino Forum,

ich bin Student im Bereich Angewandte Informatik und habe eine Studienarbeit bekommen, die leider ziemlich viel Wissen im Bereich der Elektrotechnik verlangt(für meine Wissensverhältnisse)!

Ziel ist folgendes:

Ein Arduino 2560 soll Mithilfe eines RFM12(433MHz) Funkmodules mit einem Arduino Nano (ebenfalls mit einem RFM12) ausgestattet kommunizieren!
An dem Arduino Mega 2560 hängt noch ein Servo und ein LCD Display, der Servo soll dann entsprechend gesteuert werden!

Ich hänge nun seit knapp 2 Wochen an dem Problem, keine Verbindung aufbauen zu können... und ich kann noch so viel Googeln leider bekomme ich es nicht hin -_-

Hier mal mein Setup:

Arduino Mega 2560

RFM12 -> Arduino Mega 2560
SDO -> Digital PIN 50: MISO
nIRQ -> RX0
FSK/DATA wurde mit 10kOhm Widerstand an VDD gelötet
GND -> GND
nSEL -> Digital PIN 53: SS
SCK -> Digital PIN 52: SCK
SDI -> Digital PIN 51: MOSI
VDD -> 5V
ANT 6cm langer Draht
nRES,CLK,VDIDCLK wurden nicht angeschlossen (Pin Belegung von diversen Seiten von Google)

Arduino Nano

RFM12 -> Arduino Nano
SDO -> ICSP: MISO
nIRQ -> RX0
FSK/DATA wurde mit 10kOhm Widerstand an VDD gelötet
GND -> GND
nSEL -> kein PIN bei Nano gefunden
SCK -> ICSP:SCK
SDI -> ICSP: MOSI
VDD -> 5V
ANT 6cm langer Draht
nRES,CLK,VDIDCLK wurden nicht angeschlossen (Pin Belegung von diversen Seiten von Google)

Auf beiden Arudinos wurde die RF12demo von JeeLib gespielt!
http://jeelabs.org/2009/02/10/rfm12b-library-for-arduino/

Ich habe dann auch entsprechend die Anweisungen auf der Seite befolgt aber konnte leider keine Nachrichten empfangen/senden!
Laut Console der Arduino IDE hat er die verschiedenen Konfigurationen (sofern ich sie geändert habe) auch gespeichert aber nichts hat funktioniert...

Meine Frage, habe ich etwas falsch angeschlossen oder etwas nicht beachtet?
Brauche dringend Hilfe da ich es alleine nicht hinbekomme...

Gibt es evtl. eine angenehmere Lösung wie über die RFM12 Funkmodule von pollin?
Der Arduino Nano samt Funkmodul und Lithium-Ionen Blockakku soll in einer kleinen Fernsteuerung verbaut werden weshalb ich bei dem Nano nicht so viel Platz habe und die RFM12 Module wie gerufen kamen!

Ich hoffe mir kann jemand helfen eine funktionierende Funkverbindung aufzubauen!

Vielen Dank im vorraus!!!

Gruß
cualalumpur

Ohne nSEL funktioniert die SPI- Schnittstelle nicht.
Grüße Uwe

In der Pinbelegung vom Nano habe ich keinen Pin gefunden für den SEL, kann ich dafür jeden beliebigen nehmen?

Danke schonmal für die Antwort!

Im Gegensatz zu MISO, MOSI und SCK ist Sel nicht hardwaremäßig festgelegt. Du kannst also einen beliebigen Pin nehmen.
Falls Du die RF12 Library verwenden solltest: da liegt für den ATmega 328 SPI_SS auf Pin 10.

Hallo,

als Ausweg würde ich die nRF24l01 empfehlen. Habe jetzt ne Weile damit experimentiert, Verbindung zwischen zwei UNO
klappt auch sehr gut. Übertragung von 5 Temperaturen in Form von CHAR und Rückumwandlung beim Empfänger geht auch
bestens.

Gruss Kalli

Also deine Antenne ist für die 433 MHz Module viel zu kurz. Nimm mal 17cm, dass sollte die Kommunikation schon mal erheblich verbessern.

Ich vermute mal, dass er zum testen die Module in einem geringen Abstand zueinander hat. Da dürfte die Antennenlänge ziemlich egal sein.
Haupttäter ist erstmal die fehlende SEL Verbindung am Nano, das muss er erst mal korrigieren. Wenns dann immer noch nicht geht, kann man weiter spekulieren.

@cualalumpur
Wenn Du die Jeelib Bibliothek nimmst, solltest Du PIN 10 am Nano für SEL verwenden. Der ist in der Bibliothek für den ATmega 328 eingetragen. Zudem verwendet die Bibliothek sowohl beim 2560 als auch beim 328 Pin 2 für IRQ. Diese Infos findest Du in der RF12.cpp.
Wenn das alles richtig verdrahtet ist, sollte es eigentlich problemlos funktionieren. Bei mir funken die RFM12 einwandfrei.

Vielen Dank schonmal für die Antworten!!

Ja die Antennenspitzen sind in einem Abstand von 1-2cm, das dürfte für Tests reichen!

Ich werde nachher die Steckverbindungen von nIRQ und SEL entsprechend ändern, wie vorgeschlagen!
Werde mich dann wieder melden ob es funktioniert hat :slight_smile:

Danke!

Gruß
cualalumpur

so ich hab das heut mal getestet aber leider hat es nicht funktioniert ... so langsam verzweifel ich -_-

wenn ich den Nano mit der geänderten PIN-Belegung anschließe, dann kommt in meinem Serial Monitor folgendes:

Available commands:
  <nn> i     - set node ID (standard node ids are 1..26)
               (or enter an uppercase 'A'..'Z' to set id)
  <n> b      - set MHz band (4 = 433, 8 = 868, 9 = 915)
  <nnn> g    - set network group (RFM12 only allows 212, 0 = any)
  <n> c      - set collect mode (advanced, normally 0)
  t          - broadcast max-size test packet, with ack
  ...,<nn> a - send data packet to node <nn>, with ack
  ...,<nn> s - send data packet to node <nn>, no ack
  <n> l      - turn activity LED on PB1 on or off
  <n> q      - set quiet mode (1 = don't report bad packets)
  123 z      - total power down, needs a reset to start up again
Remote control commands:
  <hchi>,<hclo>,<addr>,<cmd> f     - FS20 command (868 MHz)
  <addr>,<dev>,<on> k              - KAKU command (433 MHz)
Current configuration:
 A i1* g212 @ 433 MHz

und ich kann entsprechend Kommandos ausführen!

Wenn ich das gleiche mit dem Arduino Mega mache bekomme ich nur

[RF12]

als Meldung auf dem Serial Monitor, sobald ich aber den nIRQ am Arduino Mega trenne, dann bekomme ich den selben Text wie beim Nano!

Was kann ich noch machen um das Projekt baldig zum Erfolg zu führen?

Vielen Dank!

Gruß
cualalumpur

Ich hab hier alles mögliche rumliegen, aber keinen Mega. Daher werd ich wohl nicht mehr viel weiterhelfen können.
Hast Du Deine Beschaltung am Mega mit den Werten in der RF12.cpp verglichen?

Genau das gleiche Problem hatte ich auch, war aber in Verbindung mit dem Ethernet-Shield. Ich kann heute Abend zuhause nochmals schauen, ob ich mir hierzu Notizen gemacht hatte, das Problem war aber glaube ich dass das Ethernet-Shield auch den IRQ 2 genutzt hatte. Ich habe es aber nicht hinbekommen, die IRQ-Zuweisung für das RFM-Modul zu ändern. Ich glaube über die RF12-Library ging das nur für den UNO und hat mit dem Mega nicht geklappt.

Ich hab mir letztendlich dann somit beholfen, dass ich einen separaten Atmega328 als RF-Empfänger genommen habe (Jeenode), welcher die empfangenen Daten dann über I²C an den Mega weiterreicht. Läuft seit ein paar Tagen problemlos und bietet somit neue Möglichkeiten :smiley: