Störungen von 27MHz Empfänger an Arduino

Hallo, ich habe mal das realisiert: https://www.sparkfun.com/tutorials/348

Doch Arduino empfängt Störungen von 27MHz Empfänger, wenn der Sender abgeschaltet ist. (Der Arduino steuert den Motor an, wenn Störungen da sind, fängt der Motor an zu spinnen)

Den integrierten PullUp-Widerstand (digitalWrite(pin, HIGH); ) habe ich einmal aktiviert, doch vergeblich. 4,7K PullDown-Widerstand an GND auch schon probiert.

Hilft nur noch Elektronik? Spezielle Widerstände einbauen? Ich kenn mich leider damit nicht aus, außer Programmierung.

Was genau muss zwischen Arduino UNO und 27MHz Empfänger sein? Servos zittern ja auch nicht wenn die direkt am Empfänger geschlossen sind.

Wo nimmst Du die Versorgungsspannung für die Motoren her? Grüße Uwe

Es sollen Akkuschraubermotoren sein mit 50A H-Brückentreiber und werden extern vom Bleiakku versorgt. Nur GND, Enable und rpwm und lpwm sind verbunden. Hier besteht das Problem nicht.

Im Moment hab ich kein Brückentreiber drangeschlossen. Es ist nur ein Arduino mit 27Mhz Receiver. Mir geht es darum dass die Werte korrekt ausgegeben werden müssen.

Wenn der Sender eingeschaltet ist, erscheint der Ablauf im Serial Monitor so:

Channel 2: -5 Channel 2: -3 Channel 2: -6 Channel 2: -5 Channel 2: -4 Channel 2: -6 Channel 2: -6 Channel 2: -3 Channel 2: -6 Channel 2: -6 Channel 2: -5

Und wenn der Sender ausgeschaltet ist:

Channel 2: 346 Channel 2: -29 Channel 2: -528 Channel 2: 316 Channel 2: -125 Channel 2: -700 Channel 2: -17 Channel 2: -377 Channel 2: -700 Channel 2: 562 Channel 2: -42 Channel 2: -700 Channel 2: 5 Channel 2: 1776

woher kommen diese Werte?

Welchen Sketch benutzt Du, die auf der Sparkfunseite geben keinen negativen Werte aus. Grüße Uwe

das ist nur ein der kleiner Umrechner im code:

ch_calc1 = (ch1 - 1400) / 2;

um der Null möglichst zu nähern wenn am Sender nichts gesteuert wird. Letztenendes bleibt das Problem gleich, auch ohne diesen Umrechner

das Problem liegt an der Kommunikation zwischen Arduino und Receiver. Was für eine Elektronik muss dazwischen sein, damit die Werte ruhig bleiben? Die Servos wackeln auch nicht hin- und her wenn die direkt am Receiver angeschlossen sind. Warum aber bei Arduino?

forgoden, wir reden aneinander vorbei, mir solls recht sein. Grüße Uwe

das ist nur ein der kleiner Umrechner im code:

ch_calc1 = (ch1 - 1400) / 2;

Bitte einmal den kompletten Sketch posten !

channel 1 hab ich erst mal weggelassen:

// 2ch receiver

int ch1;
int ch2;

int ch_calc1;
int ch_calc2;

// motor driver
int en = 13;
int lpwm = 11;
int rpwm = 10; 

void setup() {
  
  // 2ch receiver
  pinMode(7, INPUT);
  digitalWrite(7, HIGH);
 // pinMode(8, INPUT);

   
  Serial.begin(9600); // Pour a bowl of Serial
  
  // motor driver
  pinMode(en, OUTPUT); 
  pinMode(lpwm, OUTPUT); 
  pinMode(rpwm, OUTPUT); 

}

void loop() {

  ch1 = pulseIn(7, HIGH, 25000);
 
  ch_calc1 = (ch1 - 1400) / 2;


  // drive motor
  
  if(ch_calc1 > 250) ch_calc1 = 250; //never reach 255
  
  if(ch_calc1 < 0 ) { // backward
    ch_calc1 = ch_calc1 * -1; //negative in positive
    if(ch_calc1 > 250) ch_calc1 = 250; //never reach 255
    
    digitalWrite(en, HIGH);
    analogWrite(lpwm, ch_calc1);
    analogWrite(rpwm, HIGH);
    //Serial.print("Channel 1: backward:");
    //Serial.println(ch_calc1);
  }
  else if (ch_calc1 >= 15) { //forward
    digitalWrite(en, HIGH);
    analogWrite(lpwm, HIGH);
    analogWrite(rpwm, ch_calc1);
    //Serial.print("Channel 1: forward:");
    //Serial.println(ch_calc1);
  }
  else {
    digitalWrite(en, 0);
    analogWrite(lpwm, HIGH);
    analogWrite(rpwm, HIGH); 
    //Serial.print("Channel 1: else :");
    //Serial.println(ch_calc1);
    
  }
  // end of drive motor
  
  // Serial.print("Channel 1: ");
  //Serial.println(ch_calc1);
  
  Serial.print("Channel 2: ");
  Serial.println(ch_calc1);
  delay(100); 
}

ich habe herausgefunden dass die Störungen vom USB Kabel vom PC kommen. Trenne ich USB und schließe da ein Akku, dann entfallen die Störungen.

bevor ich weiter experimentieren will frage ich lieber erst:

Kann ich gleichzeitig 12V Bleiakku und USB anschließen? Nicht dass die 12V Spannung den USB-Treiber vom PC zerstört.

okay sinnlos. 27MHz Empfänger bekommt auch dann Störungen wenn er nicht an Arduino angeschlossen ist. Weder Strom noch Impulsleitung. Also komplett getrennt. Und zwar erst dann wenn USB Kabel an Arduino geschlossen ist. Anscheinend sendet USB zusammen mit Arduino irgendwelche Stör-Radiowellen.

Glaubst Du eigentlich hier hat jemand eine Glaskugel? Solange Du nicht genau beschreibst was Du wie zusammengeschaltet hast und wie Dein Programm tatsächlich aussieht kann Dir keiner helfen.

So wie Du schreibst scheinst Du von Funk und Antennen keine Ahnung zu haben. Dein Problem sind vermutlich HF Einströmungen und/oder Einstreuungen. Wo die herkommen kann man nicht sagen ohne die Details zu kennen. Die Motoren sind natürlich Kandidaten und der USB Bus auch. Die allereinfachste Lösung ist gleich auf 2.6 GHz zu gehen. Da treten solche Probleme sehr viel weniger auf.

Oder anders ausgedrückt: 27 MHz ist Technik von Vorgestern.

Ich verstehe auch nicht wieso das ein Problem ist, daß bei abgeschalteter Fernsteuerung!!!!! der Empfänger irgendwelche Signale auf dem 27Mhz Frequenzband, etwa auch von aneren Fernsteuerungen bekommt, die so schwach sind daß der Sender sie leicht übertönt. Nur wenn kein starker Sender da ist, werden halt die schwachen Signale empfangen.

Lösungsvorschlag: Empfänger ausschalten dann Sender ausschalten.

Grüße Uwe

naja ich habe dazu mein Code verbessert der Störungen erkennt und den Motor erst gar nicht ansteuert

2.6 GHz steige ich erst um wenn das Fahrgestell inkl Motoren für den Bot perfekt zusammenhält.

edit: ich wusste nicht dass 27 MHz sehr störempfindlich ist und nicht zwingend mit Arduino zusammenhängt

Erinnerst Du dich noch an die Analog-Fernsehzeiten? Wenn da mal ein Sender ausfiehl, was sahst Du da? ja Schnee, weiß-schwarze zufällig verteilte Punkte. Und was war das elektrisch gesehen? Der Sender sendete nichts mehr, die automatische Verstärkung des Eingangesignals regelte auf max Verstärkung und so wurde das Grundrauschen als Fernsehsignal dargestellt.
grüße Uwe

uwe, wir sind alt...

Eisebaer: uwe, wir sind alt...

Wie kommst Du auf die Idee? Grüße Uwe

ja jetzt verstehe ich. vielen dank