Hallo zusammen, Ich habe bin relativ neu in der Elektronik und habe nun ein Problem bei dem ich leider nicht weiter komme. Verwendete Hardware: 1. Stepper Motor Nema8 (denke ist egal welcher genau) 2. Pololu Low Voltage Treiber Drv 8834 (https://www.pololu.com/product/2134) 3. Arduino Nano 33 Iot (Strom kommt vom USB Kabel, vom Laptop) 4. Netzteil 7,5V ; 2A (Motor power supply) Grundsätzlicher Aufbau: Grundsätzlich ist der Aufbau der Gleiche wie auf der Pololu Produktseite unter "Minimal Wiring diagram" nur ist M0 und M1 noch auf Masse. Bis dahin funktioniert auch alles wie es soll. Die Einstellung wie viel Strom der Stepper im Peak bekommt wird bei diesem Treiber über ein Poti eingestellt, durch welches eine Referenzspannung festgelegt wird (zwischen 0 und 2V). https://www.pololu.com/file/0J616/drv8834-low-voltage-stepper-motor-driver-schematic-diagram.pdf In dieser schematic ist das R1 (links unten, verbunden mit VrefO, AVref, BVref und Gnd) Ich möchte diese Einstellung aber gerne Dynamisch über meinen Arduino Steuern können. Dazu habe ich das Poti ausgelötete und und den Pin A2 (Das ist ein Analoger Ausgang 0-2V) des Nano mit dem Pad verbunden, welches mit AVref und Bvref verbunden war. Jetzt kann ich über ein kleines Programm unterschiedlich viel Spannung auf die beiden A/Bvref Eingänge geben. Das "funktioniert" auch so ein bisschen, allerdings halt nur ein bisschen... 1: Stelle ich nun ungefähr 0,5V am Pin A2 ein messe ich an den Spulen des Motors 0,22 Ampere maximal. Zum vergleich wenn ich 0,5V über das Poti eingestellt hatte habe ich 0,33 Ampere gemessen. Diesen unterschied spürt man natürlich auch deutlich an der Kraft des Motors. 2: Die Spannung die ich an Vref messe ist nicht Konstant. Genauer: Arduino hat Strom(usb) und Motor power supply vom Netzt getrennt: Vref = 0,5 Arduino hat Strom(usb) und Motor power supply angeschlossen: Vref = 1,2 V Arduino hat Strom(usb) und Motor dreht sich: Vref = 1,3 V Die Spannung an Vref steigt also deutlich: Ich muss zugeben das ich hier mit meinem Wissen leider nicht mehr weiter komme und wollte euch daher fragen ob mir jemand weiterhelfen kann. Ich möchte auch anmerken das ich nicht nach einer Musterlösung suche sondern ich würde zunächst gerne Verstehen was hier überhaupt Falsch läuft, also was ist mein Denkfehler und dann natürlich wo ich mit der Lösung ansetzen kann. Vielen dank schonmal, Grüße Hannes
Johannes S. schrieb: > Dazu habe ich das Poti ausgelötete und und den Pin A2 (Das ist ein > Analoger Ausgang 0-2V) des Nano mit dem Pad verbunden, welches mit AVref > und Bvref verbunden war. Der ATmega328 auf einem Arduino Nano hat keinen Analogausgang. Der kann nur digitale Signale ausgeben. Wenn du das PWM-Signal eines Arduino Nano zur Steuerung verwenden willst, brauchst du einen Tiefpass zwischen digitalem Ausgang des µC und Analogeingangen für AVREF bzw. BVREF.
erstmal vielen Dank für die wirklich schnelle Antwort :). Ich glätte bisher das Signal nicht da ich davon ausgegangen bin, dass es ein echter Analoger Output ist. Steht zumindest auf dieser Seite: https://www.arduino.cc/reference/de/language/functions/analog-io/analogwrite/ Ich verwende einen Nano 33 Iot, der sollte, wenn ich die stern Semantik hier richtig verstehe, schon einen echten Analogen Ausgang haben oder verstehe ich das hier falsch ? Trotzdem werde ich mich mal genauer mit dem Tiefpass befassen. Danke :)
Johannes S. schrieb: > Ich verwende einen Nano 33 Iot, der sollte, wenn ich die stern Semantik > hier richtig verstehe, schon einen echten Analogen Ausgang haben oder > verstehe ich das hier falsch ? Tust du. Da steht: "Nach Aufruf von analogWrite() generiert die Funktion eine stetige Rechteckwelle ...". Eine Rechteckwelle ist keine Gleichspannung sondern ein digitales Signal.
Wolfgang schrieb: > Eine Rechteckwelle ist keine Gleichspannung sondern ein digitales > Signal. Meist mit ~1 kHz. Glätten mit RC schadet sicherlich nicht
Hallo zusammen, Also ich habe es heute leider nicht geschafft einen Passenden Kondensator für den Einbau eines Tiefpass Filters zu besorgen. Allerdings hat der Arduino Nano 33 IOT doch einen richtigen Analogen Ausgang und zwar den Pin A0. https://content.arduino.cc/assets/NANO33IoTV2.0_sch.pdf Der Arduino Nano 33 Iot hat nämlich keine ATmega, wie der normale Nano, sondern einen SAMD21 Chip verbaut. Verwende ich den Pin A0 funktioniert alles soweit. Jetzt hätte ich zwar gerne noch den Tiefpass probiert und hier das Ergebnis geteilt, aber die Läden haben hier momentan leider noch zu. Ich denke aber das ihr recht habt und die Regelung des Vref Pins, unter Verwendung eines Tiefpassfilters, auch mit Pin A2 möglich sein sollte. Jedenfalls vielen Dank für eure Hilfe! und allen viel glück bei euren Projekten. :)
Timmo H. schrieb: > Wolfgang schrieb: >> Eine Rechteckwelle ist keine Gleichspannung sondern ein digitales >> Signal. > Meist mit ~1 kHz. Glätten mit RC schadet sicherlich nicht Was heit "meist"? Bei einem standardmäßigen Arduino Nano 33 Iot werden es wohl 732 Hz sein.
Johannes S. schrieb: > Der Arduino Nano 33 Iot hat nämlich keine ATmega, wie der normale Nano, > sondern einen SAMD21 Chip verbaut. > Verwende ich den Pin A0 funktioniert alles soweit. Wer ahnt, dass ein Arduino Nano 33 Iot auf einem ganz anderen Prozessor als der Arduino Nano basiert. Bei Nutzung eines echten 10-Bit DAC kannst du dir den Kondensator natürlich sparen. Je nach Aufbau der Ausgangsstufe kann der dann sogar schädlich sein. Nur um eine Referenzspannung für einen Schrittmotor zu erzeugen, ist der ADC viel zu schade. Da tut es einer der PWM-Ausgänge mit Tiefpass. Falls der DAC im SAMD21G18A sonst allerdings nicht genutzt wird, ist das egal.
>Nur um eine Referenzspannung für einen Schrittmotor zu erzeugen, ist der >ADC viel zu schade. DAC, Wolfgang hat leichte Probleme ADC und DAC auseinander zu halten.
Jonas B. schrieb: > Probleme ADC und DAC auseinander zu halten Das ist ja fast wie CUT und TUC ... LG, Sebastian
Jonas B. schrieb: > DAC, Wolfgang hat leichte Probleme ADC und DAC auseinander zu halten. Sorry, ich gelobe Besserung. Zum Glück ist es nur ein Problem mit der "Ausgabe" und kein grundlegendes Verständnissproblem. ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.