Arduino Uno 2.4 GHZ RLF24L01

Mein Arduino uno hänt sich immer auf wenn ich bei diesem Code:

// here we can send up to 30 chars
char SendTemp[31] = "test.test1.org";
char Tempeinh[5] = "t2:";
char SendHum[31] = "test.test1.org";
char Humeinh[5] = "h2:";

  dtostrf(sensors.getTempCByIndex(0),2,2,SendTemp);
 // strcat(Tempeinh, SendTemp);   // add first string
  radio.stopListening();
  ok = radio.write(&SendTemp,strlen(SendTemp));
   
  
  ok = "";
  dtostrf(sensors.getTempCByIndex(0),2,2,SendHum);
//  strcat(Humeinh, SendHum);
  ok = radio.write(&Humeinh,strlen(Humeinh));

dieses Hier:

// strcat(Tempeinh, SendTemp);

Wieder hinzufüge.
Kann mir jemand helfen :slight_smile:

Wie wäre es wenn du den aufnehmenden String so groß machst,
dass das verkettete Ergebnis auch hineinpasst?

Das wäre dann wie groß?

Das währen eine Dezimal zahl = 20.90 = 5 und die t2: währne nochmals 3 oder?

Und was ist mit dem ‘\0’ am Ende?

Also zusammen indemfall 10…

Jedoch habe ich immernoch das Problem das sich das Programm aufhängt :s

So wenn ich das rnf24 Modul über den RPI 3.3V speise funktiniert es, wie krieg ich nun meinen Arduino uno dazu dass ich mehr Power auf dem 3.3V anschluss habe :slight_smile:

Funktioniert es nicht besser, wenn der String lang genug ist? :wink:

Ich würde das Problem anders angehen:

const char TempHdr[] PROGMEM = "t2:";
const char HumiHdr[] PROGMEM = "h2:";

char SendBuffer[33];  // erlaubt maximale Paketlänge für den NRF

void setup() {
  Serial.begin(250000);

  strcpy_P(SendBuffer, TempHdr);
  dtostrf(22.3, 3, 1, SendBuffer + strlen(SendBuffer));
  printErgebnis(SendBuffer);

  strcpy_P(SendBuffer, HumiHdr);
  dtostrf(75.3, 3, 1, SendBuffer + strlen(SendBuffer));
  printErgebnis(SendBuffer);
}
void printErgebnis(const char* buff) {
  Serial.print(F("Ergibt \""));
  Serial.print(buff);
  Serial.println(F("\""));
}
void loop() {}
Ergibt "t2:22.3"
Ergibt "h2:75.3"

Kannst du die Luftfeuchtigkeit und Temperatur wirklich auf zwei Nachkommastellen messen?
Womit machst du das?

Mein Beispiel verwendet eine (immer noch optimistische) Nachkommastelle.

schnibli:
wie krieg ich nun meinen Arduino uno dazu dass ich mehr Power auf dem 3.3V anschluss habe :slight_smile:

Mehr Power grundsätzlich nur mit einem extra 3.3V Spannungsregler.
Es gibt auch Module für den NRF mit Spannungsregler.

Vielleicht reicht es aber auch einen 2-10 µF Kondensator direkt an den NRF-Power-Pins anzubringen,
oder hat dein NRF-Modul schon diese Verbesserung?

So wenn ich das rnf24 Modul über den RPI 3.3V speise funktiniert es, wie krieg ich nun meinen Arduino uno dazu dass ich mehr Power auf dem 3.3V anschluss habe

Vermutlich hast du ein ganz anderes Problem!

Denn, siehe: 5.1 Power consumtion

Das sollte ein typischer Arduino 3,3V Regler schon schaffen.

Oft nicht ohne Entkopplungskondensator direkt am oder nahe beim NRF Chip.

Siehe https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

NOTE! Power Problems:
Many users have had trouble getting the nRF24L01 modules to work.
Many times the problem is that the 3.3V Power to the module does not have enough current capability,
or current surges cause problems.

Oft nicht ohne Entkopplungskondensator direkt am oder nahe beim NRF Chip.

Ist schon einer drauf.
Bei kurzen Kabeln/Leiterbahnen reicht der auch.
Und lange Kabel werden bei SPI sowieso schnell zum Problem.
Da hilft dann auch kein Kondensator mehr.

Ich wiederhole es gerne nochmal:
Der Spannungsregler auf dem Arduino ist sicherlich NICHT das Problem. (auch, wenn ich ihn nicht kenne)
Jetzt klarer, was ich meine?

combie:
Ist schon einer drauf.

Woher weisst du das?
Standardmodule haben keinen.

combie:
IBei kurzen Kabeln/Leiterbahnen reicht der auch.
Und lange Kabel werden bei SPI sowieso schnell zum Problem.
Da hilft dann auch kein Kondensator mehr.

Weshalb glaubst du an das Vorhandensein von langen Kabeln?

combie:
Ich wiederhole es gerne nochmal:
Der Spannungsregler auf dem Arduino ist sicherlich NICHT das Problem. (auch, wenn ich ihn nicht kenne)
Jetzt klarer, was ich meine?

Etwas wird durch dauerndes Wiederholen nicht wahrer, sorry.

Wieviele NRF Projekte hast du schon betreut?

schnibli:
So wenn ich das rnf24 Modul über den RPI 3.3V speise funktiniert es,
wie krieg ich nun meinen Arduino uno dazu dass ich mehr Power auf dem 3.3V anschluss habe :slight_smile:

Das ist für michl ein klarer Hinweis auf mangelnde Power bei Versorgung über den Uno.

Der Regler des UNo sollte genug Power liefern, aber vielleicht nicht bei den Peaks.
Da hilft oft ein Kondensator direkt an den NRF-Pins.
Es geht ab und an auch ohne, betriebssicherer ist es aber mit.

Wenn man einen extra Regler für die 3.3V nimmt, geht es zumeist ohne Kondensator.

Ich habe inzwischen alle meine Module, die noch keinen Kondensator hatten, mit 10µF Tantal SMD versehen.

Woher weisst du das?
Standardmodule haben keinen.

Gähn...

Leider unterliegst du da einem Irrtum.

Was ist ein Standard Modul?
Sowas: Ebä 301688601838 ?

Dann ist da ein Abblockkondensator drauf!
0605_1.jpg

Weshalb glaubst du an das Vorhandensein von langen Kabeln?

Wer hat den Link mit den langen Kabeln gepostet?
Könntest evtl. du das gewesen sein?
Also, ich halte die Länge für SPI schon für grenzwertig.

0605_1.jpg

Das zu lange Kabel auch eine Ursache sein können steht da vielleicht auch drin, ich bezog mich aber auf

NOTE! Power Problems:
Many users have had trouble getting the nRF24L01 modules to work. Many times the problem is that the 3.3V Power to the module does not have enough current capability, or current surges cause problems.

Connect a 3.3 uF to 10 uF (MicroFarad) capacitor directly on the module from +3.3V to Gnd (Watch + and - !) [Some users say 10 uF in parallel with 0.1uF is best] This is especially important if you are connecting the module with jumper wires. Or you are using the regular Arduino UNO which provides only 50 mA at 3.3V

Das zu lange Kabel auch eine Ursache sein können steht da vielleicht auch drin,

Das ist mir egal, ob das da drin steht.

[Some users say 10 uF in parallel with 0.1uF is best] This is especially important if you are connecting the module with jumper wires.

Manche sagen, bei jumper wires...
Noch nochmal etwas länger, dann hilft auch kein Kondensator mehr...


Übrigens, scheint mir, das du jetzt von dem "Standardmodule haben keinen." Irrtum geheilt bist.
Fein!


Or you are using the regular Arduino UNO which provides only 50 mA at 3.3V

"Nur" 50mA

Wenn man sich dann den Peak Bedarf im Datenblatt anschaut, was ist dann?
Wäre dann nicht ein "immerhin" 50mA angemessener?

Bis zu 150mA sollten eigentlich drin sitzen.
Sagt das Datenblatt zum Arduino 3,3V Regler

Wo ist mein Irrtum?

combie:
Übrigens, scheint mir, das du jetzt von dem “Standardmodule haben keinen.” Irrtum geheilt bist.
Fein!

Nein, ich wollte nur nicht weiter darauf rumreiten, aber du willst es ja so.

Dein 100nF Entkopplungskondensator kann den Power-Rush den der NRF ab und an benötigt nicht liefern,
wenn die Stromversorgung nicht wirklich gut ist, bricht sie dann kurz ein.

Deshalb erhöht ein 10µF Kondensator die Betriebsicherheit, weil dann die Spannung nicht
wegen zu hohem ohmschen oder induktiven Widerstand der Zuleitungen einbricht.

Edit: Die Application Note aus dem Datenblatt (der eigentlich fast alle Module folgen) hat 33nF als höchsten Wert.

Der von dir fotogarfierte Kondensator ist wahrscheinlich C8 mit 1nF.

BottomView.pngAnsicht von unten, deshalb der verdrehte Bestückungsaufdruck