Problem mit nrf24l01+

Hallo,
ich experimentiere seit gestern morgen, um eine Verbindung zwischen meinem uno und mega mit den billigen nrf24l01+ funkmodulen herzustellen.
Zuerst habe ich es mit der Rf 24 library probiert, hat aber nicht funktioniert. Seit heute morgen probiere ich es mit der mirf library.
Da kommt es zu einem Problem:
Ich schreib jetzt mal was ich im Serial Monitor sehen konnte chronologisch geordnet:
Mega: Finished Sending
Uno: Got Packet
Uno: Reply Sent
Mega: Timeout on response from server!
In dem Code vom Mega ist ein Abfrage für einen Schalter, wenn man diesen drückt, dann sendet der Mega nichts mehr und der uno empfängt nichts mehr. Das ist die Bestätigung, dass die Funkmodule nicht kaputt sind( hab auch schon andere eingesetzt und passiert das gleiche)

Uno

/**
 * An Mirf example which copies back the data it recives.
 *
 * Pins:
 * Hardware SPI:
 * MISO -> 12
 * MOSI -> 11
 * SCK -> 13
 *
 * Configurable:
 * CE -> 8
 * CSN -> 7
 *
 */

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

void setup(){
  Serial.begin(9600);
 
  /*
   * Set the SPI Driver.
   */
  
  //Mirf.channel = 2;
  //Mirf.config();



  Mirf.spi = &MirfHardwareSpi;
  
  Mirf.cePin = 9;
  Mirf.csnPin = 8;
   
  Mirf.init();
  
  /*
   * Configure reciving address.
   */
   
   
  Mirf.setRADDR((byte *)"serv1");
  
  /*
   * Set the payload length to sizeof(unsigned long) the
   * return type of millis().
   *
   * NB: payload on client and server must be the same.
   */
   
  Mirf.payload = sizeof(unsigned long);
  
  Mirf.channel = 33;
   
  Mirf.config();
  
  Serial.println("Listening..."); 
}

void loop(){
  /*
   * A buffer to store the data.
   */
   
  byte data[Mirf.payload];
  
  /*
   * If a packet has been recived.
   *
   * isSending also restores listening mode when it 
   * transitions from true to false.
   */
   
  if(!Mirf.isSending() && Mirf.dataReady()){
    Serial.println("Got packet");
    
    /*
     * Get load the packet into the buffer.
     */
     
    Mirf.getData(data);
    
    /*
     * Set the send address.
     */
     
     
    Mirf.setTADDR((byte *)"clie1");
    
    /*
     * Send the data back to the client.
     */
     
    Mirf.send(data);
    
    /*
     * Wait untill sending has finished
     *
     * NB: isSending returns the chip to receving after returning true.
     */
      
    Serial.println("Reply sent.");
  }
}

Mega:

/**
 * A Mirf example to test the latency between two Ardunio.
 *
 * Pins:
 * Hardware SPI:
 * MISO -> 12
 * MOSI -> 11
 * SCK -> 13
 *
 * Configurable:
 * CE -> 8
 * CSN -> 7
 *
 * Note: To see best case latency comment out all Serial.println
 * statements not displaying the result and load 
 * 'ping_server_interupt' on the server.
 */

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

void setup(){
  Serial.begin(9600);
  /*
   * Setup pins / SPI.
   */
   
  /* To change CE / CSN Pins:
   * 
   * Mirf.csnPin = 9;
   * Mirf.cePin = 7;
   */

  
  Mirf.cePin = 48;
  Mirf.csnPin = 49;
  
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  
  /*
   * Configure reciving address.
   */
   
  Mirf.setRADDR((byte *)"clie1");
  
  /*
   * Set the payload length to sizeof(unsigned long) the
   * return type of millis().
   *
   * NB: payload on client and server must be the same.
   */
   
  Mirf.payload = sizeof(unsigned long);
  
  /*
   * Write channel and payload config then power up reciver.
   */
   

    Mirf.channel = 33;

   
  Mirf.config();
  
  Serial.println("Beginning ... "); 
}

void loop(){
  if(digitalRead(0)==HIGH){
  unsigned long time = millis();
  
  Mirf.setTADDR((byte *)"serv1");
  
  Mirf.send((byte *)&time);
  
  while(Mirf.isSending()){
  }
  Serial.println("Finished sending");
  delay(10);
  while(!Mirf.dataReady()){
    //Serial.println("Waiting");
    if ( ( millis() - time ) > 1000 ) {
      Serial.println("Timeout on response from server!");
      return;
    }
  }
  
  Mirf.getData((byte *) &time);
  
  Serial.print("Ping: ");
  Serial.println((millis() - time));
  
  delay(1000);
  }}

die Module reagieren EXTREM empfindlich auf Spannungsschwankungen.
Am besten und stabilsten laufen Sie, wenn du einen 100nF Kondensator (Elko oder nochbesser Kerko) direkt unten auf Spannnungsversorgungspins des nRF lötest.

Danach sind alle meine seltsamen (und sehr ähnlichen) Probleme weg gewesen.

ok danke,
ich werds versuchen. muss aber erstmal einen 100nf kondensator finden