Hi ihr. ich hab einen Rasenroboter zerlegt (ferrex r800 smart) und die Elektronik durch einen Nano + 2,4GHz empfänger und 3 x BLDC controller ersetzt.
Der robbi läuft mittlerweile soweit.
Auch wenn die Controller noch paar Probleme machen.
Kennt von euch wer gute sensorlose BLDC controller die zum steuern mit nem arduino geeignet sind? Ich benutze 2x die JYQD 6.3E1 aber die sind von der steuersoftware her zu lahm...
Hat von Euch wer eventuell ne bessere idee?
Das der Nano (strong):
Das sind die JYQD 6.3 Treiber:
Hier mein Code:
int RXin1 = 10; // RC Signal Input 1
int RXin2 = 11; // RC Signal Input 2
int RXin3 = 12; // RC Signal Input 3
int RXin4 = 13; // RC Signal Input 4
int DirectionPin1 = 4; // Forward / Reverse Pin 1 OUT
int DirectionPin2 = 7; // Forward / Reverse Pin 2 OUT
int SpeedPin1 = 5; // Speed control pin 1 analog OUT
int SpeedPin2 = 6; // Speed control pin 2 analog OUT
int BladePin = 3;
int Value = 0; // Value 0
int X; // RC Signal 1 Wheeldrive left
int Y; // RC Signal 2 Wheeldrive right
int Z; //RC Signal 3 Cutting blade
int A;
int B;
int H;
int I;
int J;
void setup() {
//Serial.begin(115200); // Serial Monitor Start "For Test Only "
pinMode(DirectionPin1, OUTPUT);
pinMode(DirectionPin2, OUTPUT);
}
void loop() {
X = pulseIn(RXin1, HIGH, 250000);
if (X > 1500) { A = map(X, 1500, 1975, 25, 255); digitalWrite(DirectionPin1, HIGH); analogWrite(SpeedPin1, A); }
if (X < 1450) { A = map(X, 1450, 990, 25, 255); digitalWrite(DirectionPin1, LOW); analogWrite(SpeedPin1, A); }
if ((X > 1451) && (X < 1499)) { A = 0; analogWrite(SpeedPin1, A); digitalWrite(DirectionPin1, LOW); }
Y = pulseIn(RXin2, HIGH, 250000);
if (Y > 1500) { B = map(Y, 1500, 1975, 25, 255); digitalWrite(DirectionPin2, HIGH); analogWrite(SpeedPin2, B); }
if (Y < 1450) { B = map(Y, 1450, 990, 25, 255); digitalWrite(DirectionPin2, LOW); analogWrite(SpeedPin2, B); }
if ((Y > 1451) && (Y < 1499)) { B = 0; analogWrite(SpeedPin2, B); digitalWrite(DirectionPin2, LOW); }
Z = pulseIn(RXin3, HIGH, 250000);
if(Z > 1600){ analogWrite(BladePin, 200);}
if(Z < 1599){ analogWrite(BladePin, 0);}
/*
H = digitalRead(DirectionPin1); Serial.print("Dir = "); Serial.print(H); Serial.print(" | "); Serial.print(A); Serial.print(" | "); Serial.println(X); // Show Signal Value " Test Only"
I = digitalRead(DirectionPin2); Serial.print("Dir = "); Serial.print(I); Serial.print(" | "); Serial.print(B); Serial.print(" | "); Serial.println(Y);
J = Serial.print(Z); Serial.print(" | "); Serial.println(BladePin);
*/
}
LG Trixi