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...
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 !
nach dem tausch des MEGA bin ich jetzt auf dem entwicklungsstand vor dem umbau auf die version mit der RAMPS-platine, das fahren mit IR-fernbedienung wie auch mit dem smartphone funktioniert soweit...
Mit der verdrahtung bin ich (fast) zufrieden, die motorzuleitungen muss ich noch ein bischen ordentlicher verlegen, da warte ich aber noch auf die crimpzange aus china...
was mir nicht gefält, ist das anfahren der schrittmotoren, ist mir zu rucklig, habe dazu ein kurzes video gedreht. Im ersten part startet der motor rückwärts, direkt, ohne irgendwelchen zusatcode. Da ruckelts wie immer. Nach dem stop starte ich den motor vorwärts, mit einer zusatzbeschleunigung funktion. Da wird ein array eingelesen an der stelle der statischen delays in der ansteurungsroutine für die stepper. Hab vieles über die S-funktion" gelesen, habe die arraytabelle in zwei teile zerlegt, eine für die anfahrt, eine fürs abbremsen. Ob ich die für's abbremsen brauche, weiss ich noch nicht...
Was mir nun noch kopfzerbrechen bereitet ist der ruckler zwischen den anfahrbeschleunigungsroutine (die wäre an sich ok) und dem übergang zur normalen vorwärtsbewegung.
Nun der code, der hauptteil, da sind gleich am anfang auch die arrays fürs anfahren und abbremsen:
hier ist die funktion für vorwärtsfahren:Code://LCD #include <LCD.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); int sinus_rauf [] = { 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 20, 21, 23, 25, 27, 29 ,31, 33, 35, 37, 39, 42, 44, 46, 49, 51, 54, 56, 59, 62, 64, 67, 70, 73, 76, 78, 81, 84, 87, 90, 93, 96, 99,102,105,108,111,115,118,121,124, 127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173, 176,178,181,184,187,190,192,195,198,200,203,205,208,210,212,215, 217,219,221,223,225,227,229,231,233,234,236,238,239,240,242,243, 244,245,247,248,249,249,250,251,252,252,253,253,253,254,254,254, }; //128 int sinus_runter [] = { 254,254,254,254,253,253,253,252,252,251,250,249,249,248,247,245, 244,243,242,240,239,238,236,234,233,231,229,227,225,223,221,219, 217,215,212,210,208,205,203,200,198,195,192,190,187,184,181,178, 176,173,170,167,164,161,158,155,152,149,146,143,139,136,133,130, 127,124,121,118,115,111,108,105,102, 99, 96, 93, 90, 87, 84, 81, 78, 76, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0 }; //128 //resett pin definieren #define PIN2RESET 10 // 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 enable pins: #define enbl_VL 24 #define enbl_HL 38 #define enbl_VR 30 #define enbl_HR 56 //steps pro umdrehung definieren: #define stepsPerRevolution 200 //1600 uint8_t taste = 0; uint8_t s_vor = 0; uint8_t s_rueck = 0; uint8_t s_links = 0; uint8_t s_rechts = 0; uint8_t s_stop = 0; uint8_t s_parken = 0; uint16_t step_delay = 2000; void setup() { //LCD lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.setBacklight(HIGH); lcd.print("outdoor FB switch"); lcd.setCursor(0, 1); lcd.print("smartphone 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); // deaktiviere enable pins: digitalWrite(enbl_VL, HIGH); digitalWrite(enbl_HL, HIGH); digitalWrite(enbl_VR, HIGH); digitalWrite(enbl_HR, HIGH); Serial1.begin(115200); Serial.begin(115200); //resett pin zustand definieren pinMode(PIN2RESET, INPUT); //resett pin aktivieren digitalWrite(PIN2RESET, HIGH); } void loop() { if (Serial1.available()) { taste = Serial1.read(); Serial.println(taste); // taste_neu = taste; delay(50); tasten_abfrage(); } richtung_abfrage(); } /***********************************************************/ void richtung_abfrage(void) { if (s_rechts == 1) rechts_drehen(); if (s_links == 1) links_drehen(); if (s_vor == 1) vorwaerts(); if (s_rueck == 1) rueckwaerts(); if (s_stop == 1) alle_stepper_stop(); if (s_parken == 1) parken(); } /***********************************************************/ void tasten_abfrage(void) { switch (taste) { case 116:// fahre vor - FB smartphone "t" { // beschleunigen(); vorwaerts(); break; } case 115:// fahre rückwärts - FB smartphone "s" { rueckwaerts(); break; } case 100:// rotate rechts - FB smartphone "d" { rechts_drehen(); break; } case 97:// rotate links - FB smartphone "a" { links_drehen(); break; } case 49: //alle Stepper stop - FB smartphone "1" { alle_stepper_stop(); break; } case 51: //parken - FB smartphone "3" { parken(); break; } } } /***********************************************************/ void reboot() { pinMode(PIN2RESET, OUTPUT); digitalWrite(PIN2RESET, LOW); delay(100); } /************************************************************/
wie bekomme ich den ruckler beim vorwärtsfahren weg? Hab schon alles mögliche versucht, bisher leider ohne erfolgCode:void vorwaerts(void) { if (s_vor == 0) { // enable pins aktivieren: digitalWrite(enbl_VL, LOW); digitalWrite(enbl_HL, LOW); digitalWrite(enbl_VR, LOW); digitalWrite(enbl_HR, LOW); //richtung bestimmen digitalWrite(dirPin_VL, LOW); digitalWrite(dirPin_HL, LOW); digitalWrite(dirPin_VR, HIGH); digitalWrite(dirPin_HR, HIGH); for (int i = 0; i < 127; i++) { digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(1750 + sinus_rauf[i]); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(1750 + sinus_rauf[i]); } digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(step_delay); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(step_delay); s_vor = 1; s_rueck = 0; s_links = 0; s_rechts = 0; s_stop = 0; s_parken = 0; } else { digitalWrite(stepPin_VL, HIGH); digitalWrite(stepPin_HL, HIGH); digitalWrite(stepPin_VR, HIGH); digitalWrite(stepPin_HR, HIGH); delayMicroseconds(step_delay); digitalWrite(stepPin_VL, LOW); digitalWrite(stepPin_HL, LOW); digitalWrite(stepPin_VR, LOW); digitalWrite(stepPin_HR, LOW); delayMicroseconds(step_delay); } }
gruß inka
Habe heute den nachmittag an der neuen crimpzange verbracht. Die ersten 3 kontakte waren nix, dann ging es etwas besser und nach 10 kontakten habe sich sogar eine gewisse routine eingestellt, dann wusste ich wann ich was wie nutzen muss. Es ist im prinzip einfacher als das verlöten der dupont kontakte, auch wenn's doch fummelige arbeit ist. Die zugentlastung ist definitiv besser, die litzen halten besser in der hülse, die qualität der verbindung selbst - das wird sich zeigen. Ich jedenfalls mache mein dupontkabel in zukunft mit der crimpzange...
gruß inka
naja, einiges vom Nachmittag ist für crimp- tutorials auf YouTube draufgegangen, deshalb habe ich wohl nicht so viel geschrottet...
gruß inka
Wenn schon so ausführlich von der Crimpzange gesprochen wird, bin ich neugierig um welche es sich handelt. Ich habe vor kurzem mit einigen zu tun gehabt, für 10, 20 und 45 € um zu sehen, mit welcher man am besten die JIS Crimpzange für 350€ ersetzen oder irgendwie umgehen kann.
also viel erfahrung damit habe ich ja nicht:
zuerst hatte ich diese zange:
die war insofern ungeeignet, weil das crimpen rein nach gefühl stattfindet - oder ich hab die "automatisierte" crimpfunktion nicht gefunden
die zweite zange:
kostet das doppelte der ersten, aber auch nur 15€. Ist nur zum crimpen, hat aber eine "ratsche", die ein halten zwischendurch und das richten der litze zum kontakt möglich macht, das hatte die erste nicht. Man kann - in grenzen - mit einem stellring das mass einstellen auf das die crimpung der reinen kupferlitze stattfinden soll. Ist mir aber auch nicht 100%tig gelungen. Das "vorformen" der lappen der zufgentlastung geht gut. Nacharbeit an der crimpstelle ist aber auch hier notwendig - die quetschung des kupfers etwas nachdrücken, die quetschung der isolierung etwas "richten", damit es besser in die hülse passt. Es ist aber insgesamt einfacher als das löten. Und qualitativ besser...
gruß inka
Danke für die Information, ich bin ungefähr hier angekommen https://www.youtube.com/watch?v=jHfYzrSF4pY und hatte bis dahin schon mit Spitzzangen einzelne Kontakte gecrimpt was sicher auf die Dauer keinen Sinn macht.
Ich staune nur über die Preise der Originalwerkzeuge.
https://www.google.de/search?sxsrf=A...cSoBR0Q4dUDCAs
Lesezeichen