Skocz do zawartości

Silnik krokowy 28BYJ-48 5V i Raspberry Pi


blaskszminki

Pomocna odpowiedź

Cześć,

mam problem z uruchomieniem silnika. Potrafię sterować poszczególnymi sygnałami [IN1, IN2, IN3, IN4]

używam do tego: gpio -g write 26 1 - powoduję to, że zapalam diodę na sterowniku (IN1), analogicznie wyłączam diodę z parametrem 0.

Steruję każdym z czterech sygnałów. Od kilku dni próbuje wymusić ruch silnika niestety bezskutecznie, na arduino udało mi się bez problemu, korzystając z raspberry jest problem.

Znaczy to, że sterownik działa prawidłowo.

https://pastebin.com/UntU6jds?fbclid=IwAR2bkoNcrdWBQBUkKHIEcRQI6EM9BGySg_CN0L5XtzJ1tMVe9PNHDf9lf-4

powyżej link do kodu, którego używam na arduino.

Proszę o pomoc, ponieważ nie wiem co robię nie tak..

Poniżej kod, który próbuje odpalić na raspberry i za każdym razem zgłaszają mi się błędy.. za pomoc odwdzięczę się jakimś trunkiem, bądź przelewem na ten trunek..

#512 krokow to pelen obot
stepMotor_moves = 256;
#szybkosc zmiany magnesow w ms
stepMotor_delay = 5;
#tablica z pinami IN1, IN2, IN3, IN4
stepMotor_pins = [26, 19, 13, 6]


stepMotor_resetMagnets() {
  digitalWrite(stepMotor_pins[0], LOW);
  digitalWrite(stepMotor_pins[1], LOW);
  digitalWrite(stepMotor_pins[2], LOW);
  digitalWrite(stepMotor_pins[3], LOW);
}



stepMotor_moveForward() {
  stepMotor_resetMagnets(); # reset magnets before looping step motor
  for (int j = 0; j < stepMotor_moves; j++) {
    # Forward - power on magnets in 1, 2, 3, 4 config with delay every change
    for (int i = 0; i < 4; i++) {
      if (i == 0) {
        digitalWrite(stepMotor_pins[3], LOW);
        digitalWrite(stepMotor_pins[0], HIGH);
      } else if (i == 1) {
        digitalWrite(stepMotor_pins[0], LOW);
        digitalWrite(stepMotor_pins[1], HIGH);
      } else if (i == 2) {
        digitalWrite(stepMotor_pins[1], LOW);
        digitalWrite(stepMotor_pins[2], HIGH);
      } else if (i == 3) {
        digitalWrite(stepMotor_pins[2], LOW);
        digitalWrite(stepMotor_pins[3], HIGH);
      }
      delay(stepMotor_delay);
    }
  }
  stepMotor_resetMagnets(); # release magnets
}
 
stepMotor_moveBackward() {
  stepMotor_resetMagnets(); # reset magnets before looping step motor
  for (j = 0; j < stepMotor_moves; j++) {
     # Forward - power on magnets in 4, 3, 2, 1 config with delay every change
    for (i = 0; i < 4; i++) {
      if (i == 0) {
        digitalWrite(stepMotor_pins[0], LOW);
        digitalWrite(stepMotor_pins[3], HIGH);
      } else if (i == 1) {
        digitalWrite(stepMotor_pins[3], LOW);
        digitalWrite(stepMotor_pins[2], HIGH);
      } else if (i == 2) {
        digitalWrite(stepMotor_pins[2], LOW);
        digitalWrite(stepMotor_pins[1], HIGH);
      } else if (i == 3) {
        digitalWrite(stepMotor_pins[1], LOW);
        digitalWrite(stepMotor_pins[0], HIGH);
      }
      delay(stepMotor_delay);
    }
  }
  stepMotor_resetMagnets(); # release magnets
}

 

Link do komentarza
Share on other sites

9 godzin temu, blaskszminki napisał:

Poniżej kod, który próbuje odpalić na raspberry i za każdym razem zgłaszają mi się błędy..

To może pokaż log z błędami zamiast towarzystwo rozpijać..

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.