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



Teraz jest 21 kwi 2026, o 05:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 13 kwi 2017, o 12:21 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lis 2016
Posty: 14
Lokalizacja: Rzeszów
Pomógł: 0

Witajcie,
ostatnio zająłem się troszkę starym już tematem enkoderów. Więc zabrałem się za podłączanie wszystkich komponentów do zestawu ATB (enkoder + zestaw rezystorów, kondensatorów) do płytki stykowej.
Następnie odpaliłem sobie poradnik Pana Mirka dotyczący elementu wyż. wym. i najpierw jednego dnia przeszedłem przez serię poradników wyłącznie oglądając i słuchając. Następnego dnia wziąłem się za brzydko mówiąc "przerżnięcie" kodu z poradnika. Jako, że jestem osobą, która szanuje czyjąś pracę i osobą która docieka i chce na własnej skórze poczuć samo pisanie kodu zacząłem kod przepisywać krok po kroku. I o dziwo po przejściu odcinków 1-5 kod działał poprawnie i enkoder spełniał swoją funkcję.
Widzicie to na dwóch pierwszych wsadach. Pierwszy z nich to moja modyfikacja sterowania LED'em za pomocą PWM - tak wiem, jest kiepska i niedokończona. Nie działa to tak jak powinno ale nie o tym mowa. Drugi wsad to oryginalny wsad, który napisał Pan Mirek. Trzeci wsad to jest właśnie ta nieszczęsna biblioteka (ale biblioteka z Youtube) - nie ta biblioteka o nazwie MK_ENCODER.

No i problem jest taki, że Panu Mirkowi to działa - mi nie.
Działam na enkoderze pełno-krokowym czyli z tego co rozumiem zanim mikrokontroler wykryje krok to mam 3 mikrokroki przed - czyli 4 w sumie (wtedy jest wykrywany pojedynczy krok). Działam nie na pullingu a właśnie na przerwaniach INT0 i INT1. I prosiłbym was o sprawdzenie mojego bądź co bądź przepisanego kodu z poradnika.
Kod niby się kompiluje bez żadnych błędów. Nie mam zielonego pojęcia o co chodzi. Siedziałem nad tym wczoraj chyba z 9 godzin. Chciałem nadmienić, że Panu Mirkowi już program na tym etapie działał, mam identyczny zestaw, i tak samo podpięty. Enkoder pod piny PD2, PD3. Dodatkowo buzzerek i wyświetlacz LCD. Wszystkie pliki nagłówkowe mam dołączone. Wydaje mi się, że problem jest gdzieś z jakąś niedomkniętą klamrą ale eclipse nie pluje błędami. No tylko wtedy gdy nie mam zarejestrowanego eventu dotyczącego użycia switcha (gdy ustawiam jego obsługę w pliku nagłówkowym).
Aha i właśnie wiem, że niektórzy mnie zlinczują za brak rezystora podłączonego do diody. Tak wiem, LED steruje się prądem nie napięciem. Ale w tym wypadku gdy steruję ją PWM'em uznałem, że nie muszę. Dioda pobiera tylko i wyłącznie 8,9 mA przy maksymalnym poziomie jasności.
Poniżej kolejno znajdują się kody źródłowe + załączam filmik na Youtube, który nagrałem:
1. Plik nagłówkowy biblioteki
2. Plik kodu źródłowego biblioteki
3. Plik główny main.c

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


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


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




Pozdrawiam i dziękuję już na wstępie za chęć udzielenia pomocy - takiemu "barankowi" jak ja :D



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

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

widzę literówki... w pliku .h w lini 46 zjadłeś "T" na koncu
w pliku .c w funkcji encoder_init() chociażby zamiast INT piszesz INIT np.. #if USE_INIT_IRQ, #if USE_INIT w lini 100 i 102

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2017, o 14:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27456
Lokalizacja: Szczecin
Pomógł: 1045

BePower napisał(a):
Ale w tym wypadku gdy steruję ją PWM'em uznałem, że nie muszę.

To jeśli na takiej samej zasadzie podszedłeś i podchodzisz do innych rzeczy to nie dziwne że masz problemy .... Ciekawe skąd to przekonanie że nie potrzeba rezystora ... a szczególnie przy PWM o wartości bliskiej 100% albo 100% - zastanów się więc bo niestety opowiadasz kosmiczne historie albo innymi słowy mówiąc fantasmagorie - że w takim wypadku nie trzeba rezystora

BePower napisał(a):
Dioda pobiera tylko i wyłącznie 8,9 mA przy maksymalnym poziomie jasności.

No niestety - warto jednak głębiej poduczyć się ABSOLUTNYCH PODSTAW ELEKTRONIKI i nie piszę tego broń boże złośliwie - bo widać, że przy takim podejściu to kolega KOMPLETNIE ale to KOMPLETNIE nie rozumie jak działają diody ani też nie za bardzo się orientuje co to jest i do czego "Prawo Ohma" ....

W skrócie dioda LED - sama nie bierze panie kochany ... dioda może wziąć ILE WLEZIE aż do spalenia - bo to ile ona weźmie zależy od tego jak ty ograniczysz ten prąd - jeśli go nie ograniczysz rezystorem ... a tego jak widać nie robisz ... To przez twoją diodę przy MAX PWM 100% jak mówię poleciałoby nawet 1A - zasilacz podałby ile mu fabryka dała .... ale wtedy ograniczeniem jest wydajność prądowa pinu procka - która może być na poziomie max ok 30-40 mA !!! więc pomyśl pan sobie to właśnie TYLE wtedy leci przez twoją diodę LED bez rezystora a nie żadne tam 8,9 mA!

jak w nocie PDF widzisz że dioda LED świeci max przy 9mA to oznacza TYYLKO TYLE i AŻ TYLE - że to ty jako elektronik musisz zadbać aby ograniczyć ten prąd do takiej wartości - a nie odwrotnie !

Pomyśl sobie gdyby tak było że dioda LED bierze ile ona chce ;) to podłącz ją do gniazdka 220V ! (żartuję nie rób tego) ... wtedy co? ona też pobierze sobie 8,9mA ? i będzie świecić ładnie ? czy po prostu ODPARUJE ? ... a jak odparuje to jak myślisz dlaczego ?

Ale ok zamiast 220V ... podłącz swoją diodę LED bez rezystora wprost do wyprowadzeń +5V i GND z zasilacza komputerowego - to powinno być dla ciebie ważne doświadczenie .... Tylko załóż okulary bo dioda może błysnąć i strzelić kawałkami plastiku - wtedy się ostatecznie przekonasz że dioda nie bierze ile ona zechce ....

teraz jaśniej ?

A nawiasem mówiąc - podłączanie diod LED bez rezystora może powodować TAK PRZERÓŻNE CYRKI na zasilaniu procka - ponieważ KATUJESZ jego pin jego MAKSYMALNYM DOPUSZCZALNYM prądem - że w ogóle procek może świrować albo nawet się restartować jeśli do tego nie zadbałeś o prawidłową np i sporą filtrację zasilania

poczytaj sobie to DOKŁADNIE:

http://mirekk36.blogspot.com/2012/04/mi ... lanie.html

http://mirekk36.blogspot.com/2012/12/fi ... wazne.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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ł: Brak zidentyfikowanych użytkowników i 1 gość


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