#include "RF24.h" #include "printf.h" RF24 radio(9, 10); uint8_t addrWR[5] = {}; uint8_t addrDTU[5] = {0x32, 0x88, 0x81, 0x72, 0x01}; uint8_t data[32]; uint8_t receive_payload[32]; uint8_t datalen = 0; void dump(char * was, uint8_t * data, int len) { //============================================== Serial.print (was); for (byte i = 0; i < len; i++) { Serial.print(data[i], HEX); Serial.print(' '); } Serial.println(); } void tele7 () { //============= memset (data, 0, 32); data[0] = 0x07; data[10] = 0x07; datalen = 11; } void setup(void){ Serial.begin(9600); printf_begin(); radio.begin(); radio.setAutoAck( false); radio.setPALevel(RF24_PA_MAX); radio.setChannel (3); radio.setDataRate (RF24_250KBPS); radio.openWritingPipe(addrDTU); radio.openReadingPipe(1, addrDTU); // using pipe 1 //radio.enableDynamicPayloads(); //radio.enableDynamicAck(); radio.setCRCLength(1); // Get into standby mode radio.startListening(); radio.stopListening(); radio.printDetails(); } boolean send() { radio.stopListening(); return radio.write(data, datalen); } uint8_t receive () { uint8_t pipe; radio.startListening(); if (radio.available(&pipe)) { // is there a payload? get the pipe number that recieved it uint8_t bytes = radio.getPayloadSize(); // get the size of the payload radio.read (receive_payload, bytes); // fetch payload from FIFO Serial.print(F("gelesen ")); Serial.print(bytes); // print the size of the payload Serial.print(F(" bytes auf Pipe ")); Serial.print(pipe); // print the pipe number return bytes; } return 0; } boolean replied = false; uint8_t step = 1; void loop() { //========= if (replied) return; if (step == 1) { tele7 (); dump ("send: ", data, datalen); if (!send()) Serial.println("Senden fehlg."); else { delay(1000); memset (receive_payload, 0, sizeof(receive_payload)); datalen = receive (); if (datalen) dump ("empf.:", receive_payload, datalen); else Serial.println ("keine Antwort vom WR!"); } } delay(1000); }