Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 kwi 2026, o 06:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 26 paź 2013, o 16:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2013
Posty: 79
Lokalizacja: Rybnik
Pomógł: 2

Witam,
Próbuje na podstawie odczytu wartości ADCW z dwóch czujników FSR odpowiednio wysterować silnik krokowy bipolarny. Niestety nie mogę dość co robię źle. Silnik krokowy steruje chwytakiem mechanicznym, na jego ramieniu umieszczony jest jeden z czujników. Siła nacisku chwytaka wywierana na element ma być zadana z czujnika FSR (np. poprzez naciskanie palcem). Zamieszczam poglądowy rysunek.
Obrazek

Silnik powinien być tak wysterowany, aby siła nacisku wywierana na przedmiot znajdowała się w zakresie zadanym poprzez parametr K.
Niestety coś robię źle i chwytak cały czas się otwiera, lecz gdy zadam siłę zaczyna się zamykać. Nie wyłapuje mi progu działania.
Zamieszczam fragment kodu odpowiedzialnego za odpowiednie wysterowanie silnika krokowego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Nadmienię także że pomiar jest wykonywany poprawnie poprzez ADC oraz funkcje do sterowania silnikiem działają poprawnie. Kwestia tkwi w odpowiednim uwarunkowaniu zadziałania silnika krokowego.
Dziękuję z góry za udzielenie sugestii i podpowiedzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 paź 2013, o 18:11 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

A co robi funkcja kroki_lewo() otwiera czy zamyka? Próbowałeś zamienić miejscami te funkcje?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 paź 2013, o 18:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2013
Posty: 79
Lokalizacja: Rybnik
Pomógł: 2

Po kilku godzinach doszedłem do tego co jest źle. Nie mogę w zmiennej uint przechowywać wartości ujemnych, dlatego się sypało.
Ja zrobiłem coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Gdy wartości odczytane z czujników są równe zero to program próbował to porównać z wartością ujemną, ale uint nie może przechowywać wartości z minusem. Po poprawieniu kodu wszystko działa elegancko. Niby głupi błąd a człowiek nad nim spędzi kilka godzin wmawiając sobie że jest wszystko dobrze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Baidu [Spider] i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO