Skocz do zawartości
Zaloguj się, aby obserwować  
WojtazZz

Usunięte z: Kurs budowy robotów - #4 - pierwsze programowanie

Pomocna odpowiedź

Witam, również mam problem z silnikami. Wgrałem poniższy kod z kursu budowy robotów, lecz silnik kręci się tylko w jedną stronę, a przy próbie zmiany kierunku słychać jedynie ciche brzęczenie/piszczenie. Zamieniałem polaryzację podłączenia silnika i w efekcie zmienił się kierunek obrotów lecz w drugą stronę dalej brzęczał. Po przerobieniu kodu dla prawego silnika sytuacja się powtarza. Natomiast najbardziej dziwi mnie to, że po odłączeniu zasilania bateryjnego i pozostawionym zasilaniu przez USB(wiem, niezalecane w kursie) program wykonuje się prawidłowo. 

#define L_PWM 5
#define L_DIR 4
#define R_PWM 6
#define R_DIR 9
#define PWM_MAX 165

void setup() {
  //Konfiguracja pinow od mostka H
  pinMode(L_DIR, OUTPUT);
  pinMode(R_DIR, OUTPUT);
  pinMode(L_PWM, OUTPUT);
  pinMode(R_PWM, OUTPUT);
}

void loop() {
  leftMotor(80); //80% predkosci do przodu
  delay(2000);
  leftMotor(-40); //40% predkosci do tyłu
  delay(2000);
}

void leftMotor(int V) {
  if (V > 0) { //Jesli predkosc jest wieksza od 0 (dodatnia)
    V = map(V, 0, 100, 0, PWM_MAX);
    digitalWrite(L_DIR, 0); //Kierunek: do przodu
    analogWrite(L_PWM, V); //Ustawienie predkosci 
  } else {
    V = abs(V); //Funkcja abs() zwroci wartosc V  bez znaku
    V = map(V, 0, 100, 0, PWM_MAX);
    digitalWrite(L_DIR, 1); //Kierunek: do tyłu
    analogWrite(L_PWM, V); //Ustawienie predkosci    
  }
}

 

Udostępnij ten post


Link to post

@WojtazZz, witam na forum 🙂

Na ten moment nie mam pomysłu co mogłoby powodować takie zachowanie, oczywiście sprawdzimy temat dokładniej. Zapytam dla formalności: zworka od zasilana napędów znajduje się u Ciebie w poprawnej pozycji, a przełącznik jest w pozycji włączonej? Możesz zmierzyć napięcie wejściowe do shieldu (z koszyka 6xAA)?

Udostępnij ten post


Link to post

Wszystko na miejscu. Bez zworki silniki oczywiście nie działają czy to przy zasilaniu przez usb czy przez baterie. Napięcie z koszyka to ~9.1V. Przyznam się jeszcze, że używam klona Uno. Może jutro uda mi się zdobyć inny egzemplarz. 

Na angielskim forum arduino czytałem, że w podobnej sytuacji winny był brak połączenia GND sterownika silników z GND Uno. 

Udostępnij ten post


Link to post
1 minutę temu, WojtazZz napisał:

Na angielskim forum arduino czytałem, że w podobnej sytuacji winny był brak połączenia GND sterownika silników z GND Uno. 

Tutaj to raczej nie jest możliwe, ale zbadamy temat. Kiedy mniej więcej zamawiałeś zestaw? Sprawdzimy sterowniki z tej serii 😉

Udostępnij ten post


Link to post

@WojtazZz sprawdziliśmy wyrywkowo kilka shieldów z aktualnej serii. Wszystkie były sprawne, nie udało nam się odtworzyć takiego problemu. Jeśli wszystko masz podłączone zgodnie z instrukcją to musiałeś niestety trafić na jakiś jednostkowy błąd. Przepraszam za zamieszanie. Napisz do Botlandu na adres reklamacje@botland.com.pl - na pewno szybko pomogą i wymienią shield na nowy, sprawdzą też płytkę, która sprawiała Ci problemy 🙂

Udostępnij ten post


Link to post

Okazuje się, że winne są silniki SJ01 z enkoderem. Zdobyłem drugi shield i silniki pololu. Efekt jest taki, że na obu shieldach SJ01 nie zmieniają kierunku obrotów, a pololu działają poprawnie. 

Udostępnij ten post


Link to post

@WojtazZz trochę się już pogubiłem, bo w kursie nie używamy żadnych silników z enkoderami. Zakładam więc, że to jakieś Twoje próby, które nie są związane bezpośrednio z naszymi poradnikami. Zachęcam w przyszłości do tworzenia osobnych tematów i pisania od razu z czego się korzysta. Nie jestem w stanie domyślić się, że korzystasz z innych napędów, które mogą powodować problemy.

Udostępnij ten post


Link to post
Zaloguj się, aby obserwować  
×
×
  • Utwórz nowe...