Rf24 reagiert nicht wenn motor läuft

Ich bin dabei ein altes Modellboot von meinem Opa aufzürüsten den Code habe ich schon ferig gestellt und der Funktioniert auch fast einwandfrei allerdings ist es so, dass wenn der Antribsmotor angeht, der Rf24 zwar noch verbindung hat allerdings nicht mehr reagiert (oder so). Hier mein Code und der Schaltplan.

//Reciver
#include <Servo.h>

#include <SPI.h>

#include <RF24.h>
#include <nRF24L01.h>

Servo Throttle;
Servo Yar;

byte Array[4];

int Tpos = 75;
int Ypos = 75;

int Trot = 0;
int Yrot = 0;

int Time = 0;

const uint64_t pipeIn = 0xE9E8F0F0E1LL;
RF24 radio(9, 10);

void setup()
{

  radio.begin();
  radio.openReadingPipe(1,pipeIn);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_HIGH);
  radio.startListening();

  Throttle.attach(4);
  Yar.attach(3);

}

unsigned long lastRecvTime = 0;
void recvData()
{
while ( radio.available() ) {
radio.read(&Array, 4);

Trot = map(Array[0],0,200,-80,80);
Yrot = map(Array[1],0,200,80,-80);

lastRecvTime = millis();   
}
}

void loop()
{

  recvData();
unsigned long now = millis();
if ( now - lastRecvTime > 1000 )
{
  Trot = 0;
  Yrot = 0;
}

Tpos = Trot + 75;
Ypos = Yrot + 75;

Throttle.write(Tpos);
Yar.write(Ypos);

}

Ich bin dankbar für alle Antworten.

Die 3,3V des Nanos sind zu schwachbrüstig für den nRF24L01. Da braucht es mindestens einen 100µF Elko. Besser eine eigene 3,3V Versorgung.

Es könnte durchaus sein das der Motor soviel Strom braucht, das die Versorgung zusammen bricht, und dadurch die Funktion gestört ist. Jetzt erst erkannt, der Motor wird ja seperat mit 4xAA versorgt.

Das Fritzing Batteriefach gibt den Eindruck, das 2xAA in Reihe und davon zwei Paralell geschalten sind. 3V sind zu wenig für den Nano als VIN.
Der Motor läuft auch mit 3V?

Woran genau machst du die Fehlfunktion fest? Tun die Servos was sie sollen, wenn der Motor abgeklemmt ist?

Genau habe 200µ direkt am 3,3V damit funktioniert der nRF24.
@phantox_44 wen der Motor nur in einer Richtung läuft eine Diode antiparallel direkt am Motor.

Mr ist jetzt erst aufgefalen, dass ich beim erstellen des Schalplans ein paar fehler gemacht habe.

  1. Ich habe da einen 100µF Elko eingebaut.
  2. Die stromversorgung sind bei mir 2 6V Akkus deshalb habe ich hier je 4xAA Batterien genommen.

Wenn ich dem MSC keinen Strom gebe (Schalter) dann läuft der Motor ja nicht. Die Servos aber fehlerfrei.

Dann zeige uns doch die richtige Schaltung und die Freilaufdiode nicht vergessen.

Hier nochmal der richtige Schaltplan.


Eine Freilaufdiode hab ich nicht.

Da wurdest du doch schon drauf hingewiesen, daß du die unbedingt brauchst.
Warum machst du das nicht ?

Und was genau ist dein "MSC" ?

Die Freilaufdiode müsste ich erst bestellen.

Mit MSC meine ich einen meschanischen Fahrtenregler (mechanical speed controller).

Ja, hatte ich mir auch schon so gedacht.
Da solltest du aber zur besseren Erklärung mal einen Link von dem Teil posten.

Ich denke das erklärt es recht gut:
https://www.explorermagazin.de/rccars/rodeo12.htm

Ja, das ist ok. Sieht nach einem Regler aus, der auch einen Richtungswechsel durchführen kann. Dann funktioniert es mit der Freilaufdiode nicht. Zumindest nicht direkt am Motor.

Besser ist die Verwendung einer Mosfet-H-Brücke, die schon die Freilaufdioden integriert hat.
Oder du verzichtest auf den Richtungswechsel des Motors.
Dann klappt das mit einer Freilaufdiode am Motor.

Ich glaube du denks, dass der Motor nicht funktioniert. Der funktioniert aber. Was nicht funktioniert ist, dass nach ca.2 sekunden wenn der Motor läuft, ich weder den Motor drosseln, noch lenken kann.

Das ist ganz falsch.
Davon habe ich nichts geschrieben.
In der Elektronik sollte man sich auf physikalische Grundlagen und entsprechende Messwerte verlassen.
Deine Probleme kommen durch fehlende Enrstörung des Motors, sowie der fehlenden Freilaufdiode.

Ok, danke!

Braucht es die Diode, wenn der Motor galvanisch getrennt von der μC Schaltung ist? So wie ich den MSC verstehe, steuern die Servos mechanisch die Motorgeschwindigkeit. Somit kommt keine entstehende Spannung vom Motor zum μC. Aber vielleicht habe ich das System falsch verstanden.
Das MSC oder der Motor scheint ordentlich Störungen auszustrahlen.

Das weiß man nur sicher, wenn man es messtechnisch oder experimentell heraus findet.
In meinen Projekten erhällt jede Induktivität eine Freilaufdiode, bei Motoren verwende ich immer passende H-Brücken.
Dies Störungen gelangen auch durch die Luft, und man wundert sich, wieso es nicht funktioniert.

Ich habe mich nochmal anderweitig zu dem Thema ungesehen ( https://forum.arduino.cc/t/arduino-storsicher-machen/187597/8 ) und habe demnach einen 47nF zwischen den Pins und je einen 22nF vom Pin zum Gehäuse angelötet. Danke für eure Lösungsvorschläge.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.