Liczba postów: 2
Liczba wątków: 1
Dołączył: Sep 2017
Reputacja:
0
Witam
Mam pytanie.
Chcę zrealizować sterowanie silnikiem proporcjonalnie do odczytu wartości analogowej.
Ma to wyglądać tak
Mam do dyspozycji sygnał z czujnika halla w zakresie 0-5V, chcę żeby np co 1mV odczytu silnik kręcił się np przez 1/100 Sekundy .
Chodzi o płynny ruch silnika w zależności od odczytanej z czujnika wartości.
Jak takie coś zrealizować.
Proszę o sugestie.
Liczba postów: 22
Liczba wątków: 5
Dołączył: Aug 2017
Reputacja:
0
Na pewno przypisujesz wartosc pinu analogowego do jakiejs zmiennej poprzez funckje analogRead(). Beda to wartosci w zakresie od 0 do 1023, proporcjonalne do napiecia. Mozesz wykorzystac mostek H albo sterowanie tranzystorowe silnikiem, bezposrednio do Arduino silnika nie mozesz podpiac. Proponuje tez uzyc funkcji delay(), ktora bedzie wykorzystywac odczyt z pinu analogowego przemnozony przez odpowiedni wspolczynnik. Wartosci ktore podajesz w funkcji delay() sa wyrazone w milisekundach. Bedziesz mogl otrzymac rodzielczosc 0,005V
Liczba postów: 2
Liczba wątków: 1
Dołączył: Sep 2017
Reputacja:
0
11-09-2017, 12:24
(Ten post był ostatnio modyfikowany: 17-09-2017, 11:21 przez JasQ.)
Ok ale jak to napisać.
delay ma być do momentu zmiany wartości na pinie analogowym in.
Czyli Mam z czujnika np wartość 2.05V i dla tego odczytu silnik się zakręci przez określony czas.
Jest też kwestia narastania wartości napięcia z czujnika. Czyli od 0 do 5 V silnik kręci się w prawo w zależności od odczytu, natomiast od 5V do 0V silnik kręci w lewo. Kwestię wysterowania silnika mam już zrobioną wlaśnie mostkiem h.
Liczba postów: 22
Liczba wątków: 5
Dołączył: Aug 2017
Reputacja:
0
W takim razie utworz sobie bufory - zmienna ktora bedzie przechowywac odczyc z poprzedniej petli. I teraz w zaleznosci od warunku jaki spelni odczytana wartosc przypisana w obecnej petli do innej zmiennej ustawisz wyjscia tak, aby silnik zakrecil sie w prawo, lewo, lub wcale, tzn if(obecna>poprzednia) to prawo if(obecna<poprzednia) to lewo if(obecna==poprzednia) to silnik stoi i na koncu petli loop przypisujesz do poprzedniej wartosc obecnej tj. poprzednia=obecna