Zitat Zitat von Moppi Beitrag anzeigen
Zuerst musst Du sicher gehen, dass alles funktioniert. Das kannst Du so machen:
Alle Verbindungen vom Arduino zu den A4988 durchmessen. Indem Du jeden Pin einzeln auf HIGH und LOW setzt, so etwas wie ein Blink-Sketch. Dann am A4988, mit einem Multimeter, die Spannung an den Pins messen.
Für dieses Vorgehen schreibst Du Dir einen kleinen Sketch und spielst den - und nur den - extra auf den Arduino auf.
So stellst Du eben fest, ob Du die richtigen Pins ansteuerst, ob bei der Ansteuerung der Pins auch die Signale dort an den Treibern ankommen, wo sie ankommen sollen.
habe folgenden sketch geladen:

Code:
#include "Arduino.h"


//LCD
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


// DIR und STEP pins definieren
#define dirPin_VL 28
#define stepPin_VL 26
#define dirPin_HL 55
#define stepPin_HL 54
#define dirPin_VR 34
#define stepPin_VR 36
#define dirPin_HR 61
#define stepPin_HR 60

//definiere steps pro umdrehung:
#define stepsPerRevolution 200

//definiere enable pins:
#define enbl_VL 24
#define enbl_HL 38
#define enbl_VR 30
#define enbl_HR 56


void setup()
{
  //LCD
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.setBacklight(HIGH);
  lcd.print("vier Stepper o.L.");
  lcd.setCursor(0, 1);
  lcd.print("test RAMPS pins");
  delay(2000);
  lcd.clear();

  //pins als output:
  pinMode(dirPin_VL, OUTPUT);
  pinMode(stepPin_VL, OUTPUT);
  pinMode(enbl_VL, OUTPUT);
  pinMode(dirPin_HL, OUTPUT);
  pinMode(stepPin_HL, OUTPUT);
  pinMode(enbl_HL, OUTPUT);
  pinMode(dirPin_VR, OUTPUT);
  pinMode(stepPin_VR, OUTPUT);
  pinMode(enbl_VR, OUTPUT);
  pinMode(dirPin_HR, OUTPUT);
  pinMode(stepPin_HR, OUTPUT);
  pinMode(enbl_HR, OUTPUT);

  Serial.begin(115200);


  Serial.print("code---- /home/georg/Arduino/outdoor_robo/box_hell_ramps_1_4/stepper/vier_stepper/test_der_rams_pins_1");
}

void loop()

{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("5 sec HIGH");



  //set dir pinns HIGH
  digitalWrite(enbl_VL, HIGH);
  digitalWrite(enbl_HL, HIGH);
  digitalWrite(enbl_VR, HIGH);
  digitalWrite(enbl_HR, HIGH);

  digitalWrite(dirPin_VL, HIGH);
  digitalWrite(dirPin_HL, HIGH);
  digitalWrite(dirPin_VR, HIGH);
  digitalWrite(dirPin_HR, HIGH);

  digitalWrite(stepPin_VL, HIGH);
  digitalWrite(stepPin_HL, HIGH);
  digitalWrite(stepPin_VR, HIGH);
  digitalWrite(stepPin_HR, HIGH);
  delay(5000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("5 sec LOW");



  //set dir pinns LOW
  digitalWrite(enbl_VL, LOW);
  digitalWrite(enbl_HL, LOW);
  digitalWrite(enbl_VR, LOW);
  digitalWrite(enbl_HR, LOW);

  digitalWrite(dirPin_VL, LOW);
  digitalWrite(dirPin_HL, LOW);
  digitalWrite(dirPin_VR, LOW);
  digitalWrite(dirPin_HR, LOW);


  digitalWrite(stepPin_VL, LOW);
  digitalWrite(stepPin_HL, LOW);
  digitalWrite(stepPin_VR, LOW);
  digitalWrite(stepPin_HR, LOW);
  delay(5000);
}
da wird bei den pins EN, DIR und STEP alle 5 sekunden von HIGH auf LOW gewechselt. Die Stepper Y und E0 ohne befund, die zustände wechseln wie programmiert, bei X bleibt EN dauernd auf HIGH, STEP und DIR wechseln zwischen HIGH und LOW, bei E1 wechselt EN zwische HIGH und LOW, STEP bleibt dauernd bei LOW und DIR ist dauernd bei 1V...

Annahme bei dem zustand, dass es eher ein problem des MEGA als der RAMPS platine ist, erwies sich als richtig, MEGA ausgewechselt - alles geht...

Frage: was mache ich mit dem alten MEGA? Eigentlich schrott, oder? Wer soll sich da merken welche pinns da kaputt sind und wer weiss was sonst noch im argen liegt...