Skocz do zawartości

[RaspberryPi] Sterowanie silnikiem krokowym


Niewpisze

Pomocna odpowiedź

Witam wszystkich

Czy ktoś z forumowiczów miał przygodę z sterowaniem silnikiem krokowym z maliny?

Mam problem z uruchomieniem silnika.

Części które mam:

[*][*]silnik PG1521-0504B

[*][*]sterownik A4988

[*][*] stabilizator napięcia avt1667

Co zrobiłem:

[*]Podłączyłem zasilanie 5V z 6 baterii AA do pinów GND, VMOT sterownika przez avt1667

[*]Podłączyłem zasilanie z maliny z pinów P1-06, P1-02 do pinów GND i VDD sterownika.

[*]Podłączyłem do pinów sterownika DIR, STEP piny maliny P1-16, P1-12

[*]Spiąłem ze sobą piny RESET i SLEEP sterownika(zgodnie z rysunkiem minimalnego podłączenia sterownika.)

[*]Podłączyłem kable silnika do sterownika[*]Żółty do 1B[*]Pomarańczowy do 1A[*]Brązowy do 2A[*]Czarny do 2B

[*]Dodałem diodki testowo do kabli przy DIR, STEP. Wcześniej testowałem bez i też nie działało

Oznaczenia pinów raspberry zgodne z

http://elinux.org/RPi_Low-level_peripherals

Program który używam do kontroli:

#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <wiringPi.h>

#define DIR_PIN 23
#define STEP_PIN 18
#define DELAY 5
#define BETWEN_TEST_DELAY 3000

int main (int argc, char *argv[]) {

   if (wiringPiSetupGpio () == -1) {
       fprintf (stderr, "Can't initialise wiringPi: %s\n", strerror (errno)) ;
       return 1 ;
   }


   pinMode(DIR_PIN, OUTPUT);
   pinMode(STEP_PIN, OUTPUT);

   while(1) {

       printf("dir low test start\n");
       digitalWrite(DIR_PIN, LOW);
       int i = 0;
       for(i = 0; i < 1000; i++) {
           delayMicroseconds(DELAY);
           digitalWrite(STEP_PIN, HIGH);
           delayMicroseconds(DELAY);
           digitalWrite(STEP_PIN, LOW);
       }
       printf("dir low test end\n");

       delay(BETWEN_TEST_DELAY);

       printf("dir high test start\n");
       digitalWrite(DIR_PIN, HIGH);
       i = 0;
       for(i = 0; i < 1000; i++) {
           delayMicroseconds(DELAY);
           digitalWrite(STEP_PIN, HIGH);
           delayMicroseconds(DELAY);
           digitalWrite(STEP_PIN, LOW);
       }
       printf("dir high test end\n");

       delay(BETWEN_TEST_DELAY);
   }

   digitalWrite(STEP_PIN, LOW);
   digitalWrite(DIR_PIN, LOW);

   return 0;
}

Mimo że kombinowałem z różnymi ustawieniami i połączeniami i programem ciągle nie mogę uruchomić silnika żeby chociaż drgnął. Silnik nie wydaje żadnych dźwięków.

Ma ktoś pojęcie gdzie popełniłem błąd?

Z góry dziękuję za odpowiedzi:)

Link do komentarza
Share on other sites

Zacznij od zmierzenia napięcia na VMOT. Moim zdaniem ten sterownik potrzebuje tam co najmniej 8V do prawidłowej pracy. Skąd Ci przyszło do głowy te 5V i po co wstawiłeś tam dodatkowy stabilizator? Przecież silnika nie obchodzi jakim napięciem zasilasz driver tylko jaki prąd płynie mu przez uzwojenia a od tego masz regulację na samym sterowniku. Poza tym ten stabilizator z AVT ma na wejściu prostownik co daje spadek od razu z 1.5V na dzień dobry a potem z tego co zostało miałby zrobić 5V? To będzie trudne bo to nie jest jakiś LDO tylko stary Simple Switcher a one nie miały takich osiągów. Jeśłi nawet masz 5V to jest to na granicy działania tego układu. Zanim zaczniesz bawić się dalej znajdź zasilacz 12V/1A i multimetr.

Link do komentarza
Share on other sites

Pamiętaj też o założenia radiatora na układ sterujący silnikami bo może być tak że się od razu przegrzewa i bezpiecznik odłącza wszystko. Ja tak miałem u mnie w robocie po 3-4 sekundach silniki stawały.

Link do komentarza
Share on other sites

Witam, pytałem już na tym forum jak obsługiwać silniki krokowe niestety jakimś cudem (a właściwie brakiem umiejętności) cały zestaw skutecznie zamordować. 😳 W związku z tym prosiłbym drogich forumowiczów o pomoc.

Otóż ciągle chce zamontować silniki krokowe do raspberry pi.

Czego potrzebuję:

2 silniki krokowe (napęd)

1 serwomotor ("kierownica")

sterownik(i) możliwie ułatwiając(y/e) kontrolowanie silników.

Zależy mi na tym aby silniki były wstanie poruszyć samochodzikiem o wadze 1-2 kg.

Jednym z ważniejszych kryteriów jest to aby cały zestaw dało się zasilać bateriami.

Fajnie by było żeby sterownik wymagał 2 wejść logicznych (ze względu na małą ilość gpio na malince)

Czy ma ktoś pomysł na możliwie łatwy do złożenia zestaw?

__________

Komentarz dodany przez: Sabre

Scaliłem z pierwszym tematem, nie wiem po co zakładałeś nowy skoro dotyczy tego samego.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Gotowce:

http://electropark.pl/moduly-sterowniki-silnikow/3326-modul-sterownika-silnika-krokowego-uln2003-5v-12v-z-silnikiem-krokowym-5v.html - te działają zasilane z USB (mikrokontroler pyMCU). Na Raspberry mogą wymagać zewnętrznego zasilania. 4 GPIO do sterowania.

I jakieś tanie serwo:

http://electropark.pl/towerpro-serwa/2496-towrpro-sg-92r-serwo-modelarskie-5901002496004.html - jedno serwo można sterować z GPIO udającego PWM.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.