barney Geschrieben 3. September 2013 Geschrieben 3. September 2013 Danke sehr net von dir. Wenn du willst kann ich es gleich testen. Bin gerade am werkeln. Gruß Gerald Sehr gerne, ich habe gerade keine Testumgebung und muss die Werte im Kopf nachrechnen. Schreib mal... Zitieren
barney Geschrieben 3. September 2013 Geschrieben 3. September 2013 Hi Gerald-Z, da ich nichts mehr von dir höre, gehe ich im ungünstigsten Fall davon aus, dass du eine Probefahrt gemacht hast und jetzt an der nächsten Häuserwand klebst :pizza: Er war doch so jung...... Zitieren
gerald-z Geschrieben 3. September 2013 Geschrieben 3. September 2013 Hallo Barney Nein ich bin noch am Leben. Ich hab dich falsch verstanden. Ich dachte du korrigierst die beiden Zeilen und schreibst es hier noch mal rein. Um dich nicht zu stressen habe ich dann auf eine Antwort gewartet. Am Nachmittag musste ich dann in die Arbeit. Das zweite Relai ist direkt an 5 Volt angeschlossen und Schaltet sobald der Bec 5 Volt liefert. Das benötige ich um die Lipo Anzeige mit einzuschalten. So brauche ich nicht immer den Balancer Anschluss abzuziehen. Das erste Relai (für Hupe) wird von einem Transistor angesteuert der mit dem Basis Anschluss über ein 5kOhm an das Arduino Board angeschlossen ist. Durch den Transistor sollte keine Überspannung zurück zum Arduino kommen. Das mit dem Dämpfungswert werde ich auch noch probieren. Kann du vielleicht bei Gelegenheit die "Hase - Schildkröte" Funktion mit programmieren? Ich stell mir das ca so vor: Beim einschalten ist automatisch die "Schildkröte" aktiv und das Board hat nur die halbe Geschwindigkeit. Durch Tastenkombination zb: Joystick rechts und gleichzeitig dreimal die Z Taste drücken wird die "Hase" Funktion aktiv. Das Board läuft jetzt mit maximaler Geschwindigkeit. Mit der Selben Tastenkombination könnte man das ganze wider deaktivieren. Gruß Gerald Zitieren
Beatbuzzer Geschrieben 4. September 2013 Geschrieben 4. September 2013 Das erste Relai (für Hupe) wird von einem Transistor angesteuert der mit dem Basis Anschluss über ein 5kOhm an das Arduino Board angeschlossen ist. Durch den Transistor sollte keine Überspannung zurück zum Arduino kommen. Aber der Transistor kann sterben. Über ihm liegt nämlich die hohe Spannung beim Abschalten. Eine Diode (z.B. 1N4148) mit Kathode (Ring) an die Plus-Seite und Anode an die Transistor-Seite vom Relais verhindert das wirkungsvoll. Nebenbei kann man die Hupe doch aber auch direkt per (evtl. etwas leistungsfähigerem) Transistor schalten. Das erspart 1x Klappertechnik. Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Hallo BarneyNein ich bin noch am Leben. Ich hab dich falsch verstanden. Ich dachte du korrigierst die beiden Zeilen und schreibst es hier noch mal rein. Um dich nicht zu stressen habe ich dann auf eine Antwort gewartet. Am Nachmittag musste ich dann in die Arbeit. Das zweite Relai ist direkt an 5 Volt angeschlossen und Schaltet sobald der Bec 5 Volt liefert. Das benötige ich um die Lipo Anzeige mit einzuschalten. So brauche ich nicht immer den Balancer Anschluss abzuziehen. Das erste Relai (für Hupe) wird von einem Transistor angesteuert der mit dem Basis Anschluss über ein 5kOhm an das Arduino Board angeschlossen ist. Durch den Transistor sollte keine Überspannung zurück zum Arduino kommen. Das mit dem Dämpfungswert werde ich auch noch probieren. Kann du vielleicht bei Gelegenheit die "Hase - Schildkröte" Funktion mit programmieren? Ich stell mir das ca so vor: Beim einschalten ist automatisch die "Schildkröte" aktiv und das Board hat nur die halbe Geschwindigkeit. Durch Tastenkombination zb: Joystick rechts und gleichzeitig dreimal die Z Taste drücken wird die "Hase" Funktion aktiv. Das Board läuft jetzt mit maximaler Geschwindigkeit. Mit der Selben Tastenkombination könnte man das ganze wider deaktivieren. Gruß Gerald Hi Gerald-Z, ups, die Welt ist voller Missverständnisse. Ich hatte die Korrektur schon ins Forum eingepflegt. Hase- Igel werde ich bald umsetzen, ich grübel schon darüber. Beatbuzzer hat eindeutig recht. Eine Freilaufdiode ist "Plflicht" und nicht die Kür. Viele Grüße Barney Zitieren
gerald-z Geschrieben 4. September 2013 Geschrieben 4. September 2013 Hallo Barney hab soeben das Programm probiert und es funktioniert nicht so recht. Getestet hab ich das ganze mit einem Servo. Bremse funktioniert. Wenn ich die Z Taste drücke und ein bisschen gas gebe. Dreht der Servo bis er ansteht und die Zahnräder knarren. Erst wenn ich die Taste loslasse geht er wider in Grundstellung. Danke das mit der Hupe werde ich noch ändern müssen. Ich hätte auch einen Mosfet wo drauf steht CDIL, BD243C, G1 kann ich mit dem direkt die Hupe ansteuern 25 Volt? Gruß Gerald Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Ich habe gerade nachgerechnet: Da ist ein Fehler im Divisor. Es müsste nicht leerlauf/neutralstellung heissen. Ich schreibe gerade mit dem Handy... Mach mal aus leerlauf/neutral 1000/neutral Zitieren
gerald-z Geschrieben 4. September 2013 Geschrieben 4. September 2013 Ich blicke gerade nicht ganz durch wo ich das ändern soll? Gruß Gerald Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 In der Zeile StellWertMotor=Stell... Zitieren
gerald-z Geschrieben 4. September 2013 Geschrieben 4. September 2013 Ich hab das jetzt so probiert: // Subroutine fuer die Motorsteuerung void Motorsteuerung(){ // Beschleunigen bei gehaltenen Z-Knopf und überschreiten des Oberern Totpunktes if (nunchuk.zButton == HIGH && nunchuk.analogY > ObererTotpunkt && F_Ueberstrom == LOW){ // StellWertMotor=StellWertMotor+((nunchuk.analogY-NeutralstellungYAchse)/BeschleunigungsDaempfung); StellWertMotor = nunchuk.analogY-1000/NeutralstellungYAchse; // direkte Ansteuerung if (StellWertMotor > ObererStellWertMotor) StellWertMotor = ObererStellWertMotor; // obere Grenze fuer den Motorregler........ hat sich nichts verändern. Gruß Gerald Zitieren
Beatbuzzer Geschrieben 4. September 2013 Geschrieben 4. September 2013 Danke das mit der Hupe werde ich noch ändern müssen. Ich hätte auch einen Mosfet wo drauf steht CDIL, BD243C, G1 kann ich mit dem direkt die Hupe ansteuern 25 Volt? Der BD243C ist ein Bipolar-Transistor und kein MOSFET. Wegen seiner hohen Strombelastbarkeit hat er einen ziemlich niedrigen Verstärkungsfaktor (hfe), deshalb ist er hierfür wohl nicht ganz so gut geeignet, aber vorerst: Hast du mal Daten zu der Hupe, also Spannung und Stromaufnahme und was für eine Bauart bzw. woher die ist? Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 alt: StellWertMotor=StellWertMotor+((nunchuk.analogY-NeutralstellungYAchse)/BeschleunigungsDaempfung); neu: StellWertMotor = Leerlauf + (nunchuk.analogY-NeutralstellungYAchse)*((ObererStellWertMotor-Leerlauf)/NeutralstellungYAchse); // direkte Ansteuerung Zwei Rechenbeispiele: = Leerlauf + (nunchuk.analogY-NeutralstellungYAchse)*((ObererStellWertMotor-Leerlauf)/NeutralstellungYAchse) = 3000 + (200-127)*((4000-3000)/127) ~ 3500 -> sollte jetzt richtig sein! Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Auch bremsen war falsch! StellWertMotor = Leerlauf - (NeutralstellungYAchse-nunchuk.analogY)*((Leerlauf-UntererStellWertMotor)/NeutralstellungYAchse); // direkte Ansteuerung Probe: leichtes Bremsen und Vollbremsen: leichtes Bremsen = 3000 - (127-110) * ((3000-2000)/127) = 3000 - 133 = 2877 passt Vollbremsung = 3000 - (127-0) * ((3000-2000)/127) = 3000 -127 * ((1000)/127) jetzt die 127 kürzen: = 3000 - 10000 = 2000 -> UntererStellWertMotor passt! Schalt mal das Debugging unten an! Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Hi Gerad-Z, Hase Igel habe ich jetzt auch fertig. Ich probiere das lieber selber bei mir aus, bevor ich dir noch weitere Geistige Entgleisungen zukommen lasse. Kann bis ins Wochenende dauern! Bestätigung der Umschaltung durch kurzes Hupensignal! Ich hoffe Du kannst damit leben! VG Barney Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Hallo Gerald, Anbei die Direktsteuerung und Hase Igel. Mit Hase Igel bin ich noch nicht zufrieden. VG Barney Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Hallo Gerald-Z, was heißt nicht zufrieden? Die Umschaltung funktioniert einwandfrei. Ich musste aber leider beim Programmieren feststellen, dass ich bei dem if-Statement zu viele Anfragen an den Nunchuk stelle. Ich muss jetzt Hilfsvariablen anlegen, die ca. 10 mal die Sekunde den Nunchuk abfragen und die Ergebnisse speichern. Das Bedeutet ein kleines Redesinn meines Programms. Das werde ich in den nächsten Tagen angehen. Ansonsten habe ich die Umschaltung ausprobiert und kann sagen, es funktioniert einwandfrei. Auch die Direktsteuerung klappt jetzt ohne große Einschränkungen. Der Nunchuk hat nun mal als Minimum keine Null sondern 10-15 und als Maximum ca. 243. Zu mindestens meiner. Mit der Integrationsroutine war das kein Thema. Ich habe die Ansteuerung auf der Werkbank getestet, ich möchte damit nicht fahren. Der 2400W Motor ist recht giftig und durch die Headway Zellen ist auch der passende Strom vorhanden. Berichte mal aus deiner Sicht, wie sich solch eine direkte Steuerung in der realen Welt so macht. Viel Freude damit Barney Zitieren
gerald-z Geschrieben 4. September 2013 Geschrieben 4. September 2013 Hallo Danke das du das so schnell umgesetzt hast. Ich bin gerade nicht Zuhause um es auszuprobieren. Aber man kann damit schon linear beschleunigen oder? Ich mein jetzt so wie mit einer rc Funk. Gruß Gerald Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 HalloDanke das du das so schnell umgesetzt hast. Ich bin gerade nicht Zuhause um es auszuprobieren. Aber man kann damit schon linear beschleunigen oder? Ich mein jetzt so wie mit einer rc Funk. Gruß Gerald Ja, das ist so, wie ein Yamaha FJ1200 (offen) mit Kurzhub Gasgriff. Man muss es mögen. :devil: Du musst es nur aktivieren. Zitieren
sonni Geschrieben 4. September 2013 Geschrieben 4. September 2013 Der Vergleich mit der Yamaha ist ja klasse . Hase Igel klingt sehr gut! gruß sonni Zitieren
barney Geschrieben 4. September 2013 Geschrieben 4. September 2013 Ich hätte nicht gedacht, das den jemand versteht. Zitieren
gerald-z Geschrieben 4. September 2013 Geschrieben 4. September 2013 Ja, das ist so, wie ein Yamaha FJ1200 (offen) mit Kurzhub Gasgriff. Man muss es mögen. :devil: Du musst es nur aktivieren. Horcht sich wirklich gut an. Mein Board mit 2x C6374 leisten mit 6s 2670 Watt maximal. Wenn man auf dem Board gerade oben steht und man die maximale Beschleunigung aktiviert reicht es für einen Willi. Gruß Gerald Zitieren
gerald-z Geschrieben 4. September 2013 Geschrieben 4. September 2013 Ich habs gerade mit einem Servo getestet. Bremse geht perfekt. Beim Beschleunigen ist mir aufgefallen das wenn ich den Stick loslasse öfter der Servo die Neutralstellung nicht findet. Erst wenn ich die Z Taste loslasse kommt er wider zurück. Wo kann man jetzt den Hasen Igel finden? Oder sind die zwei noch im Käfig eingesperrt? Werde morgen das mal am Board Testen. Gruß Gerald Zitieren
barney Geschrieben 5. September 2013 Geschrieben 5. September 2013 Beim Beschleunigen ist mir aufgefallen das wenn ich den Stick loslasse öfter der Servo die Neutralstellung nicht findet. Erst wenn ich die Z Taste loslasse kommt er wider zurück. Ja, das liegt an der Eigenschaft der if-Abfrage mit der Erkennung des Totpunktes für den Joystick. Ich werde dir nachher eine neue Zeile senden, wo dieses nicht mehr darin sein wird. Wo kann man jetzt den Hasen Igel finden? Oder sind die zwei noch im Käfig eingesperrt? Nein, Joystick (wie für Licht) nach links bis zum Anschlag drücken, dann die Z-Taste dreimal drücken. Jedes mal wenn der Umschaltwunsch erkannt wurde, wird ein kurzes Hupsignal ertönen. Beim dritten mal hupt es länger. Wir arbeiten uns langsam ans Ziel! VG Barney Zitieren
barney Geschrieben 5. September 2013 Geschrieben 5. September 2013 Tausche mal den Block Motorsteuerung aus, es gibt jetzt keine Einstellmöglichkeit mehr für die Neutralstellung beim Benutzen des Z-Knopfes und Joystick: // Subroutine fuer die Motorsteuerung void Motorsteuerung(){ // Beschleunigen bei gehaltenen Z-Knopf if (nunchuk.zButton == HIGH && F_Ueberstrom == LOW){ StellWertMotor = UntererStellWertMotor + (nunchuk.analogY)*((ObererStellWertMotor-UntererStellWertMotor)/256); // direkte Ansteuerung } // Freilauf des Motors bei losgelassenen Z-Knopf else if (nunchuk.zButton == LOW) StellWertMotor = Leerlauf; if (F_Ueberstrom == HIGH){ StellWertMotor = Leerlauf+(StellWertMotor-Leerlauf)*Reduktionsfaktor; // Serial.print("Reduktionsfaktor: "); // Debugausgabe Reduktionsfaktor // Serial.println(Reduktionsfaktor); F_Ueberstrom = LOW; // Flag loeschen } OCR1A = StellWertMotor; // Geschwindigkeitsvorgabe Motor in PWM-Register OCR1A setzen // Serial.print("StellWertMotor: "); // Debugausgabe Motorsteller // Serial.println(StellWertMotor); // Ende Abschnitt Motorsteuerung } Zitieren
Empfohlene Beiträge
Tritt dem Gespräch bei
Du kannst jetzt posten und dich später registrieren. Wenn du bereits einen Account hast kannst du dich hier anmelden.