Tu jest gotowy przykład na atiny13 ale w ASM [url=http://www.avrfreaks.net/index.php?... nie mam pojęcia czy działa ale zapewne tak ;)
Liczniki są osobnymi blokami uC, więc jeśli sygnał wejściowy jest poprawny, to impulsy powinny być zliczone poprawnie. Podany wyżej program to program użyty w moim mierniku częstotliwości okrojony z niepotrzebnych ci rzeczy, które mogłyby zaciemnić jego sens. Działa przy częstotliwości kilku MHz.
Impulsy pobieram przy liczniku z kabelka który wg "Sam naprawiam ..." pochodzi od czujnika drogi umieszczonego przy skrzyni. Do zliczania impulsów wykorzystałem timer0 (oczywiście znalazłem przykład), który liczył i podbijał mi zmienną. Zrobiłem 10 km i sprawdziłem wynik. Było 5150 więc podzieliłem aby zamienić na m i wyszło 5,15 Nic mi się nie zgadza...
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
Akurat ważniejszy jest mały spadek napięcia, żeby stan niski pozostawał niskim również za diodą. Zrobiłem szkic pokazujący o co chodzi w tym różniczkowaniu i ANDowaniu: http://obrazki.elektroda.pl/7732349900_1... Przy zwykłym różniczkowaniu widać, że brakuje szpilki wskazującej początek impulsu pierwszego kanału. Można ją odtworzyć...
Zauważ, że przy zliczaniu impulsów w cyklu pomiarowym np. 1s można zliczyć max 15000/60 = 250 impulsów z enkodera. Czas pomiędzy dwoma impulsami to min. 4ms, a więc przy kwarcu 1MHz timer odmierzy minimum 4000 taktów. Błąd pomiaru w każdym przypadku to średnio 1/2 impulsu - w przypadku 1) mamy przy maksymalnej prędkości błąd względny 0,2%, który rośnie...
Proponuję zamiast mierzyć czas 5 obrotów sprawdzać ilość impulsów co stały czas.
Jeśli dobrze rozumiem, otrzymujesz przerwanie co 1 sekundę i w jego obsłudze odczytujesz ile licznik zliczył impulsów? Nie ma się co dziwić że tak się dzieje licznik po prostu zliczy wartość całkowitą impulsów. Lepszym rozwiązaniem będzie pomiar czasu pomiędzy impulsami (okresu) i z niego przeliczenie częstotliwości.
No, tak dobrze to nie jest. AVR-y (a w nich timery) nie mogą poprawnie zliczać impulsów o częstotliwości większej niż połowa częstotliwości zegara zakladając na wejsciu wypełnienie przebiegu 50%. Niezbędne będzie zatem zastosowanie preskalera. Proponowałbym ATMEGA8 z kwarcem 16MHz i z prescalerem /4 zbudowanym np z cyfrówki 74F74. Mamy zatem poniżej...
Może: Licz: If Co_robic = 0 Then 'Odliczanie przerwy Incr Licz_przerwe If Licz_przerwe > 1000 then Licz_przerwe = 0 Co_robic = 1 End If Else Incr Licz_impulsy If Licz_impulsy > 4 Then 'Odliczanie okresu przebiegu (4 - okres = czas 4 przerwań Timera) Toggle PortD.4 Incr Licz_przerwe 'Odliczanie ilości impulsów (10/2 = 5 impuslów)...
Zamiast zliczać ilość impulsów w stałej jednostce czasu, mierz czas pomiędzy poszczególnymi impulsami.
Jak napisał mirekk36- do takich czujników w Bascomie nie ma gotowców. Trzeba je sobie napisać. Ale to dopiero jest ciekawe- a nie gotowce. Schemat wzmacniacza z linku- prawidłowy ale koncepcja układu- taka sobie. Na obrazku z linku jest pięknie- a wrzeczywistości jest tak: http://obrazki.elektroda.net/56_12643603... Pięć impulsów o częstotliwości...
Ten sposób też będzie powolny a do tego niedokładny. W sumie doszedłem do wniosku że programowe zliczanie impulsów nie będzie gorsze. Zliczanie 4 impulsów trwa 10us w symulacji programowej. Zauważ że w tym pierwszym rozwiązaniu mnoży się przez 28 a więc dokładność pomiaru jest do kitu. Przy 4000rpm układ zlicza tylko 160 impulsów. Możesz dać Prescale...
To akurat to jest oryginalny program który publikował ATV a który chciałem sobie zmodyfikować ale nie działa ( ten oryginalny ), niestety pomiar czasu impulsów w RC w Bascomie nie jest mi znany a zmiany które chce wprowadzić potrafię napisać wiec myślałem ze będzie dobrze.
Czy to poprawny zapis do uśredienia wyniku z 60 pomiarów kodu co wyżej podawałem (*) pytam z czystej ciekawości czy to poprawna forma To nie jest 'uśrednienie',- to jest zbyteczne rozszerzenie rachunku wydajności, które jest równoznaczne z pomiarem impulsów w czasie 60 sec. Inaczej, zamiast odczytywać zawartość Countera1 po zliczeniu 250 4-milisekundowych...
Witam, Piszę program do atmega8 i mam problem z ustawieniem Timer1. Dopiero zaczynam programować więc proszę o wyrozumiałość. Chciałbym ustawić tak timer1 aby zaczął liczyć czas od pojawienia się na portd.3 pierwszego impulsu do drugiego impulsu, zapisał wartość do zmiennej, wyzerował się i zaczął zliczać czas od drugiego do trzeciego impulsu zapisał...
Używam jednego ADC do pomiaru napięcia stabilizatora dla kontroli jego sprawności bo miałem przypadek kiedy napięcie spadało wraz ze zwrostem temp. stab. .Miałem wolne piny to dlaczego nie wykorzystać . Ustawiłem pady tak aby można było przerobić na DS18B20 na dwa lub trzy przewody. A faktycznie. No ale to raczej dla zabawy bo ten stabilizator nie...
Moim zdaniem koncepcja powinna być taka: 1. Obsługa przetwornika analog-cyfra. Na początek dobrze żebyś umiał dobrze zmierzyć liczbę impulsów. Nie wiem dokładnie jaka jest specyfika Twojego sygnału, jaką amplitudę mają owe szumy, skąd się biorą i czy nie warto by ich po prostu potraktować filtrem dolnoprzepustowym, a jeśli mają odpowiednio niską amplitudę...
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...
Ja tylko tak luźno dodam, że na pomiar impulsów z trzypinowego wiatraczka przy sterowaniu masą przez PWM bym nie liczył.
Proszę. Nie testowane bo ja tu mam mnóstwo roboty ;) Normalnie użyłbym raczej wejścia ICP1, ale takie cos to możesz mierzyć chyba z palcem w uchu :D Powinien pokazać czasy stanu wysokiego i niskiego ;) [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000 $hwstack=64 $swstack=32 $framesize=128 Config Lcd = 20x4 Config Lcdpin = Pin , Db4 = Portb.2...
Witam. Można by się obejść bez zewnętrznego generatora - po prostu sterować linię T0 (lub T1) z pętli programowej, która by liczyła czas 1ms. Pogorszyła by się dokładność pomiaru, ale przy tak wolnych przebiegach i tak byłoby nieźle. Pozdrawiam.
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
'Działa od 30rpm do 300000rpm $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Timer1 = Timer , Prescale = 64 Config Int0 = Rising Dim Flaga As Byte Dim Text As String * 10 Dim Wynik As Single Dim Zmienna As...
Właśnie czas pomiedzy impulsami da ci wiarogodny wynik. Chyba, że czas pomiaru będzie na tyle długi, że da ci zadowalającą dokladnosc. Np. na wolnych obrotach w samochodzie(ok 900 obr/min) masz 15 obr/sek (co ok 60ms) natomiast przy 10000obr/min masz impuls co 6ms. Przy podstawie pomiaru 50us (liczenie czasu pomiedzy impulsami) masz dobrą dokładność...
Pomiar czasu pomiędzy impulsami radzę stosować dla małych prędkości obrotowych. Dla większych prędkości , lub odczytywaniu impulsów z enkodera ( np . 1000 impulsów na obrót ) czasy pomiędzy impulsami mają małą wartość , należy wtedy zliczać impulsy w czasie . Daje to większą dokładność. Np dla 1000 obr/min 100 impulsach na obrót i czasie pomiaru 1 sek...
Nawet jeśli nie programuje się w Bascom to warto wiedzieć że ma taką WIKI. Wszystko na jednej stronie bez przewijania Helpa. Tam opisana każda instrukcja z właściwym syntaxem i przykładami. Otwiera się ze skrótu szybciej niż Acrobat Rider hahahaha :D Raz trzeba zobaczyć http://wiki.mcselec.com/bavr/BASCOM-AVR_... ..i nacisnąć PULSEIN - tam są odpowiedzi....
Myślałem nad takim rozwiązaniem tego: Pojawia się impuls na wejściu z fotorezystora i włącza się timer. W ciągu np. 3 sekund impulsy są zliczane (poprzez zwiększanie wartości zmiennej wewnątrz pętli sprawdzającej stan portu), po czym timer zostaje zatrzymany. Na podstawie ilości otrzymanych impulsów w ciągu 3 sekund oraz ilości otworów na tarczy można...
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Nie ma większego znaczenia w jakim środowisku programujesz (Basic albo C). Istotny jest koncept projektu i sposób rachunkowy, reszta to tylko inna forma zapisu programu. Wybrałeś za narzędzia: Timer1 i jeden z interruptów zewnętrznych. Zatem jest tez bez znaczenia...
https://obrazki.elektroda.pl/7406837400_... Chyba siła wyższa musi w tym maczać palce, bo przymierzałem się od kilku lat(!) z publikacją tego projektu i ciągle albo brak czasu albo skleroza... a tu trafił się konkurs no to jak nie skorzystać :) Urządzenie o, którym mowa w temacie to bardzo prosty i niezwykle przydatny (przynajmniej...
Nie żebym się sz.Kol. Kamyczka czepiał,ale przeglądnąłem wszytkie posty i znalzłem taką wypowiedź Cytuję: "Odradzam budowe VLf ów wszelkiej maści , bo poza kłopotliwym strojeniem i kapryśnym działaniem za mineralnych stanowiskach budowa ich wymaga sporego doświadczenia i bazy pomiarowej" Koniec cytatu. Pozatym na minerałach ferromagnetycznych odpadach...
Po długim analizowaniu problemu narodziło mi się coś takiego: 'pętla główna Dim I As Integer Dim Impulsy As Long Dim Sek As Integer Tccr1a = &H00 'ustawianie trybu pracy timera1 Tccr1b = &H0C Ocr1ah = &H7A 'załadowanie liczby 31250 do licznika Ocr1al = &H12 'przykładowa liczba do odmierzania (1s) Tcnt1h = &H00 ' zerowania rejestrów do zliczania...
Dzięki xury za linka z tematem. Bardzo mi pomógł, odliczam czas jak chciałem, co prawda pojawia się malutki błąd czasu wynikający z tego ze nie ma pełnych 31 impulsów tylko 31,25 ale na tak mała niedokładność mogę sobie pozwolić
A czy wiesz o tym ,że liczniki (nie wszystkie) mogą wprost liczyć impulsy pochodzące z zewnątrz? Po co używać Inty i co każdy impuls przerywać główny program, skoro masz do tego piękne narzędzie?
Trzeba tu zaznaczyć, że metoda zliczania impulsów w czasie nie jest tożsama, pod względem efektów, z pomiarem czasu między kolejnymi impulsami. Pierwsza metoda nadaje się do wyższych częstotliwości, a druga do niższych. Problem tkwi w rozdzielczości pomiaru i szybkości uzyskania wyniku. Licznik AVR'a reaguje na impulsy o częstotliwości maksymalnej niższej...
Witam Traktując poważnie ten cały komputer pokładowy to chyba trzeba wysiąść z bascom'a, owszem tam można sobie testować pewne procedury ale poważny program,jakim pewnie docelowo ma być ten, w bascomie zajmie >>>8kb (a wybrany przez Was proc 90s8515 to właśnie 8kb). Wiem to z doświadczenia. Napisałem tylko 1 procedure do pomiaru prędkości chwilowej...
Nie tędy droga, Ty musisz zrobić coś dokładnie odwrotnego - nie wygenerować sygnał, ale go zmierzyć. Rozwiązania są 2, ale jeśli programujesz w bascomie i nie masz ochoty na operacje na rejestrach w procesora to kurczą się do jednego. Mianowicie: 0. ustawiasz timer na zliczanie impulsów i zmianę wartości jakiejś zmiennej - parametry dobierz w zależności...
Witam Potrzebuje mierzyc czas pojedynczych impulsow dodatnich o czasie trwania od 0 do okolo 5 s podawanych na jedna z koncowek ATmega8 z kwarcem 4MHz. Moge zastosowac tylko Timer2. Jak wlaczyc ten timer po pojawieniu sie tego impulsu i jak go potem wylaczyc po jego zakonczeniu. No i jakich dokonac obliczen, aby czas trwania tego impulsu wyswietlic...
Sugerujesz, żeby np. mierzyć impulsy przez 100ms i później pomnożyć to razy 600 żeby otrzymać wynik w obr/min? Dokładnie to sugerujemy. Ale z tym 6us to się BARDZO pomyliłeś i to zmienia postać rzeczy, bo przy 2 impulsach na obrót przez 100ms przy ok 11krpm impulsów będziesz miał np 36. 36x300 = 10800rpm z dokładnością +-300rpm... przy 10 pomiarach...
Natomiast do rozładowania użyłem żarówki 12V 200W. Gdyby PWM ustawić na 1023 to wtedy prąd wyniósłby 200W : 12V = 16,6A. Moc tracona na Mosfecie wynosiła wtedy właśnie około 200W w szczycie. A to dlaczego? Reasumując moje "wypociny" :D ACS będzie wskazywał poprawnie jeżeli prąd przez niego przepuszczany nie będzie wyższy niż prąd maksymalny dla wersji...
Używasz INT0 i INT1 do zliczania impulsów na linii A impulsatorów, ustawiasz generację przerwań na opadające zbocze. W przerwaniu sprawdzasz linię B danego impulsatora, jeśli B jest w stanie wysokim, to masz impuls "w lewo", jeśli B jest w stanie niskim, to masz impuls "w prawo". Pozostaje jeszcze eliminacja drgań styków... ;) Timer1 wykorzystujesz...
Oprogramowanie będzie najprawdopodobniej niewielkiej objętości, więc spokojnie możesz użyć ATTINY 13, ewentualnie ATTINY 25 albo 26. Ten najprostszy (i najtańszy) 13-ka spokojnie powinien wystarczyć, cena do 4PLN. Wewnętrzny generator 9,6MHz, w fusach możesz wyłączyć podział przez 8, to powinno spokojnie wystarczyć do wygenerowania odpowiedniego sygnału....
Tak myślałem, otałem sie o produkcje poligraficzną na maszynach offsetowych:D Główny problem to najniższa prękosc liczenia. Poza tym dość prosto, zewnętrzny kwarc jako podstawa czasu, wenętrzny ma za duże odchyłki. Timer 16-bitowy jako timer zliczający interwał czasu w którym odbywa się pomiar, drugi timer jako licznik impulsów z fototranzystora. Reszta...
Napisz program w Bascom dla Atmega8, który będzie liczył pojedyncze impulsy w ciągu 24 godzin z zapamiętaniem najkrótszego odstępu między tymi impulsami, wynik wyświetlał na wyświetlaczu 2x16 opartym na HD44780. Oczywiście, chętnie pomogę Ci napisać ten program. Poniżej znajduje się kod, który powinien zrealizować to, co opisujesz. Wprowadziłem kilka...
Witam. Mam silnik prądu stałego (24V, 50W), który ma pracować z trzema prędkościami obrotowymi: 500, 1200, 2000 obr/min. No silniku zamontowany jest enkoder, który daje 60 impulsów na obrót. Enkoder podpięty jest do uC attiny2313. Na razie mam zrobiony pomiar prędkości obrotowej co 100ms i regulację obrotów silnika za pomocą PWM-a 10bit. I w tym miejscu...
jest to dieselek więc zakłócenia raczej mniejsze.. jak to zrobić? jakiś ogólny szkic programu w bascomie? bo licznik chciałem zrobić na timerze jako counter z pomiarem co sekundę, ale skoro nie zrobiłem jeszcze nic poza programem to koncepcję mogę zmienić. pfff. to jak mam to podłączyć w końcu?
http://obrazki.elektroda.pl/7329866000_1... Miernik częstotliwości o całkiem niezłych parametrach, bo potrafiący mierzyć częstotliwości od 1Hz do 10MHz (9,999,999Hz) z rozdzielczością 1Hz w całym zakresie. Idealny do generatorów funkcyjnych lub jako zwykły miernik. Do tego tani i prosty w wykonaniu, z ogólnodostępnych części, a małe wymiary...
Dobry będzie taki program? Można coś jeszcze poprawić? Return Podaj jaka dokladnosc pomiaru jest wymagana i do czego to ma sluzyc. Najprostszy, najtanszy obrotomierz/ tachometr, najlatwiej jest wykonac uzywajac tylko ATtiny 2213, jeden wyswietlacz LCD (8 lub 16 cyfr, jedna lub dwie linie dla dodatkowych informacji, opcji) Impulsy "odczytasz" z elementu...
Potrzebuję czterech PWM i dwóch wejść odmierzających długość impulsu o zakresie od 1 do 2 ms. Pytanie czy atmega 8 się wyrobi czy muszę brać 16 . I jak rozumiem z wszystkich postów muszę pwm zrobić programowo bo potrzebuję pozostałych timerów do pomiaru impulsów. I pytanie o oscylator wewnętrzny czy mogę go użyć czy lepiej kwarc bo zależy mi na wielkości...
hmm ultradźwiękowych nie da się poznaczyć dodatnich i ujemnych połówek fali ultradźwiękowych troszeczke nie rozumiem po co okreslac to czy to jest dodatnia czy ujemna mozna to zrobic przez rozroznienie czy to jest narastajaca zbocze czy opadajace czyli tak jakbysmy brali wszystko co sie znajduje nad osia OX i sprawdzali zbocza jesli wybierzemy naraztajace...
(at)asembler - no może trochę demonizowałem co do przerwań zewnętrznych. Wszystko zależy od tego jak zaprogramuje się obsługę tych przerwań. W każdym razie i tak myślę, że w tym konkretnym przypadku (tak czułem, że coś z samochodem jednak będzie :) ) lepiej będzie wykorzystać jeden timer (do wyznaczania stałych odcinków czasowych) i odpytywać w tym...
Witam Ogólnie rzecz biorąc mierzysz czas fali odbitej Najpierw wysyłasz impuls załączasz timer i czekasz na powrót echa fali odbitej Pozdrawiam PIOTR
Jeżeli częstotliwość impulsów jest stała to tak. Jeżeli nie to trzeba też mierzyć okres przebiegu. Dodatkowo jak chcesz mierzyć przesunięcia i dodatnie i ujemne to trzeba trochę zmodyfikować pomiar. Jeżeli na pewno będzie ono wewnątrz zakresu -90...+90*, to wystarczy jedno z przerwań INT zamienić z Rising na Falling. Wtedy sposobu pomiaru nie trzeba...
Witam Troszkę przedobrzyłeś s tym licznikiem 16 bitowym, starczy połowa 8 bitowego, wróćmy do obliczeń, autor pisze o 4 impulsach na obrót, Ty o 2 i to wydaje mi się bliższe prawdy. Maksymalne obroty 7000, na sekundę daje nam to koło 117 obrotów, chcesz mierzyć 0,5 sekundy i i dwa impulsy na obrót czyli 117 impulsów przy maksymalnej prędkości obrotowej....
Postawiłem sobie zadanie opracowania licznika prędkości. Powiedzmy, że do roweru. Konstrukcję i jej sens odłóżmy na razie na bok :) Zadanie dla procesora niby banalnie proste - liczyć prędkość przez badanie impulsu na pinie. I teraz zaczynają się schody. Mogę to zrobić na kilka sposobów (te które znam): 1) mierzenie czasu między impulsami 2) mierzenie...
Może ten temat troche pomoże jest na innym kwarcu ale zasada ogólnie ta sama http://www.portalnaukowy.republika.pl/ob... Takie rozwiązanie w Bascomie jest najprostsze, tzn pomiar czasu poprzez komendę Wait 1(odczekanie 1 sekundy), odliczenie 1 sekundy podczas, której Timer1 jako licznik zlicza ilość impulsów. Już tak robiłem, ale domyślnie...
Dzieki za ten program ale niestety za slaby jestem jeszcze zeby go od razu zrozumiec :( Wiem ze bascom to niezbyt dobry jezyk ale jest dla mnie w miare zrozumialy i dobrze by bylo jednak gdybym ten licznik w nim pisał. Potrzebuje zeby mi ktos prosciej wytlumaczyl na czym ten pomiar dokladnie ma polegac? Narazie zrozumialem ze na pomiarze liczby impulsow...
Ten moduł daje na wyjściu impuls o szerokości równej czasowi od wysłania impulsu do odebrania echa. W efekcie trzeba zaprząc timer, ICR i potem czas przeliczyć na odległość wiedząc jaka jest prędkość rozchodzenia się dźwięku w ośrodku.
Witam Z tego co wyczytałem w postach to jest mozliwy pomiar częstotliwości dla impulsów prostokątnych. Co zrobić gdy ja mam przebieg sinusoidalny i to w dodatku nieprzemienny (posiada składowa stałą i nie przechodzi przez zero). Jak zmierzyć cześtotliwość takiego sinusa?? Pozdrawiam i dzięki za zainteresowanie moim postem
Nie znam się na wtryskach ale jeśli chcesz mierzyć ich charakterystykę to szybkość zjawisk tam zachodzących raczej wyklucza ATMegę. Jeśli chodzi jedynie o zliczanie impulsów z wału silnika pompy CR to nie powinno byc problemu, natomiast co do pomiaru ciśnienia za wtryskiem to ADC w ATMega może być za wolne. potrzebowałbyś szybkości, przy np max 4000...
Nie jestem za biegły w timerach i się ciut pogubiłem. Proszę zatem o podpowiedzi. Próbuję ustalić ile czasu będzie trwał impuls podawany na INT procesora a jednocześnie zmierzyć czas od początku tego impulsu do początku następnego. Jednym uP podaję impulsy na drugi uP. Do Portc.7 = 0 'stan wysoki Waitms 1 Portc.7 = 1 'stan niski Wait 5 Loop Drugim uP...
emarcus super wykład, dziękuję! Starałem się wytłumaczyć ale faktycznie powinienem napisać - dwa niesymetryczne impulsy masowe w okresie 103ms (jednak wciąż nie jestem pewien czy precyzyjnie). Urządzenie już zrobione, działa. Ale napotkałem problem, o którym wspomniałeś. Mianowicie zawartość Counter1 w momencie rozpoczęcia cyklu jest przypadkowa. Nie...
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
Chciałem, sie poradzić w kwestii sprawdzania pomiaru położenia. Zrobiłem sobie piłę do cięcia drewna przesuwaną za pomocą śruby z gwintem trapezowym długość skoku to 2,5m. Aby uniknąć uciążliwego jej pozycjonowania i mierzenia miarką. Pomyślałem ze można by zliczać obroty takiej śruby i mieć cyfrowe nastawianie. Powiedzmy, że jeden obrót dawałby 10...
Witam. Buduję układ sterownika tempomatu do samochodu. Wykonałem już wszystko menu z wieloma funkcjami dodatkowymi poza tempomatem (mini komputer pokładowy), zbudowałem układ wykonawczy wraz z zaprogramowaniem sterowania przepustnicą elektroniczną lecz chyba zacząłem od złej strony i utknąłem na pomiarze prędkości z czujnika prędkości samochodu. W aucie...
Cały problem w tym, iż przy ośmiu kanałach i zakresie obrotów (impulsów) od 100 do 15000 /min konieczny jest pomiar dwóch parametrów : 1) ilości obrotów /min z dokładnością do 25 obrotów / min 2) różnica prędkości obrotowej dla poszczególnych kanałów z dokładnością do 1 impulsu/min nie mam pojęcia jak to zorganizować na jednym atmelu. :cry:
Wielkie dzięki za odpowiedzi , rozwialiście mój problem całkowicie Więc teraz zrobie tak że timer1 będzie zliczał impulsy timer2 będzie korzystał z kwarcu zegarkowego, a timer0 będzie skonfigurowany przez funkcje Config Servos. Tadam A z moimi liczbami chodziło mi o to że w kodzie jeżeli timer zmierzył więcej niż 256 impulsów to inkrementowałem zmienną...
Nie dokonuj pomiaru ilości impulsów na 1 sek ! To błędne podejście . Niby dlaczego ,mógłbyś rozwinąć tę myśl? Przecież co sekundę mam uaktualnianą zmienną z prędkością, po co szybciej jeżeli w czasie jazdy nie patrzymy cały czas na wyświetlacz/wskazówkę. Tylko co jakiś czas ale także krótko. Chodzi mi o to aby wynik nie skakał po przecinku jak "oszalały...
Witam. Próbuję napisać program odpowiedzialny za pomiar odcinków czasowych pomiędzy impulsami sygnału S1 i S2 (zgodnie z załącznikiem). Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1. 'program do pomiaru okresu sygnałów podpiętych do PD.2(INT0)...
Witam Zawsze staram się sam rozwiązywać problemy jednak tu poległem. Chodzi mi o pomiar czasu między impulsami. W jaki sposób poradzić sobie z Timerami? Który Timer można użyć do tego i z których wejść mogą być wyzwalane? Z góry dziękuję za pomoc.
Zrobiłem jeszcze raz pomiar i wyszło tak jak napisałem w 1 poście impuls 0,4us = 400ns przerwa 3,3us = 3300ns Czy AVR i ten program napisany powyżej w Bascomie wyrobi w 400ns żeby odczytać zawartość pinuD i zapisac do tablicy dane? Bo coś mi to nie wychodzi? Ten uC ma na pewno możliwości, aby obsłużyć te przerwania (zakładam ok. 33kHz). 270kHz W assemblerze...
Nie chciał bym za Ciebie pisać tego programu, bo jest to naprawdę proste zadanie i dlatego spróbuj sam napisać go jeszcze raz od początku wg np. takiego algorytmu: Ustaw timer powiedzmy na 10khz aby każde przerwanie wykonywało się co 100 mikrosekund. Możesz też gęściej od tego zależy dokładność - tu 100us czyli 0,1ms Zdefiniuj sobie zmienną licznikową...
Właśnie mam już cały program gotowy w bascomie , nie umiem w tej chwili na tyle dobrze C żeby napisać obsługę PCF, dwóch DS18B20 plus MPX4115. Także chodzi właśnie mi tylko o rozwiązanie pomiaru ciśnienia co 5-10 minut. Ok doszedłem wkońcu jak to zrobić . [syntax=basic4gl] Config Pinb.1 = Input 'usatwiamy Portb.1 jako wejscie Set Portb.1 'ustawiamy...
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
Witam. Mam vectrę 1,6 i zasilam ją gazem. kazdy z wtrysków jest spięty z emulatorem. W czasie pracy na LPG wtryskiwacze są wyłączane przez komputer gazowy i w to miejsce podkładany jest rezystor kloczowany przez emulator wtryskiwaczy. Emulator potrzebny jest aby oszukać komputr samochodu, żeby nie zapalała się kontrolka komputera samochodowego. Do pomiaru...
Tak na chłopski rozum pierwsze co przychodzi na myśl to stały pomiar częstotliwości wejściowej i na tej podstawie wytworzenie nowych impulsów o wyższej częstotliwości przeliczanych w czasie rzeczywistym. Oczywiście w takim układzie impulsy wyjściowe były by z lekkim opóźnieniem (co najmniej 2 imp. na wejściu), bo potrzebny jest przecież czas na zmierzenie...
Witam. Sekwencja to kilkanaście sekund, odtwarzana w kilkuminutowej pętli. Proponowane wykorzystanie timera daje jedynie odmierzanie owych 1ms impulsów dla liczników i zapewni jedynie większą dokładność pomiaru niż waitms. Z tym nie ma problemu. Komenda ta zapewnia mi to czego potrzebuję i z tym nie mam problemu. Wykorzystanie tablicy to pomysł wart...
Sygnał czasu wtrysku można wziąść bezpośrednio z wtryskiwacza, sterowanie zapewne będzie masą więc mikrokontroler musi mierzyć czas trwania zera na wtryskiwaczu. Sygnał z czujnika prędkości to impulsy prostokątne o amplitudzie 5V a stałą takiego czujnika wyraża się w impulsach na metr. Można prosto zmierzyć ile impulsów przypada na metr drogi, podłączamy...
Witam, przerobiłem nieco program kol. Teedd, pod swój mikrokontroler i kwarc, niby działa, ale nie mam regulacji częstotliwości, reguluje mi tylko wypełnienie, kończą mi się pomysły.. $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize = 40 'default...
Przydał by się jakiś przykład ale pokombinuje . To trochę komplikuje sprawę bo timer1 jest już zajęty ale zobaczymy czy działa lepiej. Docelowo muszę dokonywać pomiaru 2 sygnałów ( sygnałów serw rc). Tylko jeśli ustawię: Config Timer1 = Counter , Edge = Rising , Capture Edge = Rising i po pojawieniu się zbocza zmienię na: Config Timer1 = Counter , Edge...
Czy podłączając wyświetlacze LED bez rezystorów ograniczających prąd nie przekraczasz dopuszczalnych parametrów mikrokontrolera? Tak całkiem możliwe, że ten prąd przekracza 20mA - nie mierzyłem - ale urządzenie jak do tej pory hula bez problemu - de facto czas zatrzymania na jednej cyfrze to 500uS więc nie dużo. Co do oprogramowania, to źródła są w...
Witam, mam następujące zadanie: czujnik z wyjściem analogowym 4-20mA, enkoder taktujący pomiar z czujnika, wysłanie pomiaru przez RS-232 do PC. Enkoder pracuje w osi koła i generuje impuls co 25mm. Impuls wyzwala konwersję ADC z czujnika, wynik zostaje wysłany do PC. Problem w tym że nie mam pojęcia jak to zrobić. Mam do wyboru ATmega16 lub 128 i C...
W skrócie do zadań programu należało by: 1. Wyświetlanie komunikatów na wyświetlaczu LCD 2x8 (około 7 zakładek z informacjami, przełączanych jednym przyciskiem) w tym sterowanie podświetleniem przez BC557B. *1 powitanie *2 pierwszy pomiar temperatury (DS18B20 po 1wire) + alarm przy pewnej temp. niezależnie która zakładka jest włączona. *3 drugi pomiar...
Czy ATMEGA8 i jej 8kB wystarczy mi do obsługi wyświetlacza LCD z NOKII 3310 i wyświetleniu paru informacji ?? Oglądam i czytam informacje na temat obsługi wyświetlacza z Noki 3310 w bascomie i nie znajduje niczego co było by dla mnie czytelne. Dlaczego dla języka C jest mnóstwo różnego rodzaju kursów do obsługi tego wyświetlacza a dla bascoma jest tak...
Nie wiem czy kod w Bascom na coś Ci się przyda ale właśnie na takiej zasadzie jak w tym programie zrobiony mam pomiar prędkości wiatru w moim pozycjonerze. Troszkę inaczej wykorzystuję tu timery niż założyłeś ale... Zostawiłem Ci tylko fragment odpowiedzialny za liczenie impulsów i dodałem obsługę wyświetlacza. Program jest na tyle prosty, że z interpretacją...
Przejrzałem program i kilka rzeczy od razu sie rzuca w oczy 1. brak procedur obsługi przerwań od przepełnienia Timer0 i timer1 Po skonfigurowaniu powinneś określić do jakiej procedury program ma wskoczyć po odliczeniu przez timer np 10ms Powinno być zaraz po konfiguracji timera On Timer0 etykietka A na końcu programu etykietka: ... instrukcjie ........
Nadal nie wiem co zrobić jak prędkość zadana jest mniejsza od prędkości zmierzonej. Uchyb jest ujemny czyli cały człon P też wyjdzie ujemny (człony I i D na razie pomijam). Jak to przełożyć na sygnał PWM? Zmniejszyć do zera aż prędkość silnika spadnie poniżej prędkości zadanej czy może zmniejszyć do jakiejś wartości minimalnej? W docelowym układzie...
Hmm, a jakbyś obroty mierzył za pomocą timera w trybie licznika? Wtedy impulsy są zliczane niezależnie od programu głównego, a dajesz przerwanie od drugiego timera co większy odcinek czasu i w nim wykonujesz transmisję 1w oraz przeliczanie obrotów. oczywiście przeszukiwanie układów wystarczy raz na początku a potem coś na kształt: Przerwanie_co_100ms:...
...Obroty kontroluje przez czujniki na silnikach zliczam je po prostu i kontroluje z wzorcem co 250ms. Wzorzec sterownik wylicza sobie sam dokonując takiego pomiarowego przejazdu po zaprogramowaniu kata otwierania stron... Kurcze nie bardzo rozumiem jak ty to zrealizowałeś ale jeśli to porównywanie impulsów w jednostce czasu to jest duże ryzyko, że...
cały kod aktualnie wygląda tak. Docelowo w pętli głównej będą inne rzeczy jeszcze. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 128 $swstack = 128 $framesize = 128 Config Portc.0 = Output Config Portc.1 = Output Config Pind.0 = Input Config Pind.6 = Input Config Pind.5 = Input Config Pind.7 = Output Config Timer0 = Timer ,...
Tytuł artykułu: Ultradźwiękowy miernik odległości, wzrostu i poziomu. Zestaw 254-K z Nowego Elektronika październik / listopad 2008 Witam. Proszę o pomoc w napisaniu programu do ultradźwiękowego miernika odległości. Chodzi mi dokładniej o fragment dotyczący wysyłania paczki impulsów, oraz pomiaru czasu po jakim wrócą do odbironika. Przeliczanie na odległość,...
Ładować to on się będzie znacznie dłużej, zapomniałeś, że napięcie na kondensatorze narasta, a prąd maleje. W efekcie impuls trwa krótko, potem prąd jest co raz mniejszy. Diody Schottkiego na 1-4A w SMD bez problemu można dostać. A procesorowi nic się nie stanie - od lat mamy układy BOD, czuwające nad startem procesora. BTW, przykładowy 0,22F z TME...
Dzięki wielkie za poprawienie mnie, dużo mi to wyjaśniło, nie widziałem jak mogłbym to zrobić bardziej zwięźle, ale teraz już widzę. Linijki kodu określające wyświetlacz mogę ale nie muszę wyrzucać? I jeszcze jedno, zmiany na wyjściu mogą być najszybciej co sekundę? Jeżeli tak to chcąc, aby reakcja na zmiany częstotliwości była szybsza to muszę zmienić...
Witam Od pół roku montuję i modyfikuję wielozadaniowy układ do samochodu osobowego, oparty o Atmega8 (program Bascom). Funkcje: -pomiar temperatury i ciśnienia oleju -pomiar składu mieszanki -pomiar temperatury cieczy chłodzącej -odczyt zerowego położenia przepustnicy -pomiar prędkości obrotowej silnika (pomiar czasu między impulsami zapłonowymi) -regulacja...
Witam Co do schematu to myślę, że jednak układ nie będzie działał według Twoich założeń, gdyż pomiar prędkości wiatraków musiałbyś zrealizować najlepiej na jakimś liczniku w Atmedze, albo generując jakieś przerwanie, więc podłączenie impulsów z hallotronu z wiatraka pod dowolny pin Atmegi chyba nie jest najlepszym rozwiązaniem. W związku z tym, że tak...
W kodzie w/w nie taki parametr pomiaru - sprostowanie Rzeczywiście podany wcześniej listing do Bascoma jako miernik częstotliwości działa bo sprawdziłem przetestowałem na Atmedze 16 ale jest pewien błąd podawany wynik jest w impulsach na 1 min, a nie na 1 sek - wiec ten miernik rewelacyjnie nadaje się do mierzenia prędkości obrotowej wentylatorów komputerowych...
zobacz sobie temat: http://www.elektroda.pl/rtvforum/topic81... program będzie bardzo podobnie wyglądał. Chodzi mi o Timery. Dodano po 2 ale czy te diody mają się świecić cały czas to znaczy, że jeśli będzie więcej impulsów niż 200, to mają się świecić wszystkie 3 diody czy tylko 3 dioda?? Tak na szybko napisałem( nie testowałem ale powinno działać):...
Witam. Przeszukałem dokładnie internet i nie znalazłem podobnego przykładu stąd zapytanie. Czy może ktoś podpowiedziec jak napisać obliczenia na zmiennych ? Mam zadanie napisać listing i zaprogramować procka , który będzie mierzył ile impulsów z timer1 mieści się w przerwaniu INT1 , tzn. kiedy INT1 =1 wtedy ile w tym czasie impulsów zliczy Timer1. Licznik...
Myślę o zrobieniu regulatora modelarskiego do modelu łodzi. Łódka jest napędzana dwoma silnikami. Sterowanie kierunkiem ma się odbywać przez zmianę prędkości jednego z silników. Do sterowania ma zostać wykorzystana standardowa aparaura RC . I tutaj powstaje problem. Mamy jeden drążek przód tył i jeden prawo lewo. I dochodzimy do sedna problemu. Drążek...
licznik impulsów bascom impulsów licznik bascom bascom zliczanie impulsów
uchwyty drzwiczek wymiana kostka stacyjki dekoder cyfrowy telewizji kablowej
obrotomierz skacze wskazówka amica pa4560a420
Viessmann Vitodens 222 WS2 2003 – instrukcja serwisowa, kodowanie, diagnostyka Sharp LC22CFF4041E, Vestel 17MB95-S – typowe usterki, firmware, naprawa mainboardu