https://obrazki.elektroda.pl/8691272400_... Witam, poniższy mini-projekt powstał z inspiracji Część elektroniczna Urządzenie bazuje na dwóch PCB (4x wyświetlacz LED + płyta główna) połączonych ze sobą taśmą flex z jakiejś drukarki. Wyświetlacze to wylutowane z czegoś 7-segmentowe pojedyńcze kostki ze wspólną anodą i czerwonym filtrem...
Hmmm... do tej pory żyłem z przeświadczeniem, że standardowo w AVR przerwania nie da się przerwać innym przerwaniem... Ale ja rzeźbię w asm i też kopiuję istniejący kod... ;)
Witam, przecież wskazanie enkodera nie zależy od wartości na pinie, tylko od zmiany tej wartości. Teraz przerwanie wywołuje enkoder drugi, a Ty przy okazji zmieniasz pozycję dla pierwszego. Pozdrawiam.
Witam, Muszę zbudować czujnik kierunku robota (tzn. w którą stronę realnie się porusza). Wymyśliłem sobie, że myszka kulkowa wydaje się najprostszym rozwiązaniem. Okazuje się, że sercem mojej myszy jest układ EM84502 - scalony czterokanałowy enkoder obsługujący "kółeczka ze szczelinami" z myszy. Komunikacja z nim odbywa się za pomocą protokołu 8042....
Zainteresuj sie taśma która biegnie do głowicy, moze sie rozłączyła. Przeskoczony pasek nie jest powodem problemu bo pozycjonowanie odbywa sie przez enkoder a nie z wyliczonej liczby zebow. Dobrze mówi ja bym szukał też przy tej taśmie przyczyny albo na stykach łączących kartridż z drukarką tym bardziej że po uderzeniu w rękę mogło coś się wypiąć lub...
Nie, tego z obsługi enkodera. Jak sądę przejściu 0->top i top->0 towarzyszy przerwanie nadmiaru. Ew. można wykorzystać przerwanie compare z kanałów A-D.
Jeżeli masz na PCB sygnały na wszystkich liniach, jak zmierzysz oscyloskopem, to enkoder działa. Może jest tylko kwestia przerwanych przewodów lub problem z wtyczką, co tam masz podłączone... jaka wtyczka, przewody... Miernik na piszczałkę i ruszać przewodami kablem, zapewne tam masz problem z niedziałaniem maszyny... A może masz przerwane przewody...
No to niech program policzy, przynajmniej z grubsza: Co z błędnym liczeniem? A kiedy taki błąd może nastąpić. Nie chodzi mi o program, ale to co przesuwa taśmę.
witam! To niestety nic nie daje, bo właśnie o to chodzi aby podczas wykonywania przerwania od timer2(enkoder), gdy Timer0 się przepełni, procesor powinien zawiesić przerwanie (enkoder) i przejść do obsługi przerwaia od Timer0(czekaj).
Witam, [syntax=c]attachInterrupt(ENK1, enkoder, FALLING);[/syntax] Na pinie 3 (PB3), nie ma przerwania INT, które włącza ta funkcja. Attiny85 ma przerwanie INT0 na pinie 2 (PB2), więc wystarczy pozamieniać piny, np. tak: [syntax=c]#define ENK1 2 #define ENK2 4 #define RST 0 #define DATA 1 #define CLK 3[/syntax] Później zmienić to: [syntax=c]attachInterrupt(ENK1,...
Zakładami że to enkoder inkrementalnyy i do obsługi używasz szybkiego licznika HSC. Wtedy masz obsługę zdarzenia typu wartość licznika=wartość zadania przez przerwanie. Np dla HSC0 jest to zdarzenie (przerwanie) 12
Sygnał na dwóch wejściach enkodera jest w zależności od kierunku obrotu przesunięty w fazie. A ten kod to wykrywanie sekwencji. Na początku wpisujesz stany pinów do zmiennej i na jej podstawie (o obecnego stanu) zmieniasz stan na kolejny. Drgania styków eliminowane są poprzez przejścia wewnątrz danej sekwencji. Wystarczy wrzucić go w przerwanie co ileś...
Prawdę mówiąc nie widzę sensu w realizacji dzielenia przez 40 sprzętowo. Ale jak pisałem, jeśli masz wolny timer, to do rejestru PER timera za pomocą którego realizujesz QDEC wpisujesz 39, wtedy co 40 impulsów wygeneruje ci przepełnienie, które możesz transmitować przez event system jako zegar dla drugiego timera, który w efekcie będzie zliczał co 40...
Nie widzę problemu. 32 enkodery to 64 bity, 8 rejestrów przesuwnych. Ponieważ SPI działa z max CLK/2 to masz przerwanie co 16 taktów. No ale przecież enkoder możesz czytać wolniej, w zależności od założonej max prędkości pewnie nie trzeba częściej niż co 1ms, czyli przerwania ci wyjdą co 0,25ms - kupa czasu. Dekodowanie enkoderów zrobiłbym w przerwaniu...
Przebiegi te są najprawdopodobniej delikatnie przesunięte w czasie... Można np ustawić (w uP) przerwanie na jeden z pinów, jeżeli w chwili przerwania na drugim 0 - obroty prawe, jeżeli 1 lewo.
1. z tego co piszesz to przerwanie o najwyższym piriorytecie będzie występowało z częstotliwością 4kHz. Zakładając że będziesz miał zegar 8MHz to na obsługe przerwania (zapisanie 8 bajtów) i obsługe innych przerwań będziesz miał: 8MHz/4kHz = 2000 cykli zegarowych co w przypadku procesorów typu RISC daje jakieś 1500 instrukcji. A to jest całkiem sporo....
Witam, Po pierwsze aby z bloku CTRL_HSC móc sterować kierunkiem zliczania to HSCx musi być skonfigurowany jako Single lub Two Phase. W przypadku gdy masz wybrane A/B to sterownik sprzętowo to zmienia i nie masz możliwości zmienić tego w programie. Zmian tych dokonujesz w konfiguracji sprzętowej sterownika w sekcji HSC. Pytanie natomiast po co jest podłączać...
Istotnie są enkodery, które generują pojedyncze przejścia, albo całe cykle, lecz w praktyce nie ma to znaczenia i metoda opisana przez (at)PDT sprawdzi się w obu przypadkach. Jedynie wynik należy podzielić przez 4 jeśli enkoder generuje pełen cykl/przejście. Jeśli przerwanie tak jak w przykłądzie jest generowane co 2,5ms to potencjalnie możemy wykryć...
Jak już robić koniecznie na przerwaniach zewnętrznych to na nowszych układach z PCINT, podpinając tylko jedno przerwanie na enkoder, drugie jest całkowicie zbędne. Obsługujemy tylko jedno zbocze w przerwaniu, drugie odrzucamy. W obsłudze przerwania należy pamiętać poprzedni stan, aby nie odczytywać drobnych drgań jako pełnoprawnego impulsu.
Witam Pisalem kiedys program do sterowania robotem (manipulatorem ) w bascomie. Zliczal on miedzy innymi impulsy z 3 enkoderow. i wszystko ladnie chodzilo: Fragment kody ktory zlicza impulsy z 3 enkoderow: //enkoder 1 Enk1_a Alias Pinb.0 Enk1_b Alias Pinb.1 //enkoder 2 Enk2_a Alias Pinb.2 Enk2_b Alias Pinb.3 //enkoder 3 Enk3_a Alias Pinb.4 Enk3_b Alias...
No to wg. mnie wywazasz otwarte drzwi. Skoro w wiatraku masz enkoder to wystarczy dowiedziec sie co to za rodzaj enkodera i napisac aplikacje. Jezeli zwykly impulsowy enkoder 2-fazowy to musisz znac ilosc impulsow na obrot. Szybkim licznikiem liczysz z niego imulsy a timerem liczysz czas i ustawiasz przerwanie na wartosc zadana timera. W tym przerwaniu...
Program w tej formie jaką zamieściłeś zaraz po zainicjowaniu zmiennych i sprzętu wchodzi w warunek "If Timer1" nawet bez wywołania przerwaniem. Później zdejmie coś ze stosu, albo przeleci się po pustym flash`u i zacznie od początku. Żeby w ogóle to zaczęło coś robić to powinieneś po Start Timer dodać, jakąś pustą nawet, pętlę "Do : Loop" Wtedy w pętli...
Ja coś podobnego zrobiłem na ATmedze16. Podłączyłem enkoder pod wejścia generujące przerwania zewnętrzne i odpaliłem tajmer, zliczam różnice czasu między przerwaniami. W AT90S2313 masz przerwania zewn z PD2 i PD3. w obsłudze przerwania zewn. robisz: prędkość = (obwód_koła / rozdzielczość_tarczy_enkodera) / różnica_czasu_między_przerwaniami lub pomiar...
Przepraszam ale w pierwszej wypowiedzi popełniłem błąd logiczny - oba przerwania powinny być ustawione na te same zbocze a nie różne. Dlaczego, bo tak jak napisałem wcześniej nie będzie można określić kierunku zmian, zawsze bedzie ta sama kolejność wywoływania przerwań. Obojętnie czy kręcimy w lewo czy w prawo. np. ChA narastanie 0->1 a ChB opadanie...
Nie możesz zamiast korzystać z polecenia encoder podłączyć go do przerwania i ustawić, żeby przerwanie następowało przy zboczu narastającym?
To coś żle podłączasz albo enkoder jest upalony.
Dzień dobry. Przepraszam nie zaważyłem, można spróbować wykorzystać pozycje enkoder, ale spróbował bym jeszcze wykorzystać w 1200 sprzętowe przerwanie od wejścia.
Wyczyść enkoder . Zobaczy na wydruku testowym głowicy jest ok ?
Rozwiązanie było proste! Wystarczyło dopisać sei(); w funkcji obsługującej przerwanie USART Ciekawe jak sprawa będzie wyglądać gdy podłącze drugi enkoder (po potrzebuje dwóch)?
Problem rozwiązany - prawdopodobnie był uszkodzony enkoder od głośności, po sprawdzeniu go dokładnie, nie miał "klik" i przez to nie ustawiał się w pozycji "otwartej". Przy okazji wymieniłem wszystkie mikroswitche, bo ich cena to grosze, a jeden też mimo odbicia nie zawsze przerwał obwód. Dla przyszłych - jak pojawią się problemy z tym Philipsem radzę...
W moim przypadku, chciałbym aby transfer przez DMA był realizowany przy każdej zmianie wartości CNT. To być może musiałbym wyzwalać jakieś przerwanie z wejść PC6 i PC7, bo tam jest podłączony enkoder. Sam Timer w trybie Encoder Mode może generować przerwanie i DMA request chyba tylko po przepełnieniu. Nie znalazłem żadnej innej możliwości. P.S. A czym...
Według mnie to wychodzi tak : dla czujnika z 4 polami odbiciowymi przy prędkości 2000 rmp uzyskasz 8000 imp / min, co daje częśtotliwosć ok. 133 Hz. Przy tej wartości nie bedziesz mial problemów ze Shmittem. Wyjście z czujnika podajesz np. na wejście INT0 mikrokontrolera i w przerwaniu sterujesz wewnętrznym timerem. Po prostu przerwanie INT0 powinno...
Witam wszystkich, chciałem się zapytać od jakiego modelu drukarki (HP) pasuje pasek enkodera (poziomy przesuwająca się karetka) do HP DeskJet 1050? Pytam, gdyż ten enkoder został przerwany (i gdzieś się "zagubił") może ktoś z Was będzie wiedział gdzie ewentualnie kupić go (oprócz serwisu) bo bardzo ciężko dostać cokolwiek do tej drukarki :( Jak wiadomo...
No sprawdziłem z 1k i działa jest 5.04V lub coś koło 0V. A jak proponujecie komunikację enkodera z atmegą. Trzeba zastosować jakiś licznik, przerwanie, czy tak normalnie zliczać zbocza/jedynki?
Teraz to już nie wiem co Ty chcesz stworzyć , gotowy projekt na LM7001 http://sq1ftb.prothost.pl/articles.php?a... z którego chyba korzystasz , rozumiem że chcesz w inny sposób wprowadzać zmiany częstotliwości ale nie możesz do tego używać portu C na którym masz LCD , Port D.2 , D3 to enkoder wykorzystujący przerwanie . Masz gotowy projekt wystarczy...
Dla mnie ewidentnie sygnał, że napęd stoi - tzn, enkoder/resolver nie daje sygnału do 1394 o obrotach. Jeśli resolver sprawdzony to kable - albo przerwane, albo źle połączone.
Pozwolę sobie jeszcze raz po czasie poruszyć temat enkodera obrotowego. Jak zmodyfikować [url=https://extronic.pl/content/59-kurs... program żeby każda zmiana stanu enkodera generowała przerwanie. Chodzi o to żeby nie czytać stanu rejestru TCC0.CNT cyklicznie i sprawdzać czy przypadkiem coś się w nim nie zmieniło tylko odczytywać...
https://obrazki.elektroda.pl/7027157300_... https://obrazki.elektroda.pl/3117531200_... https://filmy.elektroda.pl/69_1568232758... Witam, Miałem wcześniej w planach zgłosić się z prośba o pomoc w zaprogramowaniu, jak wszystkie osie bedę miał juz gotowe, ale niestety przy próbie uruchomienia 3 osi napotkałem...
Rozwiązanie okazało się banalne. Zauważyłem, że zwierając krańcowe styki enkodera do środkowego reakcja była tylko z jednej strony i odczytywana jaka obrót w prawo. Posprawdzałem przejścia na płycie i okazało się, że w pobliżu gniazda łączącego z panelem jest przerwana ścieżka. Po zlutowaniu problem ustąpił.
zdawało mi się, że w momencie, gdy enkoder zmieni kierunek obrotu w ,, połowie zbocza '' może pominąć dane przerwanie i go po prostu nie wliczyć, jednak tak teraz zastanawiając się, gdyby napisać program odzwierciedlający poszczególne przypadki zbocz ( 1, 2 ,3 i 4 ), to nie powinien on w żaden sposób gubić impulsów, tak myślę
Masz rację, nie ma, może to nie jest ten typ przerwania, który pasuje do enkodera poczytam w dokumentacji może coś znajdę jeszcze. Na razie nic nie znalazłem, może po prostu enkoder nie obsługuje przerwań i tyle. Posiedziałem jeszcze dziś nad tym wychodzi na to, że TIM8_UP_IRQHandler jest wywoływany jak pokrętło wraca do pozycji początkowej. Jak pokręcę...
Dziękuję za podpowiedzi Panowie, udało mi się rozwiązać problem wstawiając filtrowanie zasilania przez kondensatory 10uF oraz 100nF. Pierwszy raz przekonałem się, że to ma praktyczne zastosowanie, układzik zasilany jest z USB. Dziwne trochę, ponieważ tak jak jeden z kolegów zauważył jest to enkoder optyczny, a na oscyloskopie nie dopatrzyłem się, żadnej...
dondu: Coś tam obiło mi się o timerach, ale póki co tego jeszcze nie zgłębiałem i chciałem poznawać krok po kroku, bo mógłby mi się zrobić mętlik w głowie. Odnośnie ustawienia flagi w przerwaniu, to co jeśli wystąpi taka sytuacja: Po wyjściu z przerwania (flaga ustawiona na 1) drgania styków jeszcze nie ustały, a główny program jeszcze nie zdążył dojść...
dondu - już czytałem linki które wkleiłeś. To jest zwykły impulsator z gałką. Mam ekran LCD, na nim jest skala np 1-90 i kręcąc gałką zmieniam sobie szybkość migania led przy okazji wyświetlając aktualne położenie szybkości na skali. Jak pisałem na początku, dodanie pokrętła powoduje że enkoder działa bardziej "miękko" przez co więcej syfu daje na stykach....
Prawdopodobnie jest tak jak piszesz , tylko w bascomie flaga jest chyba kasowana automatycznie po skoku w przerwanie , a na początku przerwania jak nie dałem disable int0 , to program lubił się zawieszać , albo robił kaszanę na wyświetlaczu.
Nieużywany pin PB2 można wykorzystać do wyboru czy na wyjściu chcemy impulsy o stanie wysokim czy stanie niskim... Można by też wykorzystać to wyprowadzenie jako sygnał na wejście przerwania uC obsługującego encoder, dzięki czemu nie tracimy czasu na sprawdzanie stanu encodera (pooling). Szkoda tylko, że zabrakło pinu dla przycisku encodera. Można...
Skoro przy podłączonym enkoderze napęd normalnie jechał w jedną stronę - to enkoder jest OK (przy uszkodzonym nie byłoby ruchu w obie strony - co najwyżej dygnięcie). Fotki na razie zmostkuj (czyli zaciski 9 i 10 z 12 - to że tykają - nie oznacza że poprawnie działają - może przerwany przewód sygnałowy, może przypalone styki przekaźnika...
Enkoder faktycznie jest optyczny ale drgania wynikają z oscylacji regulatora lub drgań które niosą się po maszynie. Ale to raczej max kHz wiec dla 32MHx procesor się wyrobi. Ostatecznie wg dokumentacji przerwanie timera może być zgłaszane przy przepełnieniu w obie strony.
Ogólnie to planuję zrobić małe poprawki do pracy i opublikować ją tutaj. Jakieś drobne błędy się wkradły często nieistotne. Ostatnio uruchamiałem swój serwonapęd i zabrakło mi kilku informacji, które trzeba wiedzieć aby to uruchomić. Teraz dopiero z perspektywy czasu gdy sam już zapomniałem jak to działało mogłem to zauważyć... Także możecie się spodziewać...
Widze, że kolejny raz przydałby sie oscyloskop. Najlepszy byłby chyba taki enkoder z impulsami na a lub na b. Trzeba by to podłączyć pod przerwanie, w zasadzie obsługa podobna do przycisków, więc nie będzie komplikacji. W zasadzie to niema żadnej różnicy między przyciskami. Tylko jest kwestia długości trwania impulsu i odpowiedniego przeskalowania ich...
bascom przerwać enkoder bascom enkoder przerwać enkoder zliczać impuls przerwać
mazda ciężka odpalać napełniać czynnik lodówka wentylator projektor
wózek widłowy nissan wózek widłowy nissan
Schemat mikroamperomierza: galwanometr i bocznik Fiat Panda II 1.1 2004 – montaż gniazda zapalniczki, okablowanie, bezpiecznik F44