SainSmart Mega 2560 ATmega2560-16AU - sehr langsam

Hallo Zusammen,

kann mir jemand ein Tip geben, wie ich am schnellsten testen kann, wo das Problem liegt. Ich bin Beginner und war der Meinung, das ich gleich mit einem SainSmart Mega 2560 ATmega2560-16AU starten soll. Mir ist bei mehreren Einsteigerprojekten aufgefallen, dass mein Board sehr langsam reagiert. Projekte mit Servos und Stepper sind nicht zu realisieren.

Keine Ahnung, ob es am Board, am Rechner oder am Betriebssystem Windows 10 liegt. Ich schließe die Komponenten, Aufbaufehler und die Arduino- Software (1.6.5) einfach mal aus. Einstellungen unter Werkzeug (Prozessor und Platine) habe ich richtig eingestellt. Das Board habe ich auf Grund der guten Bewertungen ausgewählt.

Hat jemand ähnliche Probleme (beheben können).

Danke im vorraus.

An Windows wirds nicht liegen, das läuft auf dem PC und nicht auf dem Mega Und am Mega wirds auch nicht liegen.... Du hast ein Problem mit dem Programm,

Um weitere Aussagen zu machen, solltest du uns den Code zeigen, der die Probleme bereitet.

Vielleicht falsch gefust ab Werk? Mach mal den Blink Test mit delay(1000) und prüfe, ob es alle Sekunde blinkt.

Danke für die schnelle Antwort. Also das Programm habe ich auch als Fehlerquelle ausgeschlossen, da ich zur Ansteuerung meiner Servos u.a das Beispielprogramm Servo ==> Sweep verwendet habe. Ein noch einfacheres Programm zum anfahren von einer Position hat noch funktioniert, aber wie bereits erwähnt sehr langsam. Das Bsp.- Programm Sweep lief sehr sehr langsam und auch nicht zuverlässig.

Ich dachte noch es liegt evtl an den Servos. Jetzt habe ich aber Stepper angeschlossen auch daort habe ich das selbe Problem. Die Stepper laufen sehr langsam. Ich habe es auch schon bei einer einfachen Input Schaltung bemerkt.

Für weitere Hilfe wäre ich dankbar.

Hast du den Blink Test gemacht?

Du solltest mal alle Information zur Verfügung stellen. Das bestimmte bestimmt in Ordnung sind, behaupten die meisten, aber beweisen können es die wenigsten!

Gerade bei Steppern/Servos kannst du direkt schon den ersten Fehler begehen, dass du diesen direkt an dem Arduino betreibst, was zu nicht kontrollierbaren Resets führts. Poste den Schaltplan, Bilder vom Aufbau, Sketch etc.

Bevor wir hier weiter um den heißen Brei reden müssen, mach wie hier bereits gesagt, den Blink-Test, und nur diesen! Nicht irgendwas komplexeres wie Servo Ansteuerung o.ä. Blinkt deine LED im Sekundentakt (1s AN, 1s AUS), dann ist das Board soweit korrekt eingestellt (Fuse auf 16MHz). Sollte die LED jedoch nur alle 2s ihren Zustand ändern, so sind deine Fuses falsch gesetzt und der Atmega läuft nur mit 8MHz.

Sollte die LED jedoch nur alle 2s ihren Zustand ändern, so sind deine Fuses falsch gesetzt und der Atmega läuft nur mit 8MHz.

CLOCKDIV8 Also 2 MHz --> 8Sec oder 1MHz --> 16Sec Allerdings äußerst unwahrscheinlich weil dann die Baudrate für den Bootloader nicht stimmt.

Also das Programm habe ich auch als Fehlerquelle ausgeschlossen,

Perfekt!

Für weitere Hilfe wäre ich dankbar.

Das glaube ich dir! Aber wie soll man dir helfen, wenn du noch nicht einmal dein Programm zeigen willst....

[ironie] So sieht ein guter Start in die Arduinowelt aus! Das Dickste und fetteste Material auf dem Tisch, aber jammern und heulen, und geheim halten was du da tust! [/ironie]

Meine Glaskugel schreit: Delays!

Könnt ja jemand die Idee aufgreifen und verkaufen.

skorpi08: Könnt ja jemand die Idee aufgreifen und verkaufen.

Welche?

Mega2560 kaputt? Win10 kaputt? Programm heile? Oder, Win10 macht Mega kaputt?

;-)

Und wie verkaufen?

Zum Problem: Habe mal Google angeworfen mit "Beispielprogramm Servo ==> Sweep" o.ä. Und siehe da, der Code braucht 2,7Sec für hin, und 2,7Sec für zurück. Also pro Durchlauf 5,4Sec. Ich würde das auch als langsam empfinden. Ist aber offensichtlich so von dem Programmierer, des Beispiels, beabsichtigt. Und dem entsprechend: Voll normal.

Also alles OK!

kann mir jemand ein Tip geben, wie ich am schnellsten testen kann, wo das Problem liegt. Ich bin Beginner und war der Meinung, das ich gleich mit einem SainSmart Mega 2560 ATmega2560-16AU starten soll.

Mir ist bei mehreren Einsteigerprojekten aufgefallen, dass mein Board sehr langsam reagiert. Projekte mit Servos und Stepper sind nicht zu realisieren.

Das sagt doch schon alles aus, aber keinem von uns wird geglaubt.

HotSystems: Das sagt doch schon alles aus, aber keinem von uns wird geglaubt.

Vielleicht bist du nicht vertrauenerweckend genug? ;-) Vielleicht sind wir alle nicht vertrauenerweckend genug?

Meine persönliche Sicht: Wer hier im Forum, eigentlich egal, in welchem Forum, oder zu welchem Thema, eine Diagnose gestellt bekommen möchte, ist vermutlich selber nicht in der Lage eine klare Diagnose zu stellen. Sonst müsste er/sie/es nicht hier fragen. Es ist also völlig Sinnfrei irgendwelche eigenen Diagnosen, welche nur Vermutungen sein können zu stellen. Wirre Vermutungen verdecken/verbergen die wahren Ursachen. Erschweren den Weg zu einer Diagnose. Einzig klare wertfreie Informationen sind hilfreich. Abwegiges hemmt.

Das ist alles nicht schlimm, oder böse, oder ..., sondern muss nur einmal begriffen werden. Dieser Groschen muss fallen.

Der Kopf ist rund, damit das Denken die Richtung wechseln kann.

Wer in die falsche Richtung läuft, braucht sich nicht zu beeilen.

aaucht: kann mir jemand ein Tip geben, wie ich am schnellsten testen kann, wo das Problem liegt.

Am schnellsten geht es mit der Suchfunktion im Code-Editor, Tastenkürzel "Strg-F".

Suche nach Aufrufen von "delay" im Quellcode des Programms!

Wenn ein (oder mehrere) Aufrufe der "delay" Funktion im Quellcode stehen, hast Du das Problem gefunden.

Die Funktion "delay" ist nur dazu da, die Programmausführung für eine bestimmte Zeit zu blockieren und das Programm langsam zu machen. Die Arduino-Macher verwenden diese delay() Funktion deshalb extra oft in ihren Beispielprogrammen, damit die Noobs mit dem Denken mitkommen, wenn der Arduino sein Programm ausführt.

In "echten" Programmen, die nicht extra langsam ausgeführt werden sollen, ist die delay() Funktion völlig unbrauchbar.

Allerdings kommt es zu Problemen, wenn Noobs deshalb denken, "delay()" wäre eine brauchbare Funktion für irgendein sinnvolles Programm, außer um irgendwas extra langsam auszuführen, indem einfach der Controller für eine bestimmte Zeit blockiert wird.

Wenn Du in einem "echten" Programm tatsächlich irgendwas langsam ausführen möchtest (z.B. ein Servo soll langsam drehen statt schnell), verwendest Du dafür nie delay(), sondern Du verwendest eventuell die millis() Funktion zum Ermitteln der Zeitpunkte, wann im Zeitablauf etwas zu tun ist, und dann wird es getan.

Ich bin mir ja sicher, dass die Ursache im Board liegt.
Die billigen China-Klone können einfach nicht so schnell rechnen wie das Original.

Am besten ein neues Board im Orginal Arduino-Shop kaufen, das läuft locker dreimal so schnell!
8) :roll_eyes: :money_mouth_face:

Und der Arduino Community ist auch geholfen.

Deshalb schließe ich meine 6 China-Klone in reihe an, dann läufts prima.

skorpi08: Deshalb schließe ich meine 6 China-Klone in reihe an, dann läufts prima.

Einer meiner Pro Minis (3,3V 8MHz) ist VIEL schneller, als die andern Pro Mini (5V 16MHz).

Ich glaube, der Montageort ist daran maßgeblich beteiligt.

Cool! Aber du solltest sie mal wieder bewegen. Da wächst ja schon ein Baum aus dem Tank!

Sorry, für die späte Antwort. Bedank mich erstmal für die schnellen Antworten. Nachdem ich vielen Vorschlägen gefolgt bin habe ich jetzt den Fehler entdeckt. Es lag daran, dass der Servo mit zu wenig Strom versorgt war.Ich habe mit towerpro mg955 Servos gearbeitet. Diese brauchen nach meiner jetzigen Kenntnis ~2A damit diese Ordentlich laufen. Vielleicht kann ich hiermit anderen Neulingen helfen.

Grüße

aaucht