Witam, Zależy mi tylko na tym, żeby Arduino zliczał impulsy z kontraktrona do 5 - 1 impuls- świeci się dioda led 1 - 2 impuls zapala się dioda led 2 - 3 impuls zapala się dioda led 3 - 4 impuls zapala się dioda led 4 - 5 impuls zapala się dioda led 5 i dodatkowo daje sygnał ciągły HIGH na pin SILOWNIKA przez cały 5 po 6 impulsie reset i znowu: - 1...
Szybko zajrzałem do noty PCF8583 i tam jest napisane, ze kiedy nie używasz funkcji alarmu to stan na pinie INT zmienia się na przeciwny co 500ms. Tak wiec impuls jest na tyle długi ze spokojnie można go traktować jak zwykły przycisk naciskany co sekundę. [syntax=vbnet]$regfile = "m32def.dat" $Crystal=8000000 $hwstack = 64 $swstack=32 $framesize = 128...
Nie muszę używać NE555, tylko chciałem dla przykładu napisać, że muszę zliczać impulsy. Zastanawiam się, która metoda liczenia jest dokładniejsza - liczyć na licznikach czy na przerwaniach. Myślę, że zbuduję układ uniwersalny i za pomocą zworek będę ustawiał czy impulsy trafiają do licznika czy na wejście INTx. Obydwie metody są równie dokładne. Różnica...
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
Jest taki układ 40110. Ma on w sobie licznik, zliczanie w dół, w górę, reset, zliczanie w tle i co najważniejsze od razu tłumaczy to na 7 segmentów. Znalazłem go a,b,c,d,e,f,g podłączasz do odpowiadających segmentów wyświetlacza LED ze wspólną katodą (minusem). Wyjście CARRY to wyjście przeniesienia - normalnie w stanie wysokim, kiedy licznik...
Tak mam, impuls wyjściowy to tak na prawdę 0,5s "1" i 0,5s "0". Mam gdzieś zakopane w piwnicy TTL 7457, wtedy dam 60 x 60 x12. To dostaniesz przez 6 godzin '0', i przez kolejne 6 godzin '1' - jak ma być '0' i '1' przez 12 godzin każde, to trzeba dzielić przez 60x60x24. Podział przez 60x60x24 można zrobić używając 17-bitowego licznika binarnego (albo...
Może nie do końca zrozumiałem Twoją ideę. Założenia: mierzony sygnał 49.9 Hz czyli okres =0.02004008s sygnał wzorcowy 1khz (okres 1ms) Jeżeli 1khz/1000 mamy 1Hz bramkujemy nim sygnał mierzony i mamy zliczonych 49 impulsów. Jeżeli chcesz dzielić 1khz/10000 i zliczać dalej (499 impulsów) to dostajesz 0.1Hz czyli bramkowanie 10s. Natomiast jeżeli chciałbyś...
Może w nowszych jest hallotron - musi mieć dodatkowy wzmacniacz. U mnie w nieco starszym takim siłowniku jest zwykły kontaktron - sprawdź - może ( jak takowy jest) jest uszkodzony/ sklejony
Rozwiązanie ok ale zamiast kulki zastosował bym bramkę podczerwieni (lub transoptor szczelinowy). Uzyskasz 4 impulsy na klatkę dalej podajesz sygnał na prosty licznik na 2 przerzutnikach JK (podział przez 4) uzyskując 1 impuls na klatkę. Dalej jeśli chcesz zliczać do przodu to zwykły przerobiony kalkulator lub licznik na ttl lub na procesorze. Jeśli...
Witam, potrzebuję na Arduino Uno zliczać impulsy PWM które są podawane na GPIO. Jednocześnie program potrzebuje obsługiwać termometry itd. Wykonałem to na przerwaniu wykrywającym zbocze narastające, natomiast powiedzmy że z pewnych przyczyn nie chcę używać tego rozwiązania. Czy arduino uno posiada może wbudowany licznik który działa niezależnie od programu?...
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube]https://www.youtube.com/watch?v... Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój wpis z innego...
Trzeba będzie jakoś odmierzyć tę minutę (albo zliczać błyski) - można odmierzać przerzutnikiem monostabilnym (powinien być retrygerowalny, pewnie połówka CD4528, czy CD4538 będzie w sam raz), albo układem zliczającym czas (jak CD4541), albo jakimś układem z ładowaniem kondensatora (drgania mają powodować jego rozładowanie) i wykrywaniem osiągnięcia...
Sposób jak podał Cezary nie jest zły. Trzeba jednak wygenerować impuls o odpowiedniej długości. Co zapewne będzie jakimś problemem. Zaproponowałem więc podłączenie fototranzystora do linii np. CTS. W językach typu VC, VB, VBnet, C# itp. zmiana stanu tej linii wywołuje zdarzenie. Wystarczy zliczać te zdarzenia.
OK. Sprawdź poprawność napięcia zasilacza niestabilizowanego na C1 w U5, powinno być ok. 9V -> napięcie to podawane jest na układ impulsatora jako zasilanie (zobacz też styki oprawki bezpiecznika F4). Napięcie to jest zasilającym układ silnika oraz samego impulsatora. Ten zasilacz również podaje napięcie na emiter tranzystora VT1 bloku U7. Cały ten...
AVE... Jakiego PICa konkretnie chcesz użyć? Zasada pomiaru jest dość prosta: najpierw ustawia się któryś z timerów, by odmierzał 40 sekund i po odmierzeniu wywołał przerwanie. Potem tworzy się pętlę, która w nieskończoność sprawdza stan wybranego przez Ciebie pinu. Gdy jest tam logiczna jedynka, to dodajesz 1 do zmiennej. Gdy timer skończy zliczać czas,...
Ale interesujące cię dane znajdziesz w dokumentacji do tego kodera. A tak w skrócie to sygnał ppm do RC wygląda tak: krótka "szpilka" o czasie poniżej 0,5 ms (tak konkretnie poniżej, np 0,1 ms) oznaczająca początek kodu, przerwa 0,5 ms, impuls od 0,5 do 1,5 ms dla kanału nr 1, długość impulsu oznacza połozenie serwa, znowu przerwa 0,5 ms, impuls o zmiennej...
Odpowiadając na powyższe: Układzik ma koniecznie liczyć od 4 do 7 i z powrotem od 7 do 4, już od włączenie zasilania, w moim przypadku generatorem zegara jest impulsator. Po dość mocnych przemyśleniach doszedłem do wnoisku że: Dam dwie dwu-wejściowe Nandy wykrywające stan 4-ty oraz 7-my na wyjściach z 74193, następnie te dwie bramki /NAND/ podłączam...
Co zrealizować? Programowe zliczanie impulsów? Ustawiasz timer tak, żeby generował przerwanie co 100 us, sprawdzasz stan portu, robisz xor z poprzednim stanem i testujesz, które bity są ustawione - ustawiony, znaczy zaszła zmiana stanu, czyli inkrementujesz odpowiednią zmienną.
Witam, W takim razie chyba coś masz namieszane. Sprawdź jeszcze raz wszystko. Ewentulanie w nowym projekcie dodaj tylko licznik i sprawdź działanie. A i reset musi restować ;) Pozdrawiam,
proszę bardzo
Przy pomiarach częstotliwości w zakresie mikrofalowym stosuje się dwie metody (oprócz dzielników częstotliwości): heterodynowa oraz metoda oscylatora pomocniczego (transferowego) patrz książka pt. "Częstotliwość i czas " Peter Kartaschoff WKŁ 1985.
Problem pojawia się, kiedy próbuję w obrębie funkcji wyzwalanej przerwaniem wykonać operację dodawania i wyciągnąć wynik. napisz w przerwaniu tak: [syntax=c]stykx=stykx+1;[/syntax] albo krócej: [syntax=c]stykx++;[/syntax] Drgania styków kontaktronu będą powodować chaotyczne naliczanie. Zrób debouncing programowo albo sprzętowo.
Taki prosty multiplekser można zrobić na dowolnych bramkach logicznych, wyjdą 2*3, na sygnał, więc np. 2x74xxx00, lub 4 jeśli zastosujesz bramki z wyjściem OC i zrobisz wired and.
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
Kierunek możesz wykryć używając przerzutnika JK (synchronicznego). Zanegowany kanał A do wejścia J, kanał A do wejścia K i kanał B na wejście zegarowe. Wyjście na bramkę AND z dowolnym sygnałem (A lub B) i już. To tak na szybko. Może zrób sobie symulację. A tak na marginesie. Masz enkoder z wyjściem symetrycznym i nie wiem czy sygnały wychodzące są...
Trzeba podać sygnał >5V i przez tranzystor sterować tym 3,3V. Albo: http://obrazki.elektroda.pl/3669771700_1... . Ale proszę mnie poprawić jeśli się mylę.
I teraz pierwsze pytanie: czy da się zliczać impulsy z zewnątrz używając Timer2? Wtedy bym podpiął do nóżki TOSC. The Oscillator is optimized for use with a 32.768 kHz watch crystal. Applying an external clock to the TOSC1 pin may result in incorrect Timer/Counter2 operation. Jak źle (lub dobrze) jest z tym w praktyce nie wiem. Tylko jeszcze zostaje...
Odpowiedź na pytanie: No to obydwa kontaktrony podepnij do pinów INTx, a później rób takie coś: 1)wyzeruj zmienną x i y odpowiedzialną za aktualny stan zliczonych impulsów z wejśc INT0 i INT1 (obydwa kontaktrony), wyzeruj timer0 2)załącz timer 0 aby odmierzał czas 10 sekund 3)poczekaj aż timer odmierzy czas, w międzyczasie są zliczane impulsy z wejść...
PAP? O PA0 Ci pewnie chodzi. Można od PA0 i od PE0. Ale oczywiście nie na raz. Po prostu zamiast PE0 zastosuj np. PA4. Albo dowolny inny z zakresu 4...15. A jeżeli nie możesz zmienić pinów (bo np. płytka jest już gotowa) to jako EXTI0 zastosuj PE0. A PA0 jako wejście ETR Timera jak już kolega wyżej wspomniał.
Zależy który. Na pewno odpada ten odpowiedzialny za dane, bo COM jest interfejsem szeregowym. I na pewno masa tych, których przejściówka nie obsłuży (te są przystosowane raczej do innego charakteru pracy niż odzwierciedlanie faktycznie portu COM). Po drugie wspomniałeś o odstępach czasu. Zakładając, że przejściówka będzie miała stałe opóźnienie, to...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
Masz 2 możliwości. - Zresetować licznik jako peryferium i ponownie go skonfigurować. Wtedy CNT przyjmuje wartość 0x0000, ale może zgubić przychodzący impuls. - Nic nie resetować, tylko wyznaczyć różnicę miedzy wskazaniami - wykonać odejmowanie stanu aktualnego od stanu poprzedniego i ewentualnie skorygować wartość o limit przepełnienia.
A po co tak ? Przyzwoite impulsy zaplonu wystepuja na PRZEWODZIE GASZACYM , zwieranym stacyjka do masy w kazdym zaplonie CDI. Możesz śmiało podłączyć tam bezpośrednio obrotomierz ...ok. 80V pp, zrób sobie dzielnik i komparator, by czysty prostokąt uzyskać.
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
Jedyny problem jaki tu widze to niska częstotliwość próbkowania układu a co za tym idzie będą problemy z rozróżnianiem kierunku kręcenia i mogą być gubione impulsy (to drugie nie jest krytyczne).
1. Nie używaj przypisań typu Rejestr=liczba. Używaj przesunięć bitowych i nazw bitów w rejestrach. 2. Ponadto co napisał (at)dondu - pamiętaj, że zliczając impulsy ze sporymi częstotliwościami musisz wziąć pod uwagę ilość instrukcji maszynowych, które procesor wykona od momentu zgłoszenia przerwania do zaprzestania zliczania impulsów/zapisania wyników.
Prototyp zrobiłem na pomiarze napięcia (ADC) na fotodiodzie - to chodziło, dopóki nie zacząłem testu na dworze.... Fotodioda łapała podczerwień z... no właśnie, skąd? Nie wiem. To oczywiste. Światło z otoczenia również zawiera podczerwień, więc pojawiają się zakłócenia. Po odłączeniu fotodiody i dotykaniu kabelkiem do + na wyświetlaczu także pokazywały...
to ja też coś od siebie dołożę spróbuj wszystko zapisać w postaci liczbowe tj nie baw się w przesunięcia bitów i takie tam tylko na sztywno w pisz co masz wpisać do rejestrów, wnioskuje ze używasz darmowego kompilatora spróbuj wyłączyć optymalizacje kodu, ewentualnie spróbuj dopisać w obsłudze przerwania czy to wejście faktycznie ma stan niski. Swego...
Coś mi się nie podoba część dotycząca PWM (bez dogłębnej analizy programu). Powodem jest zmiana wartości Timer2 w programie. Załączę poniżej program, którym próbowałem działanie PWM'ów na M8. (Komentarze dotyczą Timera1, a poniższy program utuchamia Timer2) Program działa w 2 pętlkach - jedna zwiększa wypełnienie i kiedu dojdzie do max druga petla zaczyna...
Poniższy zapis: ISR (INT0_vect) { } Oznacza, że deklarujesz funkcję/kod obsługi przerwania INT0 trybie blokującym (ISR_BLOCK). Oznacza to, że jeśli w trakcie wykonywania funkcji obsługującej przerwanie INT0 pojawi się inne przerwanie, np INT1 to nie zostanie ono obsłużone. Rozwiązaniem może być deklaracja ISR z atrybutem ISR_NOBLOCK....
I pomyśleć, że tyle dyskutujecie o dwóch liniach kodu w przerwaniu timera wywoływanym np. co 10 ms. http://mikrokontrolery.blogspot.com/2011... Obejrzyj ten przykład, a pod if() wstaw instrukcję licznik ++ - i masz całe rozwiązanie.
Czyli zgodnie doszliśmy do wniosku , że stan pinu wejściowego , należy testować =>1 dla każdego z jego stanów.Najlepiej gdy sygnał jest prostokątny(50/50). Piotrek
6000 * 360 = 2 160 000 czyli 460ns na impuls. więc co najwyżej 9 cykli zegara ATMEGI na impuls :(
Impulsy są generowane poprzez przycisk. To nie będzie działać dobrze. Przycisk mechaniczny przy naciśnięciu generuje wiele impulsów. Trzeba temu aktywnie przeciwdziałać. Poczytaj o debouncingu.
Dlaczego w przerwaniu RBIF ustawiasz licznik ? Zmien if (cnt == 400) na if (cnt >= 400) mozliwe ze ten warunek przy wielu przerwaniach "nie trafial" dokladnie w 400 ale przeskakiwal i zliczal do 64k
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
W Twoim układzie z transoptorem napięcie wyjściowe z opornika, czy to kolektorowego, czy to emiterowego raczej nie będzie miało parametrów TTL lub CMOS i dlatego bramki Szmita są tzw. układami pośredniczącymi między "światem" analogowym, a "światem" TTL/CMOS Nie znam parametrów bramek na pamięć, ale opisany układ można znaleźć w książkach o zastosowaniach...
Witam kolegę, popatrzyłęm na notę katalogową (sam też popatrz) i na mój gust to wyjście jest typu otwarty kolektor (tak przez analogię do ukłądów TTL) Więc problem w tym że owo wyjście należy jeszcze spolaryzować do plusa zasilania jakim opornikiem myslę że 1-2 k spokojnie starczy. Wówczas będziesz miał układ w pełni działający bo jak na razie to Twój...
Witam mam taki problem z przerwaniami int0 chciałem podłączyć transoptor szczelinowy pod wejście int0 atmegi16 i zliczać impulsy tylko jest taki problem ze jak zasłonię szczelinę transoptora to zamiast mi dodać 1 impuls to dodaje mi albo 2 albo 10 jak padnie w czym może być problem poniżej zamieszczam kod i schemat http://obrazki.elektroda.pl/3492000700_1...
masz tu foto
układ zliczać impuls zliczać impuls timer1 enkoder zliczać impuls
naprawa linuxa matryca lc420wun uncorrectable error
Bezpiecznik do sterownika solarnego Geco G-422 PO7 Silnik kosiarki Gardeline działa, ale nóż się nie obraca