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



Teraz jest 21 lip 2026, o 10:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 23 kwi 2017, o 02:24 
Offline
Nowy

Dołączył(a): 28 mar 2017
Posty: 7
Pomógł: 0

Witam, próbuję stworzyć układ typu "kulka na pochylni". Niestety przy próbie połączenia obsługi czujnika i serwomechanizmu pojawia się problem. Jestem w stanie obsłużyć sam czujnik i on działa poprawnie (sprawdzone przy pomocy wyświetlacza LCD), podobnie w przypadku serwomechanizmu mogę nim sterować w określonym zakresie. Niestety serwo nie chce się poruszać gdy poprzedzi je funkcja "pomiar" służąca do pomiaru trwania stanu wysokiego na pinie ECHO. Czy ktoś mógłby mi wyjaśnić dlaczego tak się dzieje? Ponadto nie jestem pewny czy dobrze napisana jest funkcja dla regulatora PID, ktoś mógłby mnie nakierować? Projekt wykonywany na atmega8, czujnik HCSR04.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2017, o 07:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Tak na pierwszy rzut oka jeśli wszędzie masz "uint'y" to co robi to #define:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

?

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2017, o 08:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

W funkcji pomiar oraz serwo_init używasz tego samego timera, w funkcji pomiar użyj liczenia softwarowego

_________________
Situs != Situs



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2017, o 12:58 
Offline
Nowy

Dołączył(a): 28 mar 2017
Posty: 7
Pomógł: 0

No tak, obie funkcje korzystają z tego samego timera. Jako, że dopiero zaczynam zabawę z uC nie do końca wiem jak zliczać software'owo.
Skorzystałem natomiast z timera 8-bitowego Timer0 i wprowadziłem dodatkową zmienną która podczas przepełnienia licznika jest inkrementowana i funkcja działa właściwie tak samo jak w pierwszej wersji.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie wiem czy taki sposób zapisu jest dobry i jak ewentualnie mógłbym to zrobić lepiej, w każdym razie wydaje się, że działa tak jak powinno. Dziękuje za pomoc. Miałbym jeszcze pytanie do funkcji regulatora. Czy jest ona dobrze zapisana? Bo nie działa to do końca poprawnie mimo nastaw dobranych wcześniej działających na arduino.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2017, o 15:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

Tak się zlicza software'owo
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: kilkunastu sekundach ]

w zmiennej licznik jest czas trwania stanu wysokiego w us

_________________
Situs != Situs



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO