Problem ze sterownikiem silnika krokowego

ODPOWIEDZ
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 31 lip 2016, 22:56

Korzystam z modułu l298n, moduł jest zasilany zasilaczem 12V. Z arduino podłączony jest pinami 8-11, silnik jest sprawny (wcześniej był podłączony do CNC shielda i działa). Program jaki wrzuciłem na arduino to ten który załączony jest jako przykład do biblioteki stepper.h (stepper_oneRevolution, czyli jeden obrót w prawo, jeden w lewo). Ogólnie wszystko wydaje się być jak należy, jednak silnik zachowuje się dziwnie. Czy ktoś może już spotkał się z czymś takim, lub po prostu czym może to być spowodowane?

[youtube]https://www.youtube.com/watch?v=bri_Pn7xzYo[/youtube]

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 1 sie 2016, 10:48

Zmienną "stepsPerRevolution" ustawiłeś dobrze? Ile kroków na pełen obrót ma Twój silnik?
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 1 sie 2016, 15:38

Silnik ma 200 krokow/obrot i tyle mam ustawione
Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 1 sie 2016, 17:12

Na filmiku zbytnio nie widać, ale na pewno przewody od silnika odpowiednio są podpięte?
Bo ogółem wyjścia OUT 1 i 2, są dla 1 silnika, a 3 i 4 dla drugiego - w przypadku silnika krokowego to dla odpowiednich cewek, a na filmiku wygląda jakbyś łączył skrajne przewody z kostki do OUT 1 i 2, i 2 w środku do 3 i 4? Na pewno tak to ma być połączone?
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 1 sie 2016, 18:45

Monk pisze:na filmiku wygląda jakbyś łączył skrajne przewody z kostki do OUT 1 i 2, i 2 w środku do 3 i 4? Na pewno tak to ma być połączone?
Na filmiku może nie być widać podłączenia. Podłączone jest tak:

Przewód silnika -> wyjście sterownika
A1 -> OUT1,
A2 -> OUT2,
A3 -> OUT3,
A4 -> OUT4,

Co do kolejności przewodów w silniku mam pewność, ponieważ mam takie same silniki podłączone pod CNC shield 3.0 i są właśnie w takiej kolejność i tam działa.
Podłączenie do arduino
PIN8 - > IN1
PIN9 - > IN2
PIN10 - > IN3
PIN11 - > IN4

I tak na prawdę nie mam już pomysłów co mógłbym jeszcze sprawdzić.
Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 1 sie 2016, 19:24

12V podłączyłeś z zewnętrznego zasilacza? I masy z arduino z dodatkowym zasilaniem połączyłeś?

Jeżeli masz pod ręką 2 silniczki dc, to podłącz je i zobacz jak wtedy to działa, czy aby na pewno gdzieś w połączeniach nie ma błędu.
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 1 sie 2016, 20:22

Monk pisze:12V podłączyłeś z zewnętrznego zasilacza?
Tak, mam podłączony zewnętrzny zasilacz 12V.
Monk pisze: I masy z arduino z dodatkowym zasilaniem połączyłeś?
Masę z zasilacza mam złączoną z masą na arduino (PIN GND).
Ogólnie połączenie wygląda jak na rysunku:
Obrazek

Monk pisze:Jeżeli masz pod ręką 2 silniczki dc, to podłącz je i zobacz jak wtedy to działa, czy aby na pewno gdzieś w połączeniach nie ma błędu.
Mam tylko jeden silniczek DC, po podłączeniu pod OUT1, 2 są 2-3 drgnięcia w przypadkową stronę potem 2 pełne obroty, pod out 3,4 jest tak samo nie wiem czy tak powinien się zachowywać się przy takim podłączeniu i tym kodzie:

Kod: Zaznacz cały

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 1 sie 2016, 21:06

5V też podpięte z arduino masz? To jest zasilanie dla logiki układu. Dziwnie, a jakbyś spróbował Po prostu na piny bez tej biblioteki Stepper.h dać stan wysoki i niski? Według tabeli logiki oczywiście - musi być stan wysoki i niski.
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 2 sie 2016, 09:13

Po podłączeniu 5v jest mały progres, silnik próbuje zrobić obrót raz w lewo raz w prawo. Nie wykonuje natomiast pełnych obrotów i ruch nie jest płynny (tak jakby silnik przeskakiwał).
Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 2 sie 2016, 09:42

To wyczytałem akurat na necie - jeszcze dla pewności weź multimetr, sprawdź rezystancje między wyprowadzeniami silnika - pary gdzie jest najmniejsza rezystancja, to są właśnie pary, które trzeba pod OUT 1 i 2, i OUT 3 i 4 podłączyć.
Ktoś miał też problem, że silnik mu się tak wieszał - i musiał "testować" i zamieniać przewody - w sensie OUT1 z OUT2, albo OUT3 z OUT4 - musiałbyś najpierw zamienić przewody w 1 parze, potem wrócić jak było i zmienić w 2 parze, a potem w obu - może pomoże?

Ewentualnie może problem teraz leży w prędkości obrotowej?
myStepper.setSpeed(60);
60 rpm - to 1 obrót na sekundę - 200 kroków na sekundę. Ale nie wydaje mi się, żeby było to dla niego za dużo (edit: dobra to akurat głupi pomysł, to na pewno nie jest dla niego za dużo, chyba że pobiera taki prąd że źródło zasilania nie wyrabia? Ale w sumie na mniejszej prędkości obrotowej też możesz sprawdzić jak się zachowuje.)
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 2 sie 2016, 12:04

Monk pisze:"testować" i zamieniać przewody - w sensie OUT1 z OUT2, albo OUT3 z OUT4
Robiłem to już wcześniej, podłączałem również po inną płytkę arduino sprawdzałem również po podłączeniu do drugiego sterownika, podłączałem też inny zupełnie nowy silnik, za każdym razem efekt jest ten sam. Biorąc silnik do ręki da się wyraźnie wyczuć obroty, trwające ok. 1s potem przerwa ok. 0,5s i znów obroty 1s (czyli tak jak jest w kodzie), natomiast ruch trzpienia wygląda jak na filmie.

https://youtu.be/rVutVVonT48
Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 2 sie 2016, 12:40

No tak, ale na filmiku widać - na potrójnym złączu masz do środka podpiętą masę, a z lewej strony bierzesz +5V z Arduino... A tam te złącza są opisane - z lewej ma być +12V, w środku masa (masa połączona do Arduino i do osobnego zasilacza), a z prawej ma być +5V z Arduino - te wszystkie 3 złącza muszą być podpięte, musi być i +12V i +5V i masa do arduino i do zasilacza. A Ty do złącza na 12V dajesz 5V.
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 2 sie 2016, 13:45

Przewód zasilacza jest biały i tak się ułożył, że go nie widać na białym tle. Zielony przewód jest podłączony ze środka (masy) do masy arduino, czarny z prawej do 5V arduino i zasilacz jest podłączony prawidłowo. Także to też nie to
Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 2 sie 2016, 15:42

Próbowałeś taki kod wgrać?

Kod: Zaznacz cały

#include <Stepper.h>

Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(1);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(3);
  delay(1000);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-3);
  delay(1000);
}
Powinien przez 1 sekundę zrobić 3 kroki w jedną stronę, 1 sekunda przerwy, i 3 w przeciwną stronę. Pozmieniaj wartości setSpeed i ilość kroków, które ma wykonać, sprawdzić czy wtedy też wariuje, czy wtedy jest ok - może setSpeed jest za duże jak dla niego.

I upewnij się czy na pewno masz tak przewody podłaczone:
https://www.arduino.cc/en/uploads/Refer ... r_pins.jpg
https://www.arduino.cc/en/uploads/Tutor ... b_bbsm.png
Bo jak dwa kabelki z jednej pary zamieni się wyjściami OUT1 i OUT2 to też mogą dziwne rzeczy wychodzić.
mowgli
Młodszy majsterkowicz
Posty: 32
Rejestracja: 10 lut 2015, 13:25

Re: Problem ze sterownikiem silnika krokowego

Post autor: mowgli » 4 sie 2016, 22:45

Sprawdziłem co opisałeś i nic to nie dało sprawdziłem działanie silnika na stepstickach A4988 i na motor shieldzie, na tych dwóch modułach działa idealnie. Dokupiłem 2 kolejne moduły l298n (myślałem że może ten na którym testowałem jest uszkodzony) ale na każdym jest to samo. Może to coś z zasilaniem?
Monk
Młodszy majsterkowicz
Posty: 35
Rejestracja: 31 lip 2016, 23:02

Re: Problem ze sterownikiem silnika krokowego

Post autor: Monk » 4 sie 2016, 23:22

Kurcze. Chyba muszę cię przeprosić strasznie... nie wiem jak się to stało, ale gdzieś wyczytałem że tam gdzie jest +5V to jest wejście, a teraz czytam że jest to wyjście. To ja już nie rozumiem... Ale... Zrób pomiar na tym złączu czy rzeczywiście tam jest wyjście.

W sensie nad złączem 12V jest zworka, która jest fabrycznie umieszczona i ona umożliwia żeby na pinie 5V było to napięcie, ale jak się daje z zasilacza więcej niż 12V to trzeba ją usunąć (maksymalnie 35V) i wtedy nie można używać tego wyjścia 5V - ale ile w tym prawdy to ja już sam nie wiem, jedno źródło podaje tak, a inne siak. Musisz sprawdzić czy jest tam faktycznie 5V...
Znów gdzie indziej piszą, że maksymalnie 12V i wyjęcie zworki dopiero dopuszcza te 5V na pin.
Najlepiej po prostu dać 12V na te złącze lewe, i zobaczyć czy na tym prawym złączu jest 5V, jeżeli nie to usunąć zworkę i wtedy zobaczyć. I sprawdzić jak to faktycznie jest.

Na prawdę przepraszam, powinienem się upewnić zanim coś napiszę, a nie powielać jakieś głupoty, teraz to ja już sam nic nie wiem.
Serio mi wstyd jak cholera. Muszę znaleźć ten schemat, który ktoś rozrysował...
ODPOWIEDZ

Strony partnerskie: