Schlagwort-Archive: A4988

Aufbau der Steuerelektronik – Teil 2

Der nächste Schritt besteht aus dem Aufkleben des Kühlkörpers auf den Schrittmotortreiber. Die Treiber werden im Betrieb recht heiß. Hier werden bezogen auf die Größe des Chips ziemlich hohe Ströme geschaltet. Das ist auch notwendig, denn die Motoren, die den Strom abnehmen, sollen ja kräftig und drehmomentstark arbeiten.

Auch hier gilt wieder, dass sauberes Arbeiten spätere Korrekturen verhindern kann. Fettfreiheit ist das Wichtigste dabei.

Wir benötigen den Schrittmotortreiber, den Kühlkörper und ein Spezialklebeband für Kühlkörper. Das Klebeband sieht zwar fast aus wie Teppichklebeband, hat aber definitiv ganz andere Eigenschaften. Ich benutze und versende mit meinen Elektroniksätzen das „thermal adhesive tape“ von „akasa“. Zu finden ist es u.a. bei Amazon. Es ist in der Lage über die Klebeschicht Wärme abzuleiten. Eine Anleitung liegt dem Klebeband bei, – egal ob nun von mir oder woanders gekauft.

Zunächst wird die benötigte Fläche ermittelt:

Treiberabmessung 2

Treiberabmessung 1

Nur die Größe des kleinen Chips auf der Trägerplatine ist entscheidend. Die benötigte Größe wird sauber aus dem Klebeband ausgeschitten, – möglichst mit einem sehr scharfen Messer.

Klebestreifen zuschneiden

Beide Klebeflächen die miteinander verklebt werden sollen, Chipoberfläche und Kühlkörperunterseite, müssen vor Aufbringen des Klebebands entfettet werden. Dazu eignet sich hochreiner Alkohol am besten, zum Beispiel Isopropylalkohol. Bei Alkohol kann der Elektronik auch nicht passieren. Alkohol auf ein Stück Papiertuch (Küchenrolle) oder einen Q-Tipp geben und damit die Oberflächen vorsichtig reinigen.

Jetzt wird die gelbe Schutzfolie vom Klebestreifen entfernt. Das kann recht fummelig sein. Sollte sich die die rote Folie lösen macht das auch nichts, dann ist das halt die erste Klebeseite. Wichtig: Erst die Folie auf den Chip. Dann den Kühlkörper aufsetzen. Nicht anders herum! Es empfielt sich unbedingt eine feine Pinzette für das Positionieren des Klebestreifens auf dem Chip zu benutzen.

Klebestreifen aufbringen

Treiber mit Klebestreifen 1

Der Klebestreifen muss die gesamte Chipoberfläche einnehmen !! Damit man das kontrolliert durchführen kann, wird die Reihenfolge genau so gewählt wie beschrieben.

Jetzt wird die verbleibende Schutzfolie (üblicherweise die rote) entfernt.

Treiber mit Klebestreifen 2

… und der Kühlkörper wird positioniert …

Treiber mit Kühlkörper

Die Richtung der Kühlrippen ist völlig egal.

Bitte jetzt nicht am Kühlkörper zerren, um zu prüfen, ob er fest sitzt. Genauso darf der Kühlkörper auch nicht nochmal abenommen werden um ihn neu zu positionieren. Dann muss die ganze Klebefolie sauber entfernt werden und das Ganze muss erneut durchgeführt werden.

Wer seine RAMPS-Platine etwas verbessern will, tauscht vor dem Aufsetzen der Treiber die Anschlüsse gegen hochwertigere  PTR-Stecksysteme aus. Ich kaufe die üblicherweise vom Elektronikhändler meines Vertrauens, nämlich hier.

Heizungsanschlüsse PTR

Die blaue Anschlussleiste (D10, D09, D08) für die drei Heizungen (Hotend 1, Hotend 2, Heatbed) kann relativ leicht gegen die PTR-Anschlüsse getauscht werden. Dazu wird die blaue Leiste ausgelötet und die grünen Buchsen werden eingelötet. Man sollte allerdings schon etwas Erfahrung mit soetwas haben.  Wenn es ordentlich gemacht wird, sieht es wie im Bild unten aus. Wer sich das nicht zutraut sollte es aus Sicherheitsgründen lieber sein lassen. Denn über diese Anschlüsse fließen relativ hohe Ströme. Sind die Lötungen nicht perfekt, gibt es hohe Übergangswiderstände und das führt zu Überhitzungen und gegebenenfalls zum Brand. Also Vorsicht!

Heizungsanschluss mit PTR Oberseite

Auf der Oberseite auf Ausrichtung und flaches direktes Aufliegen auf die Platine achten.

Heizungsanschluss mit PTR Unterseite

Auf der Unterseite müssen die Lötungen schön gleichmäßig glatt mit einer geschlossenen Oberfläche ringsherum um den Anschlussstift aussehen. Im Idealfall sieht es genauso aus, wie die vier bereits vorhandenen PTR-Anschlüsse für die Stromversorgung.

Wenn jetzt alle Schrittmotortreiber mit Kühlkörpern versehen sind, werden sie in die entsprechenden Positionen auf dem RAMPS gebracht. Alle Steckplätze sind bei guten Platinen mit Signalnamen der jeweiligen Pins beschriftet.

Pinsignale RAMPS

Pinsignale Treiber

Durch Klicken auf das Bild kann man es besser erkennen:  Ziemlich genau in der Mitte des oberen Bildes vom RAMPS sieht man die Pinbezeichnungen  „STEP“ und „DIR“. Und genau die gleichen Bezeichnungen findet man auf der Rückseite der Treiber auf der linken Stiftreihe oben. Das gilt für die A4988 und für die hier behandelten DRV8825 identisch, da sie pinkompatibel sind.

Daraus folgt, dass die Einbaulage so sein muss:

Einbaulage Treiber

Für den A4988-Treiber sieht das so aus:

Pinsignale Treiber A4988Einbaulage Treiber A4988

In gleicher Weise und Richtung werden die anderen Positionen auf der RAMPS-Platine mit Treibern bestückt. Das Eindrücken der Treiberplatinen erfolgt, indem man auf die Kontaktreihen oben und unten möglichst gleichmäßig drückt. Niemals auf die Platinenmitte oder den Treiberchip mit dem Kühlkörper drücken. Das könnte den Baustein zerstören.

In die untere Reihe passen drei Treiber für die Achsenbewegungen des 3D-Druckers. Abgesehen von der Logik für Deltadrucker, von der ich bisher keine Ahnung habe, ist das üblicherweise von links nach rechts: x, y, z. Die Bezeichnungen sind auf der Platine auch zu sehen.

In der oberen Reihe sind die Treiber für die Extruder angesiedelt. Sofern nur ein Extruder und ein Hotend verbaut werden, braucht nur die linke Position E0 gesteckt werden. Bei einem Doppelextruder benötigt man zudem noch den rechten Steckplatz E1.

Wenn nur ein Extruder genutzt wird sollte der rechte obere Steckplatz E1 frei bleiben.

Ein voll bestücktes RAMPS 1.4 sieht zum Schluss so aus:

RAMPS mit Treibern

RAMPS mit Treibern Seitenansicht

Die Seitenansicht zeige ich deshalb hier, weil es sehr wichtig ist, dass die Treiberplatinen ringsherum komplett in den Fassungen stecken. Wenn das nicht sofort geht, muss man sich ansehen, wo es hakt und dann gegebenenfalls etwas Kunststoff mit einer Feile oder einem Messer beseitigen.

Aufbau der Steuerelektronik – Teil 1

Der Aufbau der Steuerelektronik ist für viele Neulinge auf dem Gebiet des 3D-Drucks eine gewisse Herausforderung. ich spreche hier natürlich die Puristen an, die sich ihren Drucker komplett selbst zusammenbauen.

Die Teile für den Drucker kommen dabei meist aus den unterschiedlichsten Quellen. Egal ob nun im großen Internetshop oder über ebay der Einkauf stattfindet: Der Zusammenbau muss wieder im Internet oder bei Freunden gelernt werden. Bevor ich gerade mit diesem Artikel angefangen habe, habe ich noch schnell eine kleine Recherche über google gemacht. Speziell der Zusammenbau der Elektronik ist nicht so leicht zu finden. Ich habe mir damals auch mein Wissen über diverse Internetseiten zusammengesucht. Vielleicht schaffe ich es ja mit dieser Anleitung  verständlich und nachvollziehbar den Aufbau und die Programmierung zu beschreiben. Ich bediene mich dabei der Teie, die ich sowohl selbst benutze als auch hier oder per ebay verkaufe.

Und das sind die Einzelteile:

arduino

Arduino MEGA 2560 oder ein Clone davon

ramps

Ein RAMPS 1.4 mit Steckern und Jumpern

schrittmotortreiber

Ein Schrittmotortreiber mit Kühlkörper

Klebestreifen

Kleber um den Kühlkörper auf den Schrittmotortreiber aufzukleben

Bei allen Arbeiten mit der Elektronik ist immer darauf zu achten, dass sich keinerlei statische Aufladung übertragen kann. Wenn am Arbeitsplatz öfters mal ein Funke überschlägt, weil man vorher mit den Pantoffeln über den Teppich gelaufen ist, ist das eine denkbar schlechte Vorraussetzung für solche Arbeiten. Die Teile können schnell deswegen zerstört werden. Wenn sich eine geerdete Lampe am Arbeitsplatz befindet, reicht es in der Regel aus, zum Beispiel den Metallschirm der Lampe kurz anzufassen, um die statische Aufladung los zu werden. Weiter Tips für Arbeiten an elektronischen Schaltungen findet man im Internet. Das wüde hier zu weit führen ….

Auf der RAMPS-Platine ist eine Besonderheit zu beachten, wenn man die Elektronik über verschiedene Anschlüsse mit Strom versorgen will. Das wird insbesondere dann wichtig, wenn die Elektronik nicht über einen PC per USB angeschlossen wird, sondern mit einer Displayelektronik gesteuert werden soll. In diesem Fall wird das Arduino-Board nicht per USB mit Strom versorgt. Das muss in diesem Fall über die 12V-Leitung am RAMPS erfolgen. Die RAMPS-Platine muss dafür aber an einer bestimmten Stelle mit einer Diode bestückt sein. Auf dem folgenden Bild ist die Lage und Einbaurichtung der Diode zu erkennen:

Besonderheit D1

Im unteren Teil der Platine in der Mitte ist im Bild die betreffende Diode (D1) mit einem grünen Kasten umrandet und mit einem grünen Pfeil gekennzeichnet. Nur wenn diese Diode vorhanden ist, kann die Elektronik sowohl mit USB als auch über den 12V-Anschluss auf dem RAMPS betrieben werden. Es dürfen selbstverständlich auch beide Anschlüsse vorhanden sein. Die Elektronik weiß dann selbst, welche Versorgung sie nehmen soll. Sollte eine Nachbestückung notwendig sein, muss eine Diode vom Typ 1N4004 benutzt werden.

In jedem Fall tabu ist für unsere Anwendung die Anschlussbuchse auf dem arduino-Board, die im folgenden Bild rot durchgestrichen ist. Nicht benutzen !!!

Versorgung arduino

Bevor ich jetzt auf die Spezialitäten des RAMPS 1.4 eingehe, möchte ich noch auf das englischsprachige Wiki verweisen. Hier wird auch alles sehr gut erklärt. Schaltpläne, Bestückungspläne und Hintergrundwissen sind dortzu finden.

Der zentrale Zweck des RAMPS-Shields ist es, eine Verbindung zwischen der Prozessorlogik des arduino und der Hardware, wie zum Beipiel Schrittmotoren, Heizungen und Sensoren, herzustellen. Der Begriff Shield hat sich in diesem Zusammenhang eingebürgert, weil die Funktionsplatine wie ein Schutzschild auf das arduino-Board aufgesteckt wird.

Auf dem RAMPS werden nun zunächst die Jumper für unsere Schrittmotoren gesetzt. Die Steckplätze sind im folgenden Bild grün umrandet dargestellt.

ramps Jumper

Es gibt Steckplätze für 5 Schrittmotortreiber und deshalb muss man auch fünf mal die Schrittweite einstellen. Die Steckplätze der Jumper werden von link nach rechts jeweils mit MS1, MS2 und MS3 bezeichnet. Gemäß folgender Tabelle wird für A4988-Treiber die Schrittweite (Microstepping) eingestellt:

MS1 MS2 MS3 Schrittweite
0 0 0 1 -> Vollschritt
x 0 0 1/2 -> Halbschritt
0 x 0 1/4 -> Viertelschritt
x x 0 1/8 -> Achtelschritt
x x x 1/16 -> Sechzehntelschritt

Beim höherwertigen DRV8825-Treiber von Pololu sind noch mehr Möglichkeiten gegeben:

MS1 MS2 MS3 Schrittweite
0 0 0 1 -> Vollschritt
x 0 0 1/2 -> Halbschritt
0 x 0 1/4 -> Viertelschritt
x x 0 1/8 -> Achtelschritt
0 0 x 1/16 -> Sechzehntelschritt
x 0 x 1/32 -> Zweiunddressigstelschritt
0 x x 1/32 -> Zweiunddressigstelschritt
x x x 1/32 -> Zweiunddressigstelschritt

Da nahezu alle Konfigurationen im 3D-Druckerbereich von 1/16-Mikrostepping ausgehen, rate ich dazu, dies auch beim Aufbau einzustellen. Das heißt:

Beim A4988 werden alle Jumper gesteckt.

Jumper A4988

Beim DRV8825 wird nur der rechte Jumper gesteckt. Mitte und Links bleiben frei.

Jumper DRV8825

Projekt: Drahtführung für Wickelautomat (Teil 4)

Das kleine Testprogramm hilft auf Dauer natürlich nicht weiter. Es war ja auch nur zum Test gedacht. Sowohl dieses kleine Testprogramm als auch die in den Arduino-Bibliotheken vorhandenen Programmmteile haben den Nachteil, dass jegliche Motorbewegungen immer das Programm solange aufhalten, bis der Motor die Zielposition erreicht hat. Da beim Wickelautomat aber andere Programmteile auch in Echtzeit laufen müssen, wäre das fatal.

Ich habe eine andere Programmbibliothek gefunden: AccelStepper

Der Vorteil dieser Bibliothek ist, dass eine Bewegung initiiert wird und bei jedem Durchlauf der loop()-Funktion ein Stück weit vorwärtsgetrieben wird. Das Programm muss also nicht an der entsprechenden Stelle warten.

Zunächst muss die neue Bibliothek in die Arduino Entwicklungsumgebung integriert werden. Dazu wird die aktuelle Version von der AccelStepper-Projektseite geladen. Der entpackte Ordner AccelStepper wird nach Arduino/libraries kopiert. Kleine Kontrolle: In diesem Ordner muss die AccelStepper.h enthalten sein.

Von den Beispielen probiere ich als Erstes „Bounce.pde“

// Bounce.pde
// -*- mode: C++ -*-
//
// Make a single stepper bounce from one limit to another
//
// Copyright (C) 2012 Mike McCauley
// $Id: Random.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $
#include <AccelStepper.h>
// Define a stepper and the pins it will use
AccelStepper stepper; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
void setup()
{
// Change these to suit your stepper if you want
stepper.setMaxSpeed(100);
stepper.setAcceleration(20);
stepper.moveTo(500);
}
void loop()
{
// If at the end of travel go to the other end
if (stepper.distanceToGo() == 0)
stepper.moveTo(-stepper.currentPosition());
stepper.run();
}

Das ist aber noch nicht ganz das, was ich brauche. Die Anschlussart passt noch nicht. Sie wird definiert über AccelStepper::
Im Beispiel wird über eine H-Bridge gearbeitet. 4 Steuerleitungen werden gebraucht. Ich arbeite aber mit einem Treiber, der nur Step und Dir kennt. Der Constructor wir also geändert in:

AccelStepper::DRIVER
… und da ich STEP auf Pin 2 und DIR auf Pin5 gelegt habe, muss auch das dem Construktor bekannt gegeben werden. Der gesamte Constructor lautet also auf:

AccelStepper stepper(AccelStepper::DRIVER, 2, 5);

„stepper“ ist übrigens ganz einfach der Name meines Motors. Alle Funktionen werden mit diesem Namen aufgerufen: stepper.xxxx();

Das ist das fertige Programm in der Entwicklungsumgebung. Erfolgreich kompiliert ist es auch schon.

Bounce

Das Programm habe ich dann übertragen und dann läuft es auch schon. Aber der Treiber wird sehr schnell heiß und nach kurzer Zeit bleibt der Motor stehen. Also Speed runter. Poti auf Treiber einstellen?

Die Referenzspannung lag tatsächlich bei 1,5V. Das ist erheblich zu viel. Nach der üblichen Formel berechnet benötige ich 0,875V. Ich habe das Poti im Uhrzeigersinn gedreht, so dass ich jetzt etwas über 0,6V habe. Jetzt scheint es zu passen. Wenn noch Last draufkommt, werde ich vielleicht höher drehen müssen. Komischerweise ist im Schaltbild von Pololu die Drehrichtung zur Reduzierung der Spannung genau andersherum ausgewiesen. Seltsam.

Ich habe auch mal den Befehl moveTo auf 200 gesetzt. Der Motor hat schließlich 200 Schritte pro Umdrehung. Erst habe ich gestaunt, dass in jedem Zyklus die Fahne 2 Runden dreht. Aber klar. Von 200 bis -200 sind es ja auch 2 volle Umdrehungen. Also passt alles.

Ich spiele jetzt noch ein wenig mit setMaxSpeed und SetAcceleration.
Der erste Wert sagt aus, wieviele Schritte pro Sekunde maximal ausgeführt werden dürfen. Der zweite Wert sagt aus wie stark die Beschleunigung sein soll in Schritten pro Sekunde².

 

 

Projekt: Drahtführung für Wickelautomat (Teil 3)

Jetzt werde ich die ersten Gehversuche mit einem Schrittmotor wagen. Ich verwende dazu den schon aus dem letzten Teil bekannten Arduino Nano, einen Treiberbaustein Pololu DRV8825 und natürlich einen Schrittmotor. Der Schrittmotor hat die Typbezeichnung 17HS5425. Wichtig ist daran eigentlich nur, dass es ein bipolarer Schrittmotor ist. Daher hat er 2 Paare Anschlussdrähte, die jeweils eine Motorwicklung ansteuern.

Die Schaltung ist eigentlich zwischen DRV8825 und dem etwas bekannteren Typ A4988 gleich. Besser gesagt, in eine Schaltung für einen A4988 kann man auch einen DRV8825 einsetzen. Andersrum ist das nicht sichergestellt. Ich verwende deshalb diese Schaltung:Pololu DRV8825 Beschaltung

In dieser Schaltung kann sowohl der A4988 als auch der DRV8825 verwendet werden, auch wenn eine Pinbezeichnung verändert ist. Beim DRV8825 gibt es einen FAULT-Eingang. Der gleiche Pin ist am A4988 mit VDD bezeichnet. Und tatsächlich wird dieser Pin auch mit der Ausgangsspannung des Nano beschaltet. Am Nano  ist das der PIN „+5V“. Der liefert beim Anschluss an USB (oder andere) Strom. Zum Vergleich die A4988-Schaltung.Pololu A4988 Beschaltung

In dieser Schaltung bleibt bei mir „logic power supply“ unbeschaltet, da ich den Nano mit USB-Strom versorge. Am Arduino Nano gibt es übrigens für GND zwei Pins, die zu verbinden sind.

Kleine Hintergrundinfo:
Am DRV8825 ist FAULT intern über einen Widerstand mit SLEEP verbunden. Somit macht dann auch die Brücke zu RESET Sinn.

VMOT und GND werden mit der Stromversorgung für den Schrittmotor versorgt. Ja, da benötigt man extra Strom. Deshalb ja auch der Treiberbaustein. Denn der stellt den Motorwicklungen gezielt Strom zur Verfügung. Die läppischen Milliampere über USB reichen da bei Weitem nicht. Die Stromversorgung sollte unbedingt mit dem 100 µF (Mikrofarad) -Elko geglättet werden. Jetzt noch den Schrittmotor selbst anschließen und die Schaltung ist fertig. Die Verbindung zum Schrittmotor sollte unbedingt sehr sicher angelegt werden. Sollte auch nur ein Pin während des Betriebs keinen Kontakt haben löst sich der Treiberbaustein per Rauchwolke in wertlosen Schrott auf.

Zuletzt darf natürlich die Datenverbindung zwischen Nano und Treiberbaustein nicht fehlen. Welche Pins am Nano genommen werden ist egal, solange es digitale Pins sind. Die analogen sollten hier nicht genommen werden. Ich habe Pin D2 und D5 genommen.

Hier (Youtube) noch ein kleines Video zur Schaltungserklärung auf dem Breadboard.

Nachdem alles verdrahtet ist, kontrolliert wurde und die 12V-Stromversorgung für den Schrittmotor eingeschaltet ist lade ich ein erstes extrem simples Testprogramm auf den Arduino Nano. Einziges Ziel ist die Funktionskontrolle der Schaltung.Stepper ansteuern

Zum leichteren Kopieren nochmal als Text …

/*
Schrittmotor
alle 200ms ein Schritt in eine Richtung.

This example code is in the public domain.
*/

void setup() { 
// setzen der Digitalpins 1 und 2 als Ausgang.
pinMode(5, OUTPUT);
pinMode(2, OUTPUT); 
}

void loop() {
digitalWrite(5, HIGH); // DIR an Pin D5
digitalWrite(2, HIGH); // STEP an Pin D2
delay(100); // warte eine zehntel Sekunde
digitalWrite(2, LOW); // Gnd an Pin D2
delay(100); // warte eine zehntel Sekunde
}

Das Programm habe ich vor einiger Zeit in einem Forum entdeckt und gleich kopiert. Leider finde ich die Quelle nicht wieder. Auch wenn es als PD gekennzeichnet ist: Wenn jemand die Quelle weiß, wäre ich für den Hinweis dankbar.

Wenn das Programm übertragen wurde, sollte sich der Schrittmotor im Zehntelsekundentakt in Bewegung setzen. Bei mir hat es auf Anhieb funktioniert.

Pololu (Schrittmotortreiber) einstellen

Mal wieder ein wenig Grundlagen. Und diesmal voller Eigennutzen, denn ich brauchte die Information selbst, um etwas zu experimentieren.

Die üblichen Schrittmotortreiber im Bereich 3D-Druck kommen von der Firma Pololu. Es gibt da zum einen den A4988 und zum anderen den DRV8825. Der Letztgenannte hält höhere Ströme aus, wird zudem nicht so heiß und bietet 1/32 Mikrosteps. Bei Neubauten würde ich dazu raten.

Diese Treiberbausteine müssen eingestellt werden, denn die Bausteine und die Schrittmotoren können ja mit einem großen Spannungsbereich betrieben werden. Die Nennspannung des Schrittmotors ist eigentlich völlig uninteressant. Entscheidend ist der Strom, – zumindest, wenn man über einen Schrittmotortreiber steuert. Bei der alten Beschaltung mit H-Bridges war das anders. Aber das nur am Rande. Die Nutzung höherer Spannungen führt letztendlich dazu, dass der Motor wesentlich schneller höhere Drehmomente aufbaut. Der DRV8825 erlaubt Eingangsspannungen von 8,2V bis 45V. Üblicherweise arbeiten wir mit Schaltnetzteilen aus dem PC-Umfeld. Da sind 12Volt üblich.

Weiterer kleiner Exkurs: Neben der präzisen Einstellmöglichkeit mit Mikrosteps, die immerhin statt 200 Steps pro Umdrehung ganze 6400 Steps ermöglicht, bringen Mikrosteps noch den Vorteil des besseren Einschwingverhaltens beim Anfahren einer Position. Die Motoren sind nämlich nicht in der Lage einfach den Punkt genau anzufahren, sondern schwingen sich um den Zielpunkt ein. Die Mikrosteps reduzieren die Schwingungen erheblich.

Die einfache, aber auch völlig unpräzise Art der Einstellung will ich nicht verschweigen:
Zu wenig Strom -> Der Motor hat keine Kraft eine Position anzufahren
Zu viel Strom -> Der Motor „singt“ und wird übermäßig heiß
Diese „Methode der Einstellung“ würde ich aber nicht einmal für das schnelle Experiment vorschlagen.

Jetzt schaue ich mir mal meinen Beispiel-Schrittmotor an. Es ist ein NEMA 17HS5425:

NEMA 17HS5425 Daten

Die für uns entscheidende Formel lautet …
Vref = Imax x (5 x Rs)
Rs ist der auf der Treiberplatine verbaute Widerstand. Der ist laut Datenblatt beim DRV8825 0,1Ohm.
Im Internet findet man in den Foren die Aussage, dass die Einstellung nicht mit dem Maximalstrom sondern mit 70% davon erfolgen soll. Das wäre dann 2,5A x 0,7 = 1,75A.
Damit ergibt sich Vref = 1,75A x 5 x 0,1Ohm=0,875Volt
Wenn die vollen 2,5A gebraucht werden, bekommen wir mit dem DRV8825 übrigens schon Probleme, denn er liefert laut Datenblatt bis zu 2,2A.

Die gleiche Rechnung jetzt noch für den A4988:
Hier ist die Formel etwas anders und lautet …
Vref = Imax x (8 x Rs) mit Rs zu 0,05Ohm. Damit wäre die Referenzspannung 0,7Volt.

Die Referenzspannung kann recht leicht auf dem Motortreiber gemessen werden. Legt man vom Multimeter eine Seite einfach irgendwo auf Masse kann man am Schleifer des Potis auf dem Treiberbaustein die Spannung messen.

Zur Sicherheit noch ein paar Hinweise:
Während Strom auf dem Treiber ist, darf der Schrittmotor keinesfalls abgetrennt werden. Das ist der sichere Tod des Treibers.
Höchste Konzentration ist bei der Messung angebracht. Ein Abrutschen mit der Messspitze kann schnell einen Kurzschluss verursachen.