Pytanko o licznik impulsów

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
levis
Młodszy majsterkowicz
Posty: 2
Rejestracja: 5 lut 2014, 14:06

Pytanko o licznik impulsów

Post autor: levis » 5 lut 2014, 14:13

Jestem tu nowy, więc witam serdecznie.

Jakiś czas temu kolega namówił mnie do zakupu arduino uno, jako dobrego wstępu do programowania mikrokontrolerów.

Obecnie chciałbym zrobić prosty programik, tylko nie wiem, czy arduino poradzi sobie z ilością impulsów.

otóż tak:

- program miałby zliczać ilość impulsów co sekundę. Tzn ile impulsów poleciało w trakcie jednej sekundy.

Zakładam, że ilość impulsów może zawierać się w przedziale 10-250 na sekundę.

Chciałbym aby dla danego przedziału impulsów, na główny licznik, np:

10-25 = 0.1
25-50 = 0.2
...
200-250 = 1

I co sekundę, jedna z powyższych wartości była by sumowana do głównego licznika.

Czy da się to oprogramować w arduino, czy raczej nie ? :-)

z góry dzięki

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
Marhef
Złota rączka
Posty: 1223
Rejestracja: 18 lis 2011, 02:18

Re: Pytanko o licznik impulsów

Post autor: Marhef » 5 lut 2014, 19:06

Przy takiej częstotliwości powinno się udać. Chociaż możesz mieć problem z pomiarem czasu
Awatar użytkownika
rafalzaq
Majsterkowicz
Posty: 180
Rejestracja: 2 maja 2013, 23:57

Re: Pytanko o licznik impulsów

Post autor: rafalzaq » 5 lut 2014, 23:54

Możesz użyć do tego przerwań. Jednym przerwaniem wykrywasz wystąpienie impulsu i zwiększasz licznik impulsów, a drugim (wywoływanym co sekundę) sprawdzasz ile impulsów zliczyło, odpowiednio zwiększasz główny licznik i zerujesz ten licznik impulsów.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1223
Rejestracja: 18 lis 2011, 02:18

Re: Pytanko o licznik impulsów

Post autor: Marhef » 6 lut 2014, 22:59

Rafalzaq, powiedz mi, jak chcesz odliczać czas korzystając z przerwań w arduino? Cytując mój post z tutoriala o przerwaniach:
Ważne jest, że w trakcie wykonywania programu obsługi przerwania nie działa funkcja delay(), a wartość funkcji millis() nie jest zmieniana (nie odliczany jest czas)
Awatar użytkownika
rafalzaq
Majsterkowicz
Posty: 180
Rejestracja: 2 maja 2013, 23:57

Re: Pytanko o licznik impulsów

Post autor: rafalzaq » 7 lut 2014, 00:51

Nie chcę odliczać czasu korzystając z przerwania tylko wywoływać przerwanie co określony czas za pomocą timera.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1223
Rejestracja: 18 lis 2011, 02:18

Re: Pytanko o licznik impulsów

Post autor: Marhef » 7 lut 2014, 01:42

Jakiego timera? W przerwaniach arduino w ogóle nie odmierza czasu
levis
Młodszy majsterkowicz
Posty: 2
Rejestracja: 5 lut 2014, 14:06

Re: Pytanko o licznik impulsów

Post autor: levis » 7 lut 2014, 09:15

Marhef pisze:Przy takiej częstotliwości powinno się udać. Chociaż możesz mieć problem z pomiarem czasu

Dzięki kolego. Wiesz, tutaj nie chodzi o super dokładny pomiar, tylko po prostu określenie, do której grupy zakwalifikować daną sekundę pracy.

Może podpowiesz, od czego mógłbym zacząć ?

Mam adruino UNO masę kabelków :-)
Awatar użytkownika
Marhef
Złota rączka
Posty: 1223
Rejestracja: 18 lis 2011, 02:18

Re: Pytanko o licznik impulsów

Post autor: Marhef » 7 lut 2014, 18:43

A coś do generowania impulsów?
Awatar użytkownika
Maxik
Starszy majsterkowicz
Posty: 405
Rejestracja: 6 lip 2012, 18:27
Lokalizacja: Gdańsk
Kontakt:

Re: Pytanko o licznik impulsów

Post autor: Maxik » 7 lut 2014, 20:59

Marhef pisze:Jakiego timera? W przerwaniach arduino w ogóle nie odmierza czasu
Mylisz pojęcia. Tu nie chodzi o odliczanie czasu w funkcji wywoływanej przerwaniem, a o wywołanie przerwania co określony czas. Poszukaj hasło "avr timer interrupt".
Awatar użytkownika
Marhef
Złota rączka
Posty: 1223
Rejestracja: 18 lis 2011, 02:18

Re: Pytanko o licznik impulsów

Post autor: Marhef » 7 lut 2014, 21:13

Ja się pytam o konkretne zastosowanie timera w arduino
michalxt
Młodszy majsterkowicz
Posty: 3
Rejestracja: 19 gru 2013, 19:30

Re: Pytanko o licznik impulsów

Post autor: michalxt » 7 lut 2014, 21:59

Po pierwsze przerwanie wykonywane automatycznie po przepełnieniu timera -> tutaj ciekawy artykuł engblaze(dot)com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/

Ja tutaj korzystam ze świetnego programu KAVRCalc

Po drugie przerwania reagujące na sygnał zewnętrzny, na które trzeba zezwolić funkcją sei(); bądź zabronić funkcją cli();

Nie pamiętam tylko jak jest z priorytetami tych dwóch rodzajów przerwań
Awatar użytkownika
Marhef
Złota rączka
Posty: 1223
Rejestracja: 18 lis 2011, 02:18

Re: Pytanko o licznik impulsów

Post autor: Marhef » 9 lut 2014, 14:30

Dzięki michaxt, o to mi chodziło. Nie wiedziałem, że tak w arduino można.

Dlaczego nie mogę przyznać pochwały za ten post?
ODPOWIEDZ

Strony partnerskie: