logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak napisać program w AVRGCC na Atmega do licznika rowerowego?

Pysiak 31 Maj 2007 21:19 4348 12
REKLAMA
  • #1 3940727
    Pysiak
    Poziom 11  
    Posty: 52
    Pomógł: 1
    Ocena: 6
    Witam.Jestem początkujący. Mam problem z napisaniem programu w AVRGCC który działał by a ten sposób że zlicza impulsy( np. z kontaktronu) i na lcd miała by sie pokazać prędkość w km/h oraz dystans przejechany w km. - na procku Atmega (8, 16 itp) Wydaje mi się że powinny być uzyte dwa liczniki - jeden zlicza impulsy z kontaktronu a drugi zajmuje się czasem...co zastosować ( jakie rejestry...itp) żeby to prosto skleić do kupy :]
  • REKLAMA
  • #2 3940773
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 138
    Ocena: 31
    Timer1 wykorzystujesz do zliczania impulsów (wejście T1) a timer2 w trybie asynchronicznym z kwarcem zegarkowym odlicza czas...
    Musisz znać obwód koła...
    Potem to już prosto...
    Przeliczasz ilość obrotów w danym czasie na drogę i wyliczasz prędkość...
    Rejestry konfiguracji poszczególnych timer'ów są opisane w dokumentacji...
  • REKLAMA
  • #3 3940812
    nojmi
    Poziom 20  
    Posty: 473
    Pomógł: 9
    Ocena: 18
    Możesz też zliczać czas między impulsami. Znasz czas i drogę (obwód koła) co daje Ci prędkość.
  • REKLAMA
  • #4 3941591
    Pysiak
    Poziom 11  
    Posty: 52
    Pomógł: 1
    Ocena: 6
    a napisał by ktoś przykładowy kawałek programu ? :]
  • #5 3941600
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Kontaktron to raczej nienajlepszy pomysł (jest zbyt wolny) Lepiej jakiś czujnik magnetyczny zastosuj.
    Timer 0 zliczałby impulsy z czujnika, T1 mierzyłby czas. w sumie banalna sprawa, ale ci nie pomoge, chyba ze lubisz asm to moge pomyśleć nad tym programem
    Pozdrawiam
  • REKLAMA
  • #6 3943444
    Pysiak
    Poziom 11  
    Posty: 52
    Pomógł: 1
    Ocena: 6
    Może znajdzie się ktoś kto pomoże w C... oczywiście za wynagrodzeniem :] jakby co to stukać na email.

    pozdro
  • #7 3943538
    tmgofer
    Poziom 12  
    Posty: 84
    Pomógł: 1
    Ocena: 1
    Ch.M. napisał:
    Kontaktron to raczej nienajlepszy pomysł (jest zbyt wolny) Lepiej jakiś czujnik magnetyczny zastosuj.

    Dlaczego zaraz za wolny? Przecież w licznikach rowerowych dostępnych na rynku również wykorzystywany jest kontaktron. Skoro to projekt dla początkującego, to chyba takie rozwiązanie idealnie się nadaje!
  • #8 4405121
    despedro
    Poziom 12  
    Posty: 18
    Pomógł: 2
    Ocena: 2
    to jak to w koncu jest z tym kontaktronem ? mógłby ktoś podać konkretny model , typ cokolwiek ? także chce wykonac licznik rowerowy. Narazie mam wyswietlacz LCD z noki i zastanawiam sie ile procek potrzebuje pamieci na napisanie programu w C do obslugi wyswietlacza i programu do licznika ( podstawowe funkcje, predkosc, dystans, dystans dzienny, srednia predkosc, moze zegarek ? ). Jestem totalnym noobem jezeli chodzi o projektowanie, czy ktos moglby mi pomoc ?
  • #9 4405175
    elektronika1984
    Poziom 13  
    Posty: 86
    Pomógł: 5
    Ocena: 5
    Kontaktron jest dobrym rozwiązaniem. Nie musi sie przełączać szybko jego czas przełączania wystarczy. Przy jeździe na rowerze raczej nie mamy do czynienia z zabójczymi częstotliwościami.
  • #10 4405440
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Cytat:
    zastanawiam sie ile procek potrzebuje pamieci na napisanie programu w C do obslugi wyswietlacza i programu do licznika ( podstawowe funkcje, predkosc, dystans, dystans dzienny, srednia predkosc, moze zegarek ? .


    Spokojnie wystarczy 8kB (gdzie ponad połowa to będzie deklaracja tablic ze znakami lub prostą grafiką dla Twojego LCD. Myślę za ATMEGA8L-8AU będzie najlepsza.
    Co do kontaktronu to na początek może byc np: typ MK67B i magnes szeregu MM (www.TME.pl).
  • #11 4532593
    misiiiek1
    Poziom 1  
    Posty: 1
    Odnośnie zaproponowanego kontaktronu 'MK67B' jego napiecie przełąćzania wynosi 200V, skąd wziąść takie napicie korzystając z baterii lub akumulatorka?
    P.S. Jestem laikiem i zdaje sobie sprawe ze to co wypisuje moze być herezją, czy moze mi to ktos wytłumaczyc?
  • #12 4532601
    korrus666
    Poziom 40  
    Posty: 5219
    Pomógł: 584
    Ocena: 476
    Kontaktron załącza styki w polu magnetycznym. Napięcie 200V to jest maksymalne napięcie jakie może sie pojawić na stykach, które nie uszkodzi kontaktronu. :) Na kole montujesz magnes a kontaktron na widelcu i jak magnes przemieszcza sie w pobliżu kontaktronu to załącza jego styki.
  • #13 4532736
    PiotrPitucha
    Poziom 34  
    Posty: 2658
    Pomógł: 201
    Ocena: 423
    Witam
    Oczywiście najszybszy rower nie wyklucza kontaktronu, kontaktron wcale nie jest za wolny, problem może być z drganiami styków, albo trzeba je wyfiltrować układowo albo programowo, ale to może być dla początkującego trudne, najlepiej postaraj się o zepsutego flopa i wyjmij z niego halotron, można go też kupić w sklepie ale pewnie koło 10zł musisz wydać, reszta jak mówią koledzy spokojnie wejdzie w Atmegę 8.
    Umiejętnie napisany program zajmie kilka procent czasu procesora lub nawet mniej, przy usypianiu prosesora i budzeniu przerwaniem od czujnika obrotu pobór prądu może być pomijalnie mały.
    Gdybyś zastosował mocny magnes typu neodym podejrzewam że zastosowanie cewki jako czujnika wystarczyłoby do podładowywania akumulatorka zasilającego układ.
    Piotr

Podsumowanie tematu

✨ Dyskusja dotyczy napisania programu w AVRGCC na mikrokontroler Atmega (np. Atmega8, Atmega16) do licznika rowerowego, który zlicza impulsy z kontaktronu i wyświetla prędkość oraz dystans na LCD. Proponowane rozwiązanie to wykorzystanie dwóch timerów: Timer1 do zliczania impulsów z czujnika (np. kontaktronu lub czujnika magnetycznego), a Timer2 w trybie asynchronicznym z kwarcem zegarkowym do odmierzania czasu. Alternatywnie można mierzyć czas między impulsami, znając obwód koła, co pozwala obliczyć prędkość. Kontaktron jest uznawany za wystarczająco szybki dla rowerowych zastosowań, choć może wymagać filtracji drgań styków programowo lub układowo. Jako czujnik magnetyczny polecany jest halotron, który można pozyskać z uszkodzonego napędu dyskietek. Do obsługi wyświetlacza LCD (np. z Nokii) i podstawowych funkcji licznika (prędkość, dystans, średnia prędkość, zegarek) wystarczy mikrokontroler z około 8 kB pamięci, np. ATMEGA8L-8AU. Kontaktron typu MK67B z magnesem szeregu MM jest przykładowym rozwiązaniem, gdzie napięcie 200V oznacza maksymalne dopuszczalne napięcie na stykach, a nie wymaganą wartość zasilania. Wskazano, że dobrze napisany program może efektywnie zarządzać czasem procesora i minimalizować pobór energii, np. przez usypianie i wybudzanie przerwaniem od czujnika.
Wygenerowane przez model językowy.
REKLAMA