Problem ze sterownikiem silnika krokowego
Problem ze sterownikiem silnika krokowego
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]
[youtube]https://www.youtube.com/watch?v=bri_Pn7xzYo[/youtube]
Re: Problem ze sterownikiem silnika krokowego
Zmienną "stepsPerRevolution" ustawiłeś dobrze? Ile kroków na pełen obrót ma Twój silnik?
Re: Problem ze sterownikiem silnika krokowego
Silnik ma 200 krokow/obrot i tyle mam ustawione
Re: Problem ze sterownikiem silnika krokowego
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?
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?
Re: Problem ze sterownikiem silnika krokowego
Na filmiku może nie być widać podłączenia. Podłączone jest tak: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?
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ć.
Re: Problem ze sterownikiem silnika krokowego
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.
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.
Re: Problem ze sterownikiem silnika krokowego
Tak, mam podłączony zewnętrzny zasilacz 12V.Monk pisze:12V podłączyłeś z zewnętrznego zasilacza?
Masę z zasilacza mam złączoną z masą na arduino (PIN GND).Monk pisze: I masy z arduino z dodatkowym zasilaniem połączyłeś?
Ogólnie połączenie wygląda jak na rysunku:

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: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.
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);
}
Re: Problem ze sterownikiem silnika krokowego
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.
Re: Problem ze sterownikiem silnika krokowego
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ł).
Re: Problem ze sterownikiem silnika krokowego
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.)
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.)
Re: Problem ze sterownikiem silnika krokowego
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.Monk pisze:"testować" i zamieniać przewody - w sensie OUT1 z OUT2, albo OUT3 z OUT4
https://youtu.be/rVutVVonT48
Re: Problem ze sterownikiem silnika krokowego
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.
Re: Problem ze sterownikiem silnika krokowego
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
Re: Problem ze sterownikiem silnika krokowego
Próbowałeś taki kod wgrać?
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ć.
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);
}
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ć.
Re: Problem ze sterownikiem silnika krokowego
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?
Re: Problem ze sterownikiem silnika krokowego
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ł...
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ł...