Also keine extra gekauft für diese Zwecke?
MfG
Also keine extra gekauft für diese Zwecke?
MfG
wie meinst Du das jetzt?
Für die dupont Kontakte habe ich schon litzen zwischen AWG 30 und 22 genommen. Bei 30 war es schwierig die Lappen so weit zusammen zu bekommen dass sie auch als zugentlastung was taugen, auch hielt es in der schwarzen Hülse nicht so gut, bei 22 musste ich etwas von der Isolation etwas abschneiden, damit es in die Hülse passt...⁴
gruß inka
nun wieder zu RAMPS, MEGA und den steppersticks und steppern. Ich hab folgendes phänomen (es wäre auch verwunderlich, wenn alles auf anhieb klappen würde):
Ich verwende die steckplätze X, Y, E0 und E1 auf dem RAMPS board, es funktionieren die plätze Y und E0. Bei X tut sich nichts (motor dreht nicht, ist stromlos) bei E1 blockiert der stepper. An den zuleitungen und den steppern liegt es nicht, auch sind alle vier A4988 ok (mehrmals gewechselt und untereinander getauscht). Die verbindung der pins (EN, STEP, DIR) zum MEGA habe ich durchgemessen, ist ok. Betreiben versuche ich es mit diesem
EDIT: die spannungen bei X und E1, also Vmot und Vdd sind da...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("basic example_1"); 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); // deaktiviere enable pins: digitalWrite(enbl_VL, HIGH); digitalWrite(enbl_HL, HIGH); digitalWrite(enbl_VR, HIGH); digitalWrite(enbl_HR, HIGH); } void loop() { // aktiviere enable pins: digitalWrite(enbl_VL, LOW); digitalWrite(enbl_HL, LOW); digitalWrite(enbl_VR, LOW); digitalWrite(enbl_HR, LOW); // drehe alle vier Stepper langsam vorwaerts fünf mal herum: //set dir pinns vorwarts digitalWrite(dirPin_VL, LOW); digitalWrite(dirPin_HL, LOW); digitalWrite(dirPin_VR, HIGH); digitalWrite(dirPin_HR, HIGH); for (int i = 0; i < 5 * stepsPerRevolution; i++) { digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(2000); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(2000); } delay(1000); // drehe alle vier Stepper langsam rückwärts fünf mal herum: //set dir pinns vorwarts digitalWrite(dirPin_VL, HIGH); digitalWrite(dirPin_HL, HIGH); digitalWrite(dirPin_VR, LOW); digitalWrite(dirPin_HR, LOW); for (int i = 0; i < 5 * stepsPerRevolution; i++) { digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(2000); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(2000); } delay(1000); }
woran kann das mit X und E1 denn liegen?
Geändert von inka (08.02.2020 um 15:43 Uhr)
gruß inka
Hallo Inka,
mein Vorschlag wie folgt.
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.
Wenn das dann funktioniert, Pin-Vertauschungen und evtl. Doppelbelegungen ausgeschlossen sind, dann kann man die Pin-Nummern nochmal in Deinem "großen" Sketch nachprüfen. Wenn das dann auch alles seine Richtigkeit hat, kann man sich an die Programmlogik machen, dann muss dort der Fehler liegen.
MfG
Ich nehme für solche Messungen ein Scope. Da kann man das Signal auch schnell (Millisekunden) toggeln lassen und sich die Flanken ansehen. Gleichzeitig kann man auf die danebenliegenden Pins bzw Leiterbahnen gehen und schauen, ob da das Signal fälschlicherweise auch auftaucht. So findet man sowohl Unterbrechungen als auch Kurzschlüsse.
MfG Klebwax
Strom fließt auch durch krumme Drähte !
habe folgenden sketch geladen:
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...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); }
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...
gruß inka
Wo hast Du denn diesen nicht funktionierenden Mega her? War das noch ein Alter, den Du hattest? Wenn die Pins nicht tun, was sie tun sollen und das nicht nur einer ist, kannst Du den wohl entsorgen. Aufbewahren bringt nichts, ärgerst Dich immer wieder mit herum!
MfG
da bei mir nichts vor überraschungen sicher ist, habe ich immer ein paar MEGA's aus china (bestand momentan sieben eingebaut, die man auch kanibalisieren könnte) und zwei in reserve...![]()
gruß inka
Du weißt nicht, was wirklich alles defekt ist. Du siehst nur ein Symptom, den Pin. Also weg damit. Wie bekommt man eigentlich einen Prozessor kaputt? Den letzten hab ich komplett gehimmelt, als ich auf dem einen Kanal meines Netzteils sorgfältig 3,3V mit Strombegrenzung eingestellt, das CPU-Board aber an den Kanal mit 16V angeschlossen habe. Da ich mir beim Auslöten nicht viel Mühe gebe, kann ich den sowieso nur wegwerfen.
MfG Klebwax
Strom fließt auch durch krumme Drähte !
Bei Servokabeln mach ich das schon lange so: erst verlöten, dann die Zugentlastung drum biegen- entschieden besser als nur gecrimpt.
Ich wüsste nicht, wann ich mal nen Ausfall an so einem Servo hatte.
Will man in nem schnellen RC-Modell auch nich haben.....
Aber eigentlich nur dort- ansonsten löt ich möglichst alles (DuPont kann ich nich leiden, das hatten wir aber schon).
@inka: wegen dem Gold, musst mir halt mal Bescheid geben, ob du die angemessene Menge noch in deinem Auto transportieren kannst, oder ich mal mitm Anderthalbtonner runter kommen soll.
Kriegen wir schon hin...
Und du hast natürlich recht.
Altersrente hin oder her, das Problem ist: die müsste man -in angemessener Höhe- so mit 30 kriegen, wenn man noch fit ist.
Was soll man mit 70 damit, da verbringt man die meiste Zeit in Wartezimmern diverser Ärzte- das geht mitm Krankenschein genauso...
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Lesezeichen