Aruino uno & nrf24l01+ & Arduino Nano

Kenn Jemand ein Funktionierendes Aktuelles Tutorial zu “Aruino uno & nrf24l01+ & Arduino Nano”

Dies hier:LinkFunktioniert ja nicht mehr richtig.
Die Kommunikation steht nun,
Jetzt möchte ich gerne ein “Hallo” senden, dies beim Reciver mit printf ausgeben und ein ok zurücksenden und ebenfalls ausgeben:s kann mir da jemand helfen?:s

schnibli:
Dies hier: Link Funktioniert ja nicht mehr richtig.

Ach ja ?
Was heisst "nicht mehr" ?, was heisst "nicht richtig" ?

Da fehlt ein Kondensator am Modul.
10µF direkt am Modul können Wunder bewirken.

Wo hin soll der genau ? 3V3 und? :slight_smile:

Genau!
Der soll die Versorgungsspannung stützen.

3,3V und Masse. Manche Quellen sagen 100n KerKo, andere 10µ Elko. Ich habe beides und es hat auf Anhieb geklappt. Und ich habe es mit einem Uno und einem Duemilanove nur mit den Steckbrettstrippen frei fliegend aufgebaut. Die Kondensatoren habe ich unmittelbar auf dem Transcivermodul von unten auf die Lötaugen der Steckleiste gepappt.

Eine kleiner Kerko ist schon auf dem Ding montiert.
Ein zweiter kann helfen, muss aber nicht.

Bei mir half es nicht.
Mit einem 10µF Elko war es sofort stabil.

ich hab bei mir gerade ein 22µF 50elko herumliegen, kann ich den verwenden? Ich denke jetzt mal beim nano und beim uno soll ich das machen :slight_smile:

Der genaue Wert ist nebensächlich. Nimm das, was im Sortiment so anfällt :wink:

So, Die Kommunikation steht nun.

Ich habe noch ein kleines Problem, ich würde gerne das Byte counter setzten--->

void loop(void) {



  bool up = digitalRead(6);  // store current state of pin 12
  bool down = digitalRead(7);  // store current state of pin 12
  bool slow = digitalRead(8);  // store current state of pin 12

  if (up == LOW && slow == HIGH) {
    byte counter = 101;
    printf("Auf");
  }
  else if (down == LOW && slow == HIGH) {
    byte counter = 102;
    printf("Ab");
  }
  else if (slow == LOW && up == LOW) {
    byte counter = 103;
    printf("Schnell Auf");
  }
  else if (slow == LOW && up == LOW) {
    byte counter = 104;
    printf("Schnell Ab");
  }
  else {
    byte counter = 105;
    printf("Funk1");
  }
}

  if (role == role_ping_out) {                              // Radio is in ping mode

    byte gotByte;                                           // Initialize a variable for the incoming response

    radio.stopListening();                                  // First, stop listening so we can talk.
    printf("Sendet: ", counter);         // Use a simple byte counter as payload
    unsigned long time = micros();                          // Record the current microsecond count

    if ( radio.write(&counter, 1) ) {                       // Send the counter variable to the other radio
      if (!radio.available()) {                           // If nothing in the buffer, we got an ack but it is blank
        printf("Got blank response. round-trip delay: %lu microseconds\n\r", micros() - time);
      } else {
        while (radio.available() ) {                    // If an ack with payload was received
          radio.read( &gotByte, 1 );                  // Read it, and display the response time
          printf("Got response %d, round-trip delay: %lu microseconds\n\r", gotByte, micros() - time);
          // Increment the counter variable
        }
      }

    } else {
      printf("Sending failed.\n\r");  // If no ack response, sending failed
    }

    delay(250);  // Try again later
  }

Jedoch wird das counter byte für das senden nicht gesetzt. ( die Tastenbefehle Funktionieren, da ich diese mit printf kontrolliere :slight_smile: