Czytałem tylko średnio go zrozumiałem.
Dzięki za wyjaśnienie i pomoc
Znaleziono 5 wyników
Wróć do „Problem ze sterowaniem silnikiem krokowym”
- 21 gru 2015, 00:50
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Problem ze sterowaniem silnikiem krokowym
- Odpowiedzi: 8
- Odsłony: 5067
- 20 gru 2015, 23:37
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Problem ze sterowaniem silnikiem krokowym
- Odpowiedzi: 8
- Odsłony: 5067
Ok problem rozwiązany lecz teraz przede mna kolejna zagadka.
Chcę odczytać wartość prędkości z zakresu 0-150 z pinu analogowego i wyświetlić ją na wyświetlaczu lcd. Generalnie zadanie bardzo proste ALE w momencie kiedy prędkość wynosi np. 130 i zmniejszę ją do wartości np 60 to zero z wartości 130 zostaje na wyświetlaczu i pokazuje wtedy wartość 600. Wie ktoś jak co z tym zrobić?
Chcę odczytać wartość prędkości z zakresu 0-150 z pinu analogowego i wyświetlić ją na wyświetlaczu lcd. Generalnie zadanie bardzo proste ALE w momencie kiedy prędkość wynosi np. 130 i zmniejszę ją do wartości np 60 to zero z wartości 130 zostaje na wyświetlaczu i pokazuje wtedy wartość 600. Wie ktoś jak co z tym zrobić?
- 20 gru 2015, 18:12
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Problem ze sterowaniem silnikiem krokowym
- Odpowiedzi: 8
- Odsłony: 5067
- 20 gru 2015, 17:18
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Problem ze sterowaniem silnikiem krokowym
- Odpowiedzi: 8
- Odsłony: 5067
Re: Problem ze sterowaniem silnikiem krokowym
kierunek definiuje po prostu
int kierunek;
Z tego co wiem i jak sprawdzałem na tym prostym przykładzie samej pracy silnika to jeżeli dla wartości step podam liczbę "na minusie" np -100, to silnik kręci się zgodnie z ruchem wskazówek zegara, a jeżeli wartość jest na plusie to silnik kręci się w przeciwnym kierunku.
int kierunek;
Z tego co wiem i jak sprawdzałem na tym prostym przykładzie samej pracy silnika to jeżeli dla wartości step podam liczbę "na minusie" np -100, to silnik kręci się zgodnie z ruchem wskazówek zegara, a jeżeli wartość jest na plusie to silnik kręci się w przeciwnym kierunku.
- 20 gru 2015, 15:11
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Problem ze sterowaniem silnikiem krokowym
- Odpowiedzi: 8
- Odsłony: 5067
Problem ze sterowaniem silnikiem krokowym
Witam.
Jestem w trakcie budowania bardzo prostej konstrukcji, która napędzana będzie silnikiem krokowym. Program piszę na Arduino i chcę aby sterowanie silnikiem odbywało się za pomocą joysticka, który jak wiadomo jest potencjometrem. Tak wygląda kod funkcji, która odpowiada za sterowanie.
void manualMode()
{
int value = 0;
int kierunek;
int predkosc;
value = analogRead(sensorX);
if(value > 540)
{
predkosc = map(value, 540, 1023, 0, 100);
kierunek = 1;
}
if(value > 440 && value < 540)
{
predkosc = 0;
}
if(value < 440)
{
predkosc = map(value, 0, 440, 100, 0);
kierunek = -1;
}
if(predkosc > 0)
{
silnik.setSpeed(predkosc);
silnik.step(kierunek);
}
}
Problem polega na tym, że niezależnie w którą stronę pochyle joystick, to silnik kręci się w tą samą stronę (dokładnie zgodnie ze wskazówkami zegara).
Sprawdzałem też czy zadziała kiedy zamiast joysticka do sterowania uzyje przycisków ale jest to samo.
Czy ktoś wie i mógłby mi powiedzieć gdzie lub w czym jest problem, bo na prawdę już sam nie wiem o co chodzi.
Dla przykładu powiem jeszcze, że testowałem też na "czystym" programie, czyli zaimplementowałem silnik, podałem setSpeed oraz step i wtedy działa bez zarzutu. Ustawiając step na wartości dodatnie silnik kręci się w jedną stronę, a po zmianie w kodzie na wartości ujemne silnik kręci się w odwrotną stronę.
Liczę na waszą pomoc, będę bardzo wdzięczny.
Pozdrawiam.
Jestem w trakcie budowania bardzo prostej konstrukcji, która napędzana będzie silnikiem krokowym. Program piszę na Arduino i chcę aby sterowanie silnikiem odbywało się za pomocą joysticka, który jak wiadomo jest potencjometrem. Tak wygląda kod funkcji, która odpowiada za sterowanie.
void manualMode()
{
int value = 0;
int kierunek;
int predkosc;
value = analogRead(sensorX);
if(value > 540)
{
predkosc = map(value, 540, 1023, 0, 100);
kierunek = 1;
}
if(value > 440 && value < 540)
{
predkosc = 0;
}
if(value < 440)
{
predkosc = map(value, 0, 440, 100, 0);
kierunek = -1;
}
if(predkosc > 0)
{
silnik.setSpeed(predkosc);
silnik.step(kierunek);
}
}
Problem polega na tym, że niezależnie w którą stronę pochyle joystick, to silnik kręci się w tą samą stronę (dokładnie zgodnie ze wskazówkami zegara).
Sprawdzałem też czy zadziała kiedy zamiast joysticka do sterowania uzyje przycisków ale jest to samo.
Czy ktoś wie i mógłby mi powiedzieć gdzie lub w czym jest problem, bo na prawdę już sam nie wiem o co chodzi.
Dla przykładu powiem jeszcze, że testowałem też na "czystym" programie, czyli zaimplementowałem silnik, podałem setSpeed oraz step i wtedy działa bez zarzutu. Ustawiając step na wartości dodatnie silnik kręci się w jedną stronę, a po zmianie w kodzie na wartości ujemne silnik kręci się w odwrotną stronę.
Liczę na waszą pomoc, będę bardzo wdzięczny.
Pozdrawiam.