chce to liczyc przy pomocy mikrokontrolera AVR (AT90S2313) Strona "domowa" Bascom'a: aplikacja AN115 ;-)
Trzeba skracać czas który Timer ma odmierzać. W tym trybie zrobisz to najłatwiej w przerwaniu. Zaraz pod "Obrot:" użyj jednej z komend Load albo Timer= Po prostu teraz Timer liczy od 0 do 255. Jak coś do niego wpiszesz to będzie liczył, na przykład, od 128 do 255 czyli krócej. Dodaj sobie potencjometr do układu i będziesz mógł sterować prędkością w...
Kolega Mad Jaro mierzy czas pomiedzy INT-em i przelicza na obroty. zablokowanie INT spowoduje pływanie obrotów( INT nie liczy impulsow). Kolega xury ma rację odnośnie jednokrotnego użycia szukania czujników. A poza tym zsynchronizuj odczyt 1wire z przerwaniem INT tzn. komunikację z 1wire podziel na max -5 bajtowe odcinki i wykonuj je po przerwaniu INT....
Cześć. Ja myślę tak : Proponuje czujnik Halla i dokonywać pomiaru między zmianami stanu. Dla uśrednienia powiedzmy zliczać 5 zmian i dzielić przez 5. Najdokładniej (przynajmniej dla mnie by było) Bo jeśli weźmie się kontaktron i liczy powiedzmy przez 2 sek. (zakładając 1,2 obr. na sek.) to koło może wykonać 2,5 obrotu a policzy nam 2 czyli oszuka nas...
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ść...
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...
Nijak z żadnego kodu nie mogę się doczytać na chłopski rozum kiedy on mierzy czas od Rising do Rising. Nie używaj więc chłopskiego rozumu - użyj własny! Wyjaśnienie powinno być zbędne bo jest bardzo trywialne; - obracając wiatrakiem, w pewnym momencie wbudowany tam hall switch daje impuls na INT0, co wtedy robisz w programie? - odsyłasz go do etykiety...
Od ilu obrotów na minutę ma liczyć czy np. od 1/min?
jak ustawisz na counter to liczy z wejscia p3.4. a teraz gate=internal/external to jest tylko ustawienie czy timer bedzie wlaczeny programowo czy sprzetowo. jak dasz external to timer liczy gdy na p3.2 jest stan 0
To jest dokładne, tylko zauważ, że pomiar następuje w czasie jednej sekundy i wynik idzie *30. Oznacza to, że w czasie sekundy zliczono 2 impulsy więcej. Co 20 pomiarów. Możesz obroty mierzyć co 5 sekund. Wtedy powinno być stabilniej, ale na cuda nie licz. W skrajnym wypadku mierz obroty faktycznie w jednej minucie, ale odświeżanie będzie kiepskie....
Jak nie będzie lepszego schematu i opisu działania to chyba nikt ci nie pomoże. Jak zamkniesz A4 to silnik będzie kręcił aż go nie rozłączysz. Chyba że A4 to przycisk. To skoro tak to podłącz go bezpośrednio do kontrolera i zostaw obwód silnika tylko na przekaźniku A5. Generalnie schemat elektryczny to trochę do bani jest. A liczyć obroty silnika to...
OK . Jeżeli chcesz uzyskać taką dokładność położenia , to wcześniej zwalniasz napęd i dochodzisz do położenia na małej prędkości . Są wersje enkoderów posiadające trzeci kanał dający 1 impuls / obr. Jeżeli na dużej prędkości będziesz liczył pełne obroty , a dokładne pozycjonowanie zrobisz na małej prędkości ( np 100 obr / min ==== 120 mikrosek. ) bascom...
Jakiś bałagan podajesz. 1. Nie podałeś wersji z debounce- która chodziła przy wolnych obrotach. 2. W programie który wkleiłeś nie ma żadnego odniesienia do Licz: Czy to jest podprogram czy obługa przerwania? 3. Po co w tym Licz wyłączasz prerwanie? Jak to jest obsługa przerwania- to i tak inne przerwania są wyłączone.
Kolejna - konfiguracja portów odbywa się na rejestrze PORTC, a nie PINC, który jest przeznaczony do odczytu stanu pinu portu c. To nieprawda. Konfiguracja odbywa się w rejestrze DDR a nie PORT. W Bascomie pojedyńcze piny konfiguruje się właśnie Config PINX.Y = Input/Output Także użycie waitów do odmierzania czasu opuszczania rolety nie zda egzaminu....
Witaj. Liczysz ale w jakiej jednostce?? Startujesz timer ale nie zatrzymujesz go. powinno być start timer... wait 1 stop timer wyświetl ilość ....... Wtedy *60 i masz obroty na min powiedzmy..... Jaka dokładność jest Ci potrzebna? p.s Do Cls Waitms 100 Lcd "liczymy" Lowerline Lcd "szt- " ; Tcnt0 ; Waitms 100 tcnt0=0 loop Ale to będzie...
Widzę że problem zasilania wciąż żywy. To jak tak liczycie to powinno się faktycznie liczyć jakaś średnio zużywaną moc w ciągu 24h. Bo przy zejściu do uA pobieranych przez uC to może okazać się że przekaźnik w ciągu 10s pobiera więcej niż cały układ przez 24h.... Co do polecenia wait w Bascom, to na 99% jestem pewien że nie blokuje ono programu. Tam...
Zwykłe serwa modelarskie (bo rozumiem, że o takich mówisz) mają blokadę mechaniczną, która umozliwia obrót w zakresie (w przybliżeniu) 180°. Po usunięciu blokady możliwe, że dałoby się trochę zwiększyć zakres, ale to zależy od charaktery potencjometru odczytującego położenie... Na 360 stopni dla zwykłego serwa nie masz co liczyć.
Witam Widzę dwie możliwe przyczyny takiego zachowania. 1 Wyświetlacz LCD - jego obsługa pochłania sporo czasu więc lepiej wywalić poza główną pętlę programu - niech się odświeża raz na jakiś czas 2 Zmienne typu single - ich liczenie zajmuje w Bascomie dużo czasu - warto przemyśleć zmianę Nie analizowałem całego kodu ale wydaje mi się że to są dwaj główni...
Witam, Sądze, że program nie byłby za skomplikowany, odczyt danych z portu i wysłanie go RSem to żaden problem, a pomiar prędkości można zrealizować na liczniku, licząc albo impulsy albo czas, czas byłby lepszy w przypadku małych obrotów "kółka od myszki". Jeżeli mógłbyś to wrzuć schemat to będzie szło zrobić program. Jak chcesz to moge go napisać w...
Znalazłem taki kod w sieci: [syntax=basic4gl] $crystal = 4000000 $regfile = "m8def.dat" Dim Wynik As Long Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0 Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1 Wait 1 Stop...
Wziąłem się w końcu za ten obrotomierz lecz mam pewien problem. Nie mogę użyć Timer0 bo używam go do przerwań w menu i obsługi przycisków. Pozostaje mi timer1 który jest 16bitowy i liczy do 65536. I teraz wystarczy preskaler na 256? Pamięć mi się kończy - mam zegar z ustawianiem czasu, 3 temp., woltomierz, a to wszystko w przełączalnym menu na 4 ekrany...
Witam Mam problem z liczeniem impulsów z wejścia Pind.3 Atmegi8. Do wejścia mam podłączony czujnik magnetyczny umieszczony na wałku taśmy transferowej. Wiem że magnes nie jest najlepszym rozwiązaniem, ale potrzebuje zliczyć impulsy z niewielką częstotliwością. Problem polega na tym, że jeżeli taśma zatrzyma się w miejscu zwarcia czujnika to impulsy...
Ja powiem szczerze kiedyś się nad tym zastanawiałem jak to zrobić (dokłandniej nawet właśnie w tokarce) i pomysł jaki miałem to tak: Zazwyczaj nie interesuje mnie położenie bezwględne tylko względne. Dlatego można zrobić jakąć krańcówkę i zawsze liczyć wymiar od tego miejsca (np. od osi obrotu), a drugą krańcówkę zrobić ruchomą przy uchwycie bo przecież...
...zadaj sobie sam pytanie czy warto i czy obsługa programowa impulsatora nie rozwiąże Twoich prob;emów... Robiłem licznik na AT90s2313 podkręconym do 12 - 18MHz, liczyłem assemblerem. Impulsator dający 10000 impulsów gubił się przy prędkości powyżej jednego obrotu na sekundę, a założeniem jest zdaje się, zliczanie impulsów z częstotliwością 120kHz....
sterownik będzie liczył obroty wiatraka (zlicza co sekundę), wyświetlał wyniki na wyświetlaczu i sterował trzema przekaźnikami. Pierwszy przekaźnik będzie po osiagnięciu pewnych obrotów np. 100 obr rozłączał ładowanie akumulatorów, a drugi i trzeci przy pewnych obrotach np. 150 i 200 obr/min będą włączać obciążenie do wiatraka np. grzałki, co spowoduje...
Witam ! Mam do skonstruowania układ liczący długość przewody. Do zliczania liczby obrotów koła pomiarowego używam enkodera Kubler Sendix 5000 o rozdzielczości 1000 impulsów na obrót. Enkoder ma wyjście typu Push-pull i będzie zasilany napięciem 19 V (wynika to z konieczności zasilania innego urządzenia takim napięciem). Problem dotyczy podłączenia enkodera...
Witam próbuje stworzyć program, który będzie zliczał impulsy z enkodera i wyświetlał je na wyświetlaczu LCD. Na podstawie źródeł stworzyłem coś takiego, ale bascom wyświetla mi Error:202 :( Czyli chyba procesor nie obsługuje polecenia, a widziałem, że można na attiny2313 zrobić coś takiego, tylko może w jakiś inny sposób, którego nie poznałem jeszcze...
Witam Mam pytanie dotyczące obsługi encodera... ................. Przy zmianie kierunku pierwsza cyfra na wyświetlaczu zostaje "zamrożona" a zmianie podlega druga cyfra, znów w pętli. i tak dalej. Każda zmiana kierunku powoduje przeskok na kolejną pozycje wyświetlacza Jest to w zasadzie prosta operacja, lecz brakuje tu zasadniczego warunku –...
Sub Obliczenia If Czujka = 1 Then If Czujka = 1 Then End Sub To ma być coś takiego Napiszę językiem ludzkim :) Jeśli stan na pinie "czujka" jet wysoki wtedy zacznij odliczać czas Gdy stan na pinie czujka będzie wysoki wtedy zatrzymaj liczenie czas który policzyłeś ( w godzinach) = czas obrotu (zmienna) policz obwód koła / czas obrotu = speed Tylko...
W jaki sposób napisać obrotomierz 0-10000 obr/min z dokładnością około 50 do 100 obrotów? Potrzebuje zrobić regulator obrotów silnika prądu stałego-czyli PWM ze sprzężeniem zwrotnym zrobionym na hallotronie. Ale najpierw musi być zrobiony obrotomierz, który czuwa nad obrotami-więc musi bardzo często sprawdzać ilość obrotów. Najlepiej zliczać czas jednego...
Cześć Dr.Vee , masz rację, przebiegi z silnika są na tyle wolnozmienne że jedynie pomiar okresu jest w tym wypadku sensowny, co do tego nie mam wątpliwości. Przy okazji wkradła Ci się mała literówka, nie 4uS tylko 4ms, ale dalsze obliczenia wskazują że liczysz na dobrych jednostkach :). Co do uwagi rpal to zawsze jest jakieś podejście minimalistyczne...
Witam Serdecznie wszystkich elektrodowiczów! Mam tak: Motor Yamaha dt80 Lc 2x16 Atmegę 8 Bascom I oczywiście dobre chęci! Chcę zrobić tak Aby atmega liczyła prędkosc obrotów silnika i pokazywała je na lcd a potem przeliczała na khm z dokładnością 5 khm w te czy we te Myślałem tak Ekran powitalny Szerokiej Drogi! Potem jak już ruszę jechać to atmel będzie...
Dzieki za zainteresowanie. Najpierw objanśnie dla kolegi PLP . Do czego jest END IF a no do tego że w tej pętli używam dwa razy warunku If Then i kazdy z nich musi sie zakończyć END IF. 8051 odczytuje stany w wejść portów tylko wtedy gdy jego piny sa w stanie 1 czli down = 0 powoduje zablokowanie odczytu z tego pinu na pewnien czas. "A do 10 " służy...
L = L Mod 4 to licznik który liczy do 4 i pokazuje na wyświetlaczu kolejne CHR(..). W taki sposób zrealizowałem efekt obrotu. Można to zrobić inaczej?? Dodano po 1 A i nie mogę używać WAIT. Dodano po 7 No i muszą być wyświetlane jednocześnie. Jednocześnie to znaczy muszą być widoczne na wyświetlaczu wszystkie. Na wyświetlaczu są widoczne napisy i znaki:...
Witam. Mając trochę wolnego czasu postanowiłem wrócić do zmagań z PIDem. W sieci znalazłem program PIDa w Bascomie na Atmegę8 (maluszek Attiny2313 okazał się niestety za mały). W programie wyłączyłem różniczkowanie - aby było łatwiej. Program działa dość dobrze tzn. obroty utrzymują się na żądanym poziomie ale troszkę oscylują wokół wartości zadanej....
http://obrazki.elektroda.pl/7738815200_1... Przedstawiam mój kolejny projekt, który czekał ponad rok od momentu zamontowania baterii fotowoltaicznych, które są częścią awaryjnego zasilanie mieszkania opisanego: http://www.elektroda.pl/rtvforum/topic17... Chroniczny brak czasu nie pozwalał mi wejść na dach i skończyć tego co zacząłem...
Dziś wpadłem na genialny pomysł .Mianowicie chcę zbudować mini komputerek do motoru. Miał by on zadanie : -Przy przekręceniu stacyjki na on wyświetlał by się napis na wyświetlaczu -<HONDA>- -<NSR>- A po 3s napis (ma czujnik luzu w motorze): -<NEUTRAL>- -I potem pokazywał by przy odpowiednich obrotach silnika napis : -<Sprzęgło>-...
witam ja poszukuje sterownika silnika krokowego sterowanego impulsatorem, ma działać tak że jak impulsator kręci się w lewo to silnik też się kręci w lewo jak impulsator się zatrzyma to silnik zrobi to samo no i oczywiście w prawo to samo, czyli silnik kręci się wtedy co impulsator i w tą samą stronę. ma ktoś może schemat czegoś takiego? Takiego czegoś...
Zanim przejrzałem ten temat, wymyśliłem coś takiego: 'Pokazuje ilość obrotów na minutę 'Pomiar co sekundę, wejście PB0...1 'Cls : Cursor Off $baud = 19200 Dim Count(2) As Long , Last_state As Byte , Tmp As Byte Config Timer1 = Timer , Prescale = 64 'do odmierzania 1 sek. On Timer1 Co1sek On Pcint Fan_int Portb = 3 'podciąganie wejść kontroli...
Poprawiłem program, sygnał podaje na pind.5, teraz wygląda on tak --------- Dalej nie dobrze. Jest kilka metod pomiaru RPM wirujacych elementow (walow) urzadzen. Widze ze zdecydowales na pomiar czasu pomiedzy impulsami wynikajacymi z jednego obrotu, mimo ze opis do org. watku mial na celu zliczanie impulsow w okreslonej jednostce czasu. Nie ma nic...
Moim zdaniem całość nie działa poprawnie, bo używasz Timera1 pracującego w trybie CTC jednocześnie do odmierzania odcinków czasowych wyświetlacza i do pomiaru czasu zatoczenia pełnego koła. W trybie CTC Timer liczy od 0 do wartości Compare1a po czym zostaje wyzerowany, więc ten podprogram w przerwaniu ICP1, który oblicza Ci ile cykli zliczył Timer podczas...
Witam Założenia programu są bardzo proste. Jest to cyfrowy licznik metrów taśmy mogący zliczać w przód i w tył. Sygnałami wejściowymi są sygnały A i B z optycznego enkodera inkrementalnego, które są przesunięte w fazie. Wynik ma być prezentowany na sześciocyfrowym wyświetlaczu LED (z multiplexem). Rozdzielczość enkodera wynosi 16 imp/obr. Znamy także...
jakby kolega na początku napisał o co mu chodzi to było by mniej problemów. Q1. Czy jeśli ATTINY2313 jest traktowany częstotliwością 20 MHz oznacza, że przerwanie timera może być równie często generowane? niestety nie. 20MHz to czestotliwośc taktowania, timerów i rdzenia. samo wywołanie przerwania i potem wyjście z niego to około 15 cykli. jak będziesz...
A w "książce" Wiązani nie było wytłumaczenia jak ten kod działa? no w książce było ale że ja dopiero zaczynam z tym zabawe to nie tak hop siup sobie samemu napisać :) dlatego liczę na pomoc elektrody Posprawdzałem dokładnie program, pozmieniałem porty bo sie nakładaly na ten z odbiorem rc5 ale niestety program nie ruszył. Ciągle wyświetla 8888 i nie...
Zmieniłem jeszcze raz program, tak aby nie wykonywał dodatkowych pętli. W sumie działa sprawniej niż poprzednie wersje ale po pewnym czasie nadal się restartuje [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Pind.0 = Output Config Pind.1 = Output Config Pind.6 = Input Config Pind.7 = Input...
Zaadaptowałem kod obsługi impulsatora jednego z Kolegów i teraz działa, winny takiemu działaniu jest oczywiście sam impulsator kupując za 4 zł nie liczcie że będzie działał jak dużo droższy ( już NIGDY nie kupie żadnego taniego !!!, szkoda czasu i nerw) code/ Dim Temp10 As Byte Dim Stan_imp As Byte Dim Czas As Byte Dim Czas0 As Byte Dim Wynik As Integer...
Wiec trochę to trwało by cokolwiek napisać ( brak programatora działającego z bascom trochę mnie stopował) Zrobiłem juz prosty algorytm tego co potrzeba zrobić i podzieliłem prace na 4 etapy: 1) wejścia adc dla map sensora ( zrobione ;) 2 wejście dla enkodera ( muszę zakupić jakiś impulsator i napisać parę linijek) 3 pomiar czasu pracy każdego z wtryskiwaczy....
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...
Witam, bascom wysypuje mi error 1 w tym programie: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 1a Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.4 , Db6 = Portb.0 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1 Config Pinc.5 = Input Config Pinc.4 = Input Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania...
Niestety nie podziałało. Sformuję pytanie inaczej: Jak wyjść z pętli do loop, w której znajduje się encoder(). ? dodam że pętla while wend w tym przypadku nie działa. Dodano po 26 Oto fragment mojego kodu: Program znajduje się w funkcji "ustawzwoje" naciskając włącznik (pinc.3) program przechodzi do "ustawobroty" i w tym momencie zatrzymuje się timer2,...
liczenie bascom bascom liczenie impuls liczenie impulsów bascom
accord bezpieczniki volvo silnika niska wydajność klimatyzacji
alpine 7903ms suszarka samsung
Mitsubishi Outlander 3 JF016E CVT – opinie warsztatów, awarie, koszty serwisu Pairing Tuya Smart Switch with App: Step-by-Step Guide