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



Teraz jest 19 kwi 2024, o 20:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 15 cze 2017, o 16:52 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

cześć.
Proszę o pomoc odnośnie mojej szufladki sterowanej serwem. Szufladka ma się przesuwać do przodu i do tyłu, jest ograniczona dwoma krańcówkami. Problem mam w tym,że nie wiem jak ją zatrzymać po zamknięciu się. wrzucam krótki kod sterujący serwem i krańcówkami.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Póki co nie skupiam się na samych wartościach OCR1A, ponieważ szufladka jest wyciągnięta i to czy kręci się serwo w lewo czy w pracy, na tym etapie nie ma znaczenia. symuluję ruch szufladki palcem. Założenie jest takie,że gdy szufladka jest zamknięta to włączona jest krańcówka 2, gdy szufladka się otworzy na maxa, to zwalnia się krańcówka 2 , a włącza się krańcówka 1. Szufladka ma się otworzyć na maxa i od razu się zamknąć, po czym ma się serwo wyłączyć. Po zamknięciu się szufladki zwalnia się krańcówka 1, a włącza krańcówka 2. W moim kodzie właśnie tak to działa, ale nie wiem jak na sam koniec, czyli po zasunięciu się szufladki wyłączyć to serwo.
pozdrawiam Wojtek :)

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 17:45 
Offline
Użytkownik

Dołączył(a): 22 kwi 2015
Posty: 50
Pomógł: 0

Jak na moje oko zamykasz sobie while'a po "else if ((!KRA_2_DOWN)&&(KRA_1_DOWN)) OCR1A = 2500;" i do ostatniego ifa nawet nie dochodzisz :-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 18:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Hejka Wojtek,
Widzę że wojyjesz teraz z serwkuwm. :)
Domyślam się że to obrotowe skoro chcesz je zatrzymać pi zadzialaniu krańcówki. ;)
Możesz po osiągnięciu oczekiwanego położenia podać OCR o wartości zatrzymującej

i dodatkowo przełączyć pin "jako wejście" . :D

------------------------ [ Dodano po: 1 minucie ]

I chyba zabrakło else przed ostatnim ifem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 19:26 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

po trzecim ifie mam napisane OCR1A = 0 , a serwko dalej się kręci. Myślałem ,że ogarnę to za pomocą ifów i else. ale chyba coś mi nie wychodzi. Próbuję jeszcze to zrobić ze zmienną. Ale zastanawiam się czy tak jak to chciałem zrobić wyżej w przykładzie, to czy to ma prawo działać poprawnie.

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

a spróbuj tak z użyciem flagi;
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: 1 minucie ]

wojciechgorzolka napisał(a):
po trzecim ifie mam napisane OCR1A = 0 , a serwko dalej się kręci.

:) a ile musi być OCR żeby zatrzymalo się serwko ? czy nie czasem opmiędzy 500 a 2500. ? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 19:58 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

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

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

myślę że dobrze by było pokazać całą pętlę główną,
bo ten wycinek kodu w pierwszym poście coś ma nie tak z klamrami.
Zobacz - za while są klamry : otwierająca i zamykająca, a pod spodem następne dwie klamry z kodem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 20:16 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

zaraz podeślę, tylko poczynię poprawki i wyślę.

------------------------ [ Dodano po: 41 minutach ]

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


Pierwszy etap:
czyli w stanie pierwotnym szufladka jest zamknięta, czyli krańcówka z numerem dwa jest włączona. Wtedy serwo obraca się w prawo, wysuwając szufladkę. Jeśli natomiast okazało by się,że szufladka jest lekko uchylona to wraca w lewo, aby się domknąć i powinna się zatrzymać. Pierwszy if działa poprawnie, pierwsze else też działa. ale chcę aby po domknięciu się szufladki (czyli po ponownym włączeniu krańcówki numer 2) serwo się zatrzymało - a nie dzieje się tak, ponieważ wychodzi na to ,że któreś komendy ruchu serwa nakładają się na siebie. czyli serwo głupieje. Czy nie używając zmiennych , które można by tutaj użyć, da się wyeliminować ten efekt nakładania się komendy obrotu w prawo i lewo?

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2017, o 21:19 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

chwilowo wstrzymuję pytanie, ponieważ myślę nad rozwiązaniem ze zmienną :):)

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2017, o 13:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

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

Pierwsza część za nami. Domknęliśmy szufladę i otworzyliśmy.
Ale co dalej trzeba zrobić?
Czy teraz mamy zamknąć gdybyśmy czasem po włączeniu zastali całkowicie otwartą szufladę?


Po włączeniu zasilania osobiście zostawiałbym w stanie takim jakim jest szuflada np:
składamy zamki itp nie mamy pojęcia czy wszystko dobrze działa, trzeba włączyć do prądu szuflada się zamknie i coś poszło nie tak i teraz trzeba będzie dewastować szufladę.
Dlatego też po podaniu V zostawiłbym szufladę w takim stanie jakim ją zastałem bynajmniej na początek na testy. Jak mechanizm będzie pewny wtedy wolałbym ją zamykać aby przypadkiem jak ktoś będzie chciał ją otworzyć nie zabrał i nie podał zasilania :)

Jeszcze tak czysto stylistycznie nawiązuję do linii 10 z powyższego kodu:

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


czy nie czytelniejszym zapisem jest zapis bez 2 wewnętrznych nawiasów ?

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


Pozdrawiam

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2017, o 16:31 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

cześć. Kod jest opanowany, dziękuję za pomoc. Nie jest to szuflada biurka . już pokazuje co to takiego będzie.

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



Jest to podajnik cukierków. Póki co jest to pierwsza wersja testowa, docelowo mechanizm będzie zrobiony ze sklejki z tubą na cukierki. Całość będzie zamontowana w drewnianej kredce ekspozycyjnej , która będzie stała w końciku dla dzieci. :):) taka wariacja :)

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2017, o 21:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

No no fajniasczy pomysł czekam na efekt końcowy

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2017, o 08:02 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

Mam takie pytanie. Czy na atmega32, który mam w ATB nie będzie problemu z podciągnięciem wewnętrznego rezystora na pinach MOSI MISO SCK?

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2017, o 15:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

A dlaczego miałby być problem ?

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2017, o 17:30 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 469
Lokalizacja: Katowice
Pomógł: 1

no właśnie u mnie chyba jest problem. ale może to wynika ze zworek na ATB? nie wiem. Chciałem podciągnąć wewnętrzny rezystor do pinu PB6 i PB7 i do jednego się nie dąło, ponieważ gdy mierzyłem miernikiem, to napięcie nadal pływało na pinie. tak więc zmieniłem sobie piny n inne i jest ok. chodziło mi o podłączenie krańcówek do uC. teraz jest ok :)

_________________
Nikt nie mówił,że będzie łatwo...



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 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