brushless motor piept nur und ruckelt hin und her

Hallo

Ich habe ein Problem nämlich mein brushless Motor piept nur und ruckelt hin und her und dabei ist es egal was für ein Sketch ich verwende. An was könnte es liegen ? (also kaputt kann es nicht sein, da ich 4 Motoren habe und alle genauso reagieren). Was soll ich machen ?

Ich benutze dabei eine 2 zellen lipo batterie mit 7.4V, 25C und 1200mAh von Floureon und ein 30A ESC.

Danke schonmal

flyfly

Ok, DU hast 4 Motore ausprobiert, aber auch mehrere ESC oder immer den gleichen?
Grüße Uwe

Und falls der Regler nicht defekt ist, Initialisierst Du den Regler zu Beginn deines Sketch richtig? Die meisten Bruschless-ESC müssen beim Start korrekt initialisiert werden. Ausserdem müssen die Regler auf den RC-Sender programiert werden (Knüppelwege anlernen). da Du nen Arduino als 'Sender' verwendest, muss der Regler ebenfalls die Länge des Impulses bei Neutral, voll vorwärts, voll Rückwärts (od. Bremse) Bei nem Carregler und bei nem Flugregler die Impulslänge bei Neutral und voll Gas lernen.
Leider kann der regler meistens nicht an ner RC-Anlage angelernt und dann einfach an den Arduino gesteckt werden. Denn Selbst bei Betrieb an RC-Anlagen ist es so, wenn Du nen anderen Sender verwendest muss der Regler meistens neu angelernt werden. Es kann mal auch ohne neu anlernen klappen, aber meistens gehts eben nicht.

Also falls Du den Regler nicht an den Arduino bzw. deinen Sketch angelernt hast, und der Regler beim einschalten nicht korrekt initialisiert wird, läuft der Motor am Regler nicht.

Wenn Du in deinem Sketch, den ich leider nicht sehen kann, den Regler korrekt initialiserst und der Regler richtig angelernt ist, muss er funktionieren.

Wichtig: Bei vielen BL-ESC's darf nach dem einschalten des Reglers erst gas gegeben werden, NACHDEM der Regler Mittels den Piepstönen mitgeteilt hat, dass die Initialisierung abgeschlossen ist. Dis ist ein Schutz gegen unbeabsichtigtes Anlaufen, dierekt nach dem einschalten, um Verletzungen am Menschen zu verhindern.

Tipp: Anleitung des Reglers Konsultieren, da steht alles über Abgleich mit dem Sender, sowie Bedinnungen beim einschalten drin. danach die entsprechenden Sequenzen in Deinem Sketch programmieren.

LG Stefan

Hallo

Danke für die Tipps schonmal.

Ich benutze zurzeit diesen sketch hier und weiß nicht ob ich dabei den regler anlerne.

#include <Servo.h>

Servo ESC1;

int pos = 0; //Sets position variable

void arm(){

setSpeed(0); //Sets speed variable delay(1000);

}

void setSpeed(int speed){

int angle = map(speed, 0, 100, 0, 180); //Sets servo positions to different speeds ESC1.write(angle);

}

void setup() {

ESC1.attach(9); //Adds ESC to certain pin. arm();

}

void loop() {

int speed; //Implements speed variable

for(speed = 0; speed <= 70; speed += 5) { //Cycles speed up to 70% power for 1 second

setSpeed(speed); //Creates variable for speed to be used in in for loop

delay(1000);

}

delay(4000); //Stays on for 4 seconds

for(speed = 70; speed > 0; speed -= 5) { // Cycles speed down to 0% power for 1 second

setSpeed(speed); delay(1000);

}

setSpeed(0); //Sets speed variable to zero no matter what

delay(1000); //Turns off for 1 second

}

flyfly

flyfly:
Hallo

Danke für die Tipps schonmal.

Ich benutze zurzeit diesen sketch hier und weiß nicht ob ich dabei den regler anlerne.

#include <Servo.h>

Servo ESC1;

int pos = 0; //Sets position variable

void arm(){

setSpeed(0); //Sets speed variable delay(1000);

}

void setSpeed(int speed){

int angle = map(speed, 0, 100, 0, 180); //Sets servo positions to different speeds ESC1.write(angle);

}

void setup() {

ESC1.attach(9); //Adds ESC to certain pin. arm();

}

void loop() {

int speed; //Implements speed variable

for(speed = 0; speed <= 70; speed += 5) { //Cycles speed up to 70% power for 1 second

setSpeed(speed); //Creates variable for speed to be used in in for loop

delay(1000);

}

delay(4000); //Stays on for 4 seconds

for(speed = 70; speed > 0; speed -= 5) { // Cycles speed down to 0% power for 1 second

setSpeed(speed); delay(1000);

}

setSpeed(0); //Sets speed variable to zero no matter what

delay(1000); //Turns off for 1 second

}




flyfly

Hi flyfly,

die Zeile

ESC1.attach(9); //Adds ESC to certain pin. arm();

steht die wirklich so in deinem Sketch?
wenn ja, wird in deinem Setup die Regler-Initialisierung nicht ausgeführt, denn der Aufruf des void arm(), das den Regler scharf stellen, also initialisieren soll, ist auskommentiert!

im Sketch muss das Setup so lauten:

void setup() {
ESC1.attach(9); //Adds ESC to certain pin.
arm();
}

LG Stefan

Wo im Sketch armierst du den ESC?
Nur weil irgendwo im Sketch eine Funktion steht wird sie nicht automatisch ausgeführt / aufgerufen.

Vielen Dank, es klappt jetzt

flyfly

ALso hattest Du das Armieren vergessen?

@Uwe:
Ja sehr wahrscheinlich schon. den der Aufruf von arm() für das Scharfmachen stand im Setup in der selben Sketch-Zeile, wie die Pin-Zuweisung des Regler's, allerdings hinter dem Komentar, der die Pinzuweisung beschreibt, und damit war der Aufruf eben auch Auskommentiert.

so sah das Setup in seinem geposteten Sketch aus:

void setup() {

ESC1.attach(9); //Adds ESC to certain pin. arm();

}

beachte den Inhalt des Komentars nach dem Wort pin.
So konnte das nix werden.

LG Stefan

Hier das gleiche Problem:

void arm(){

setSpeed(0); //Sets speed variable delay(1000);

}

War bestimmt so beabsichtigt:

void arm()
{
  setSpeed(0); //Sets speed variable
  delay(1000);
}

Und in der setSpeed(int speed) auch das gleiche Bild.