Arduino 2A Dual Motor Controller Fehler



  • Hi Leute,
    Ich hoffe ihr könnt mir helfen; Ich habe an meinem Atmega2560 Arduino einen 2A Dual Motor Controller angeschlossen. Board und Controller haben jeweils ein Bateriefach mit 6 Baterien(jeweils 2100 mAh und 1,2V). Ich habs genau wie auf DFrobot geschildert angeschlossen. Jediglich die GND Leitung vom Controller zum Board hab ich weggelassen. Nun mein Problem: Wenn ich diesen Code nutze:

    digitalWrite(8, HIGH);
    digitalWrite(10, HIGH);
    analogWrite(9, 180);
    analogWrite(11, 180);
    

    Sind beide Motoren aus. Wenn ich aber:

    digitalWrite(8, LOW);
    digitalWrite(10, LOW);
    analogWrite(9, 180);
    analogWrite(11, 180);
    

    schreibe drehen sich beide Motoren(in die falsche Richtung). Hat jemand eine Idee was ich falsch gemacht haben könnte?
    MfG DragonRaider



  • Das hat wohl so dermaßen nichts mit der C++-Sprache zu tun... (mal davon ab, dass wir hier so überhaupt keine Information bekommen, dass wir im Trüben fischen müssen oder die Kristallkugel bemühen...)
    Ich würde Dir vorschlagen, eher auf mikrocontroller.net Dein Glück zu versuchen!



  • Hi,
    Hast recht, sry. Hätte ja sein können, das hier jemand was dazu weiß.



  • Sicher ist die Frage hier falsch platziert. Aber so dermaßen nichts hat es nicht mit der C++ Sprache zu tun. Interessanterweise wird der Arduino in C++ programmiert. Also wenn hier jemand Interesse an Hardware hat (C++ Interesse setze ich mal voraus, da ihr ja hier im Forum lest), kann ich so einen Arduino empfehlen.



  • Arduino ist zwar in C++ programmiert, aber mit schönem/modernem C++ hat das nicht viel zu tun.

    Zum Beispiel ist max ein MAKRO(!!!!!!!11!1) und kein Template, das hat bei mir schon zu seltsamen Bugs geführt, weil das Argument einen Seiteneffekt hatte.



  • hast du vielleicht die spannung am motor falsch rum angelegt ?



  • arduinoler schrieb:

    Arduino ist zwar in C++ programmiert, aber mit schönem/modernem C++ hat das nicht viel zu tun.

    Zum Beispiel ist max ein MAKRO(!!!!!!!11!1) und kein Template, das hat bei mir schon zu seltsamen Bugs geführt, weil das Argument einen Seiteneffekt hatte.

    Das hat sehr viel mit modernem C++ zu tun. Alle Sprachfeatures von C++ lassen sich nutzen. Man kann sogar Makros definieren, die gemäß Sprachstandard zu Seiteneffekten führen müssen. Man kann schließlich auch mit modernem C++ Fehler oder unsauberen oder unschönen Code schreiben.

    Es fehlt die Standardlibrary aber sonst ist alles da. Schließlich wird ja der gcc verwendet.



  • tntnet schrieb:

    Das hat sehr viel mit modernem C++ zu tun. Alle Sprachfeatures von C++ lassen sich nutzen.

    Es geht nicht darum, dass man C++ verwenden kann (leider nicht ganz alle Sprachfeatures, z.B. statische Variablen in einer Funktion). Es geht darum, dass die mitgelieferte Bibliothek *** designt ist.

    Und zu meinem Beispiel, in C++ erwartet niemand, dass max ein Makro ist. MAX ja, max nein (siehe std::max).



  • arduinoler schrieb:

    tntnet schrieb:

    Das hat sehr viel mit modernem C++ zu tun. Alle Sprachfeatures von C++ lassen sich nutzen.

    Es geht nicht darum, dass man C++ verwenden kann (leider nicht ganz alle Sprachfeatures, z.B. statische Variablen in einer Funktion). Es geht darum, dass die mitgelieferte Bibliothek *** designt ist.

    Und zu meinem Beispiel, in C++ erwartet niemand, dass max ein Makro ist. MAX ja, max nein (siehe std::max).

    Also bei mir gehen statische Variablen in einer Funktion.

    Wenn max ein Makro ist, ist das sicher unschön, aber die Bibliothek damit gleich komplett zu verdammen halte ich für übertrieben. In windows.h ist doch min und max auch als Makro definiert. Zumindest war es damals, als ich noch Windows programmiert habe. Ist genau deswegen die Windows-API schlecht?



  • ...



  • Hier ist das offiziele deutsche Arduino-Forum: http://arduino.cc/forum/index.php/board,31.0.html

    0x0ERROR



  • Hi Leute,
    Habs jetzt (eigentlich schon vor einer ganzen Weile, hatte viel um die Ohren) "gelöst": Es war, wieder Erwartens, ⚠ wichtig Motor Controller GND ans Board GND an zu schließen, da sonst HIGH und LOW nicht richtig erkannt werden 🙄
    MfG DragonRaider


Anmelden zum Antworten