Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

licznik rowerowy :-), jaki procek wybrać, kilka pytań

31 Sty 2005 02:14 3226 7
  • VIP Zasłużony dla elektroda
    Witam wszystkich

    Potrzebuje zrobić licznik rowerowy, wobec tego mam kilka pytań:
    - jaki wybrać mikrokontroler - w technikum programowaliśmy 80c535 ale to bylo wieki temu, od tego mialem tylko przygode z motorola 68000; za pomoca mikrokontrolera chce sterowac 4-liniowym wyswietlaczem LCD
    - w jaki sposób liczyc predkosc? w kole zamocowany jest magnes, ktory zwiera kontraktron, wiec do glowy przychodza mi 2 mozliwosci :
    I - powielenie czestotliwosci z kontaktronu, nastepnie przetwornik f/U i dalej na przetwornik A/C w mikrokontrolerze
    II - Liczenie impulsow za pomoca licznika w mikrokontrolerze

    - w jakim jezyku pisac - znam podstawy asemblera na Intela i Motorole, znam rowniez troche wieksze podstawy C (w koncu informatyke studiuje :P)

    Bede wdzieczny za jakakolwiek pomoc.
    Pozdrawiam
    Marek
  • Poziom 20  
    Proponuje oprzeć projekt na AT89C2051. Jest tani prosty dużo do niego informacji na necie.Oprogramowanie i programator możesz znależć na Elektordzie. Chociaż ja używamn do programowania go Bascoma'51 Kontraktronu nie używaj bo po kilku (nastu) kilometrach go szlak trafi(ograniczona żywotność styków kontraktronu) Możesz użyć jakiegoś czujnika z efektem Hala(nie wiem czy sie to tak pisze) . Nie musisz zwiększać żadnej częstotliwości po prostu zmierz mikroprocesorem czasy między kolejnymi przełączeniami czujnika. tylko nie wiem czy Ci się będzie opłacało (za ok 3 dychy możesz kupić gotowy licznik wodoszczelny i wogule a z tego co sie orjętuję to wyświetlacz LCD może cię 2X wiecej kosztować...chociaż to fajnie coś samemu zrobić...)
  • Poziom 42  
    szaleniec napisał:
    Potrzebuje zrobić licznik rowerowy
    Zaprojektować czy zbudować czy zbudować i używać go?
  • VIP Zasłużony dla elektroda
    zaprojektowac, zbudowac
  • Poziom 23  
    Nie rozumiem tego pomysłu z powielaniem częstotliwości i przetwornikiem. Po co?
    Nie prościej zmierzyć drogę jaką "przebywa" koło po jednym obrocie i mnożyć przez ilość impulsów (z kontaktronu lub czujnika Halla)? Wynik odpowiednio podzielić w zależności w jakich jednostkach chcesz: km lub m ?

    Pisz w tym języku który dobrze znasz.

    www.jaglarz.com
    Marek Jaglarz
  • Specjalista techniki cyfrowej
    nie mierz częstotliwości, tylko OKRES!
    V=o/t
    V - prędkość w m/s
    t - okres jaki upłynął pomiędzy dwoma następującymi po sobie impulsami z czujnika
    o - obwód koła w metrach

    Tak działają fabryczne liczniki, dzięki temu mierzą już bardzo małe prędkości.
    dodatkowo przejechany dystans otrzymasz dodając z każdym impulsem obwód koła do całkowitego dystansu

    procedura przerwania w pseudokodzie, przerwanie wywoływane za każdym razem, gdy dostanie impuls z czujnika:

    Code:
    przerwanie:
    
       timer stop
       t=timer+dziura
       timer start
       ts=t/ft
       predkosc=o/t
       dystans=dystans+o
    koniec


    dziura - to ilość cykli pomiędzy instrukcjami "timer stop" i "timer start", w sumie to można pominąć, wprowadzi to niewielki (zapewne pomijalnie mały) błąd.
    o - obwód koła, dystans - całkowity przejechany dystans, można też wprowadzić dodatkowe dystansy, z możliwościa kasowania przez użytkownika, obliczane na tej samej zasadzie.
    t - okres w cyklach timera
    ts - okres, ale w sekundach!
    ft - częstotliwość taktowania timera z uwzględnieniem ewentualnego preskalera (o tym niżej)

    Prawda, że proste? :D

    Zakładając, że na rowerze nie przekroczysz 100km/h ( :D ) i że masz koła 26", czyli 0.6604m, czyli mają 2,074708m obwodu, najkrótszy okres, jaki będziesz mierzył to 108ms, a najdłuższy to nieskończoność (jak stoisz). przy czym założyć można, że jeżeli prędkość jest mniejsza od 0.5km/h, to na wyświetlaczu pokaże się 0. Dla tej prędkości okres wynosi 14,937897s
    Przy taktowaniu timera zegarem 500kHz daje to zakres 54000 do 7468949 okresów timera, więc trzeba będzie "dorobić" dodatkowe przerwanie dla timera, które będzie zliczało przepełnienia. Przerwanie timera powinno mieć większy priorytet, niż przerwanie z czujnika, oraz dodatkowo należy wprowadzić system "semaforów", aby wyeliminować możliwość zmiany zawartości licznika w trakcie jego odczytu.

    Żeby ułatwić sobie sprawę z obsługą timera możesz wybrać mikrokontroler z szesnastobitowym timerem i preskalerem. Preskaler ustawiasz tak, aby dla minimalnej prędkości nie następowało przepełnienie timera. Możesz też wprowadzić nieznaczną modyfikację - jeżeli nastąpi przepełnienie timera, to wyświetlić prędkość = 0, pozwoli Ci to na ustalenie dokładności pomiarów za pomocą preskalera.

    Możesz też dać więcej czujników na obwodzie koła, dzięki czemu będziesz mógł częściej odczytywać wyniki, a to z kolei można wykorzystać do uśredniania kilku kolejnych pomiarów, albo skrócenia mierzonego okresu i w efekcie wykorzystania "mniejszego" preskalera, albo częstszego "odświeżania wyników (z jednym czujnikiem przy prędkości 20 km/h będziesz miał nowy wynik 2.78 razy na sekundę)
  • Poziom 16  
    co do czujnika, to doskonale sie nada cos takiego co jest w wentylatorach komputerowych. tam jest scalony hallatron pewnie z jakims wzmacniaczem operacyjnym, efekt jest taki, ze ma to 3 wyprowadzenia (+ - wyjscie) i na wyjsciu sa juz gotowe impulsy
  • Poziom 42  
    szaleniec napisał:
    zaprojektowac, zbudowac
    Zacznij od kalkulacji poboru prądu, gdyż jest to krytyczne w tym projekcie.