Pytanie:
Gdzie popełniłem błąd, próbując dodać dodatkowy silnik do mojej płyty?
K Mmmm
2019-07-22 08:57:57 UTC
view on stackexchange narkive permalink

Chciałbym dodać dodatkowy silnik do mojej tablicy i nie wiem, gdzie popełniłem błąd. Silnik będzie używany do obracania obracającego się koła / wózka potencjalnych gorących końców, na które można się przełączyć. Ponieważ jest to tylko silnik, nie potrzebuje grzejnika ani czujnika temperatury.

Miałem tylko płytę MKS_BASE 1.0, więc kupiłem płytę RAMPS 1.4 od Ebay jako jej przedłużacz.

RAMPS 1.4 board

((** Uwaga ** ta płyta jest tania, ponieważ została nieprawidłowo wyprodukowana i stanowi zagrożenie pożarowe: https://reprap.org/wiki/RAMPS_1.4. Zamiast tego zalecam użycie osłony CNC))

Ta czerwona płytka ma pasować do Arduino Mega, ale myślę, że mogę użyć dodatkowych pinów na MKS_BASE1.0 i połączyć je przewodem połączeniowym do płyty RAMPS 1.4. Miało to sens w przypadku, gdy chcę dodać inne rzeczy do oryginalnej płyty MKS_BASE 1.0 (jak więcej wkładów grzejnych z gorącym końcem).

Połączyłem 5V i jeden pin GND z mojego MKS_BASE 1.0. Podłączyłem też niektóre piny SERVOS z MKS_BASE 1.0: D37 to „Dir”, D35 to „Step”, a D17 to „Enable”. Podłączyłem też zasilacz 12V do płyty RAMPS 1.4.

RAMPS 1.4 board pinout

Kiedy przyszedł czas na modyfikację Marlina, wszystko było trochę denerwujące ponieważ chociaż Marlin ułatwia dodawanie kolejnych wytłaczarek, dodanie samych silników jest trochę trudniejsze. Musiałem zmienić liczbę wytłaczarek na 3 (z podwójnego wytłaczania na podwójne wytłaczanie + dodatkowy silnik), włączyć dodatkowy pin temperatury (który zostawiam pusty), a także zmodyfikować plik pins.h.

Prawdopodobnie nie symulowałbym tego silnika jako wytłaczarki, gdybym znał surowe polecenia Arduino do obracania silnika za pomocą wywołań D37 , D35 i D17 , więc pomyślałem, że symulacja wytłaczarki byłaby lepsza, ale teraz zastanawiam się nad tą decyzją.

Oto moja modyfikacja pins.h:

  #define E2_STEP_PIN 35 # define E2_DIR_PIN 37 # define E2_ENABLE_PIN 17 # define HEATER_2_PIN 17 // # define TEMP_SENSOR_2 3 w Configuration.h
# zdefiniować TEMP_2_PIN 3 // Marlin 0-indeksuje te szpilki, więc „2” jest w rzeczywistości dla wytłaczarki „3”.  

Pierwszą rzeczą, którą muszę zrobić, jest zezwolenie na wytłaczanie na zimno przy użyciu M302 S-80. Pozostałe (prawdziwe) silniki ekstrudera ruszą się po tym poleceniu, więc ta część działa ....

W Repetier-Host wybieram tylko Extruder 3 i próbuję "przepchnąć filament" przez niego, ale silnik się nie porusza. Używam sterownika krokowego A4988 na Kysanie 1124090. Właściwie cały ten proces wykonałem z dwoma silnikami, ponieważ nie byłem pewien, czy sam sprzęt będzie problemem, więc z innym zestawem pinów używam Suncor Silnik, a także nie reaguje i nie wiem też dlaczego.

Naprawdę pomocne byłoby debugowanie, gdybym mógł uruchomić pojedyncze polecenie kodu G tylko po to, aby silnik działał z dużą prędkością i usuń to z równania. nie musi to być polecenie do "wytłaczarki", ale tylko polecenie do wyprowadzenia, jak M42 D35 S100 (ale nie znam surowego polecenia do testowania połączeń silnika ).

Używam Ramps 1.4 i nie ma zagrożenia pożarowego, wystarczy zmienić zielone złącze i jest lepsze niż tarcza CNC.
Dwa odpowiedzi:
Tom van der Zanden
2019-07-22 17:57:17 UTC
view on stackexchange narkive permalink

D35 , D37 , D17 to etykiety pinów na Arduino Mega. Nie odpowiadają one numerom pinów w Marlin .

Uważam, że D35 w rzeczywistości odpowiada marlinowi pin 49 i to to numer, który należy wprowadzić w oprogramowaniu. Mapowanie można znaleźć w fastio_1280.h:

  Pin sprzętowy: 02 03 06 07 01 05 15 16 17 18 23 24 25 26 64 63 13 12 46 45 44 43 78 77 76 75 74 73 72 71 60 59 58 57 56 55 54 53 50 70 52 51 42 41 40 39 38 37 36 35 22 21 20 19 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 04 08 09 10 11 14 27 28 29 30 31 32 33 34 47 48 49 61 62 65 66 67 68 69 79 80 81 98 99 100 Port: E0 E1 E4 E5 G5 E3 H3 H4 H5 H6 B4 B5 B6 B7 J1 J0 H1 H0 D3 D2 D1 D0 A0 A1 A2 A3 A4 A5 A6 A7 C7 C6 C5 C4 C3 C2 C1 C0 D7 G2 G1 G0 L7 L6 L5 L4 L3 L2 L1 L0 B3 B2 B1 B0 F0 F1 F2 F3 F4 F5 F6 F7 K0 K1 K2 K3 K4 K5 K6 K7 E2 E6 E7 xx xx H2 H7 G3 G4 xx xx xx xx xx D4 D5 D6 xx xx J2 J3 J4 J5 J6 J7 xx xx xx xx xx Logiczny Pin: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx x x xx xx xx  

W górnym wierszu poszukaj numeru pinu (np. D35 odpowiada 35), a następnie spójrz na dolny wiersz, aby znaleźć numer pin do użycia w Marlin (w tym przypadku 49).

Nie sądzę, że to prawda, ponieważ numery `D`, do których się odnoszę, pochodzą z płyty MKS_BASE1.40, a nie z Arduino mega (patrz drugi obraz). Kiedy podłączam patelnię do styku 49 na drugim obrazku i uruchamiam ją z `M42 P49 S100`, obraca się, więc liczby Marlina odpowiadają numerom, których używam.
`M42` dokonuje translacji numerów pinów, czego nie robi kod nurkowania motorowego.
Moja tarcza CNC przyszła dzisiaj, więc skończyło się na wypełnieniu przewodnika tutaj; https://reprap.org/wiki/Adding_more_extruders#RAMPS_using_CNC_Shield Ale nie tłumaczy liczb tak, jak sugerowałeś ... Jednocześnie mogę sprawić, aby mój silnik pracował bardzo lekko (lub przynajmniej trząsł się) po cenie jednego przycisku, ale działa „drgająco”, a nie płynnie. I nie wiem, jak to naprawić.
Myślę, że możesz mieć rację i nie wiem, jak poprawnie przetłumaczyć liczby ... W powyższym MKS_BASE używam czterech pinów AUX-1 (5V, GND, D1, D2). Używam również D63 w AUX-2. Idąc za twoim tłumaczeniem, mój PINS.h powinien być ... co? 0, 4, 15, dla D1, D2 i D63? Kiedy to robię, nic się nie porusza w przeciwieństwie do tego, gdy używam 2,1,63, przynajmniej trochę się porusza
Odkąd napisałem odpowiedź, do której utworzyłem łącze, mapowania pinów uległy zmianie. Zaktualizuję odpowiedź o nowe mapowania.
W ogóle nie porusza się z 0,4,15 dla D2, D1 i D63 .... Używam tylko obwodu MKS_BASE z góry, a nie surowego Arduino Mega
Dlaczego nie uwzględniono tego w przewodniku, do którego odsyłam?
K Mmmm
2019-07-23 01:38:03 UTC
view on stackexchange narkive permalink
  • Uruchomiłem go przy użyciu tarczy CNC. Nadal nie rozgryzłem płyty RAMPS 1.4.

  • Nie działa przy użyciu D1 i D2 wewnątrz Aux-1, ponieważ są one używane w komunikacji szeregowej z LCD. Więc za każdym razem, gdy wysyłasz polecenie przez USB, są one zatkane. Skończyło się na tym, że korzystałem z portów 4, 5 i 63 i działa idealnie (nie ma potrzeby mapowania pinów, jak w innej odpowiedzi).

  #define E4_STEP_PIN 4 // D4 #define E4_DIR_PIN 5 // D5 #define E4_ENABLE_PIN 63 // D63  


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...