Arduino-Programmbeispiel mit RFM75-Empfänger zur Anzeige des Empfangspegels?

Antwort

Ein einfaches Arduino-Programm, das mit einem RFM75-Modul als Empfänger arbeitet und den Empfangspegel (RSSI) anzeigt, ist leider nicht direkt möglich, da das RFM75-Modul keinen RSSI-Wert (Received Signal Strength Indicator) ausgeben kann. Das RFM75 ist ein kostengünstiges 2,4-GHz-Funkmodul, das kompatibel zum nRF24L01 ist, aber im Gegensatz zu vielen anderen Funkmodulen bietet es keinen Zugriff auf den aktuellen Empfangspegel. **Was ist möglich?** Du kannst mit dem RFM75 empfangene Daten anzeigen, aber keinen echten Empfangspegel. Manche Nutzer versuchen, die Empfangsqualität indirekt zu bestimmen, z.B. durch die Anzahl erfolgreicher/fehlgeschlagener Übertragungen. **Beispiel: Empfangene Daten und Paketverluste anzeigen** ```cpp #include <SPI.h> #include <RF24.h> // CE und CSN Pins anpassen! RF24 radio(9, 10); const byte address[6] = "00001"; unsigned long empfangenePakete = 0; unsigned long fehlerPakete = 0; void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_LOW); radio.startListening(); } void loop() { if (radio.available()) { char text[32] = {0}; bool done = false; while (radio.available()) { radio.read(&text, sizeof(text)); empfangenePakete++; Serial.print("Empfangen: "); Serial.println(text); } } else { // Kein Paket empfangen, könnte als "Verlust" gewertet werden fehlerPakete++; } // Alle 5 Sekunden Statistik ausgeben static unsigned long lastPrint = 0; if (millis() - lastPrint > 5000) { Serial.print("Empfangene Pakete: "); Serial.println(empfangenePakete); Serial.print("Fehlerhafte/Verlorene Pakete: "); Serial.println(fehlerPakete); lastPrint = millis(); } } ``` **Hinweis:** - Das Beispiel nutzt die [RF24 Arduino Library](https://github.com/nRF24/RF24). - Der "Empfangspegel" wird hier als Verhältnis empfangener zu verlorenen Paketen dargestellt, da das RFM75 keinen echten RSSI liefert. - Für echten RSSI benötigst du ein anderes Modul, z.B. das [nRF24L01+ mit RSSI-Modifikation](https://www.nordicsemi.com/products/nrf24l01) oder ein [CC1101](https://www.ti.com/product/CC1101). **Weitere Infos zum RFM75:** - [Datenblatt RFM75](https://www.hoperf.com/modules/rf_transceiver/RFM75.html) - [RF24 Library](https://tmrh20.github.io/RF24/) Falls du ein Modul mit echter RSSI-Ausgabe suchst, wäre z.B. das [CC1101](https://www.ti.com/product/CC1101) eine Alternative.

KI fragen

Verwandte Fragen

Wie kann man mit einem Arduino Uno Daten über eine RS485-Kopplung empfangen und ins Modbus-Protokoll konvertieren?

Um Daten über eine RS485-Kopplung mit einem Arduino Uno zu empfangen und ins Modbus-Protokoll zu konvertieren, sind folgende Schritte notwendig: **1. Hardware:** - **RS485-zu-TTL-Konverter:** Zu... [mehr]

Arduino Stream in String umwandeln?

Um Daten von einem Arduino-Stream in einen String zu konvertieren, kannst du die `String`-Klasse verwenden. Hier ist ein einfaches Beispiel, wie du das machen kannst: ```cpp #include <Arduino.h>... [mehr]

Kann an den analogen Eingängen des Arduino Boards eine Spannung von 0,007 V gemessen werden?

Ja, an den analogen Eingängen eines Arduino-Boards kann eine Spannung von 0,007 V (7 mV) gemessen werden. Die analogen Eingänge des Arduino sind in der Lage, Spannungen im Bereich von 0 bis... [mehr]