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

atmega32 [C] - Obrotomierz - poszukiwany kod

faziil 28 Cze 2013 18:00 1842 10
  • #1 28 Cze 2013 18:00
    faziil
    Poziom 15  

    Witam. Szukam programu obrotomierza zliczającego jedynie ilość impulsów i wyświetlający na LCD wynik, taki który dało by się uruchomić impulsami z przycisku.

    0 10
  • #2 28 Cze 2013 23:34
    94075
    Użytkownik usunął konto  
  • #3 28 Cze 2013 23:41
    Błażej
    VIP Zasłużony dla elektroda

    O co ci chodzi? To chcesz obrotomierz, czy licznik obrotów/impulsów?
    Masz dostępne opisy obrotomierzy optycznych, które realizują podstawowy pomiar ilości obrotów na minutę. Możesz sobie jedynie wejście przerobić. Na pewno też znajdziesz jakiś licznik impulsów.

    0
  • #4 29 Cze 2013 10:44
    faziil
    Poziom 15  

    Prosił bym o pomoc w szukaniu.

    Przerobiłem już wszystkie kody obrotomierzy jakie znalazłem, wyszukane pod rożnymi hasłami.

    Nie wiem czy dobrze się do tego zabieram, ale próbuję napisać wsad do uC. Atmega jest podłączona jednym pinem (data) z odbiornikiem 433mhz, a druga atmega pracuje jako nadajnik i wysyła w różnych odstępach czasowych impuls który odbierany jest jako zmiana stanu.

    0
  • #5 29 Cze 2013 13:18
    Tom1988p
    Poziom 16  

    Ok. Wiadomo że ma liczyć impulsy. Czy teraz w danej jednostce czasu np. przez 1s oraz pomiar za pomiarem? Czy może po osiągnięciu liczby impulsów np.5 ma być następny pomiar a może przerwa? Z jakiego źródła pochodzą te impulsy? Jakiś schemacik może?

    0
  • #6 29 Cze 2013 16:33
    faziil
    Poziom 15  

    Tutaj w jaki sposób generuje przebiegi o różnych częstotliwościach: (nadajnik TX 433Mhz podlaczony do pinu PB0)

    Kod: c
    Zaloguj się, aby zobaczyć kod


    A tutaj sygnał z odbiornika (RX 433Mhz)
    atmega32 [C] - Obrotomierz - poszukiwany kod

    Chcę teraz aby moja atmega32 rozpoznawała odpowiednie częstotliwości. Jak już to będzie umiała to zrobię sobie odpowiednie przyciski.
    Teraz zrozumiałem że zliczanie impulsów nic nie da, trzeba zliczyć odstęp między nimi.


    PS. gdy pin nadajnika (data) przyjmie stan wysoki(VCC) to pin (data) odbiornika przyjmuje stan niski(GND). Jak odwrócić ten sygnał?

    0
  • #7 29 Cze 2013 17:31
    Tom1988p
    Poziom 16  

    Podaj schemat bo ja czegoś nie rozumie.

    Cytat:
    PS. gdy pin nadajnika (data) przyjmie stan wysoki(VCC) to pin (data) odbiornika przyjmuje stan niski(GND). Jak odwrócić ten sygnał?
    Piny są spięte kabelkiem czy jak? Raczej nie bo masz dwa różne stany na pinach. Ma to być układ master-slave czy master-master? Odczytany wynik można zawsze odwrócić, to jedna z podstaw języka.

    Dodano po 15 [minuty]:

    Możesz mierzyć ilość impulsów w czasie lub długość okresu jaki one generują przez przerwanie od przechwycenia z pinu ICP.

    0
  • #8 29 Cze 2013 18:27
    faziil
    Poziom 15  

    atmega32 [C] - Obrotomierz - poszukiwany kod atmega32 [C] - Obrotomierz - poszukiwany kod

    Czy timer w atmedze rozpozna taki sygnał? (stanu niskiego- zamiast wysokiego)

    Edit: Na podstawie tych przebiegów co byś wybrał?

    0
  • Pomocny post
    #9 29 Cze 2013 18:46
    Tom1988p
    Poziom 16  

    Wyciąg z Polskiej wersji dokumentacji atmegi16 (znajdziesz bez problemu odniesienie do 32):

    Cytat:
    ICES1 - Wybór zbocza zdarzenia na pinie ICP1.
    Bit ten służy do określenia rodzaju zbocza, które będzie interpretowane jako
    zdarzenie Input Capture na pinie ICP1. ICES1 = 0 - oznacza wybór zbocza
    opadającego, ICES1= 1 to zbocze narastające.

    Tutaj masz obrotomierz bazujący na mierzenu okresu. Przerób go pod własne potrzeby Link

    0
  • #10 29 Cze 2013 18:59
    faziil
    Poziom 15  

    Próbowałem załadowac ten kod juz wczesniej ale mi się nie udało. Spróbuje zrobić to jeszcze raz.

    A co z tym niskim stanem? czy to nie przeszkadza w działaniu programu?

    Edit: sygnał podpiąć pod PB1? (T1)


    Niestety, na wyświetlaczu pokazuje się tylko "0" i podpinanie sygnału z drugiej atmegi nic nie pomaga.



    Edit: DDDDDZZZZZZZIĘĘĘĘĘĘKUJE za pomoc. Oczywiście że źle podłączałem sygnał, powinienem podłączyć go do PD6. Doszedłem do tego przez przypadek, ponieważ wynik zmienił się gdy przejechałem palcem po atmedze i wtedy już wiedziałem ocb :)

    0
  • #11 24 Lip 2013 22:14
    faziil
    Poziom 15  

    Odświeżam ponieważ mam problem z częstotliwością. Odstęp sygnał nie będzie przekraczał kilku Hz. Jak przerobić kod z linku wyżej bądź tego aby wyświetlało poprawnie?
    Z góry dziękuje za odpowiedź.

    0
  Szukaj w 5mln produktów