Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 24 gru 2024, o 20:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 14 lip 2016, o 13:21 
Offline
Użytkownik

Dołączył(a): 09 sty 2015
Posty: 25
Pomógł: 0

Witam,
chce zrobić stroboskopowy miernik prędkości obrotowej, ogólny szkielet programu i obsługę klawiszy wiem jak zrobić. Jednak mam zagadkę której nie potrafię rozwiązać.

Dioda ma błyskać z taką samą częstotliwością co przedmiot wirujący, dzięki temu obraz dla nas będzie nie ruchomy i możemy odczytać prędkość obrotową. Obroty ustawiam za pomocą impulsatora obrotowego z przyciskiem(przycisk zwiększa mnożnik 1x, 10x, 100x, 1000x, a obrót impulsatora inkrementuje lub dekrementuje wartość obrotów o 1 x mnoznik).
Prędkość obrotową chciałbym mierzyć w zakresie 20 obr/min do 50000 obr/min.
Atmega 8 (16 Mhz)
Mam problem jak ustawić timer aby uzyskać rządany efekt, próbowałem coś liczyć ale coś mi nie wychodziło.
Proszę o jakieś rady lub podpowiedzi jak to ugryźć i od czego zacząć.

z góry dzięki za odpowiedzi :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 13:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 mar 2015
Posty: 116
Pomógł: 16

Witam !
Sugerują lekturę z działu application notes:
AVR205: Frequency measurement made easy with Atmel tinyAVR and Atmel megaAVR
ze strony ATMELA + załączony kod.
Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 13:33 
Offline
Użytkownik

Dołączył(a): 09 sty 2015
Posty: 25
Pomógł: 0

Dzięki, spróbuję coś z tego wyciągnąć, ale pewnie dopiero wieczorem :)


Na szybko jak spojrzałem to tam jest pomiar częstotliwości, a ja chcę ją zadawać i z zadaną częstotliwością błyskać diodą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 13:47 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Taka pierwsza myśl: może być problem z dokładnymi częstotliwościami ponieważ częstotliwość zegara (załóżmy te 8Mhz) nie dzieli się bez reszty przez wiele z liczb 20-50000.
Muszę dokładniej pomyśleć :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 13:54 
Offline
Użytkownik

Dołączył(a): 26 cze 2016
Posty: 186
Pomógł: 7

budapreniak napisał(a):
Witam,

Mam problem jak ustawić timer aby uzyskać rządany efekt, próbowałem coś liczyć ale coś mi nie wychodziło.
Proszę o jakieś rady lub podpowiedzi jak to ugryźć i od czego zacząć.

z góry dzięki za odpowiedzi :)



Akurat robiłem próbę, bo chcę zrobić coś bardzo podobnego, czyli kamerton. Chciałem sprawdzić, czy wzór na częstotliwość się zgodzi.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Trochę pousuwałem dla czytelności, więc jakby nie zadziałało to daj znać, może coś niechcący wywaliłem za dużo. Ale się kompiluje.
Najważniejsza sprawa, którą chciałem sprawdzić to zgodność wzoru f = CLK/(ICR1+1) , dlatego
dałem sporą częstotliwość wyjściowa, żeby ewentualna pomyłka była od razu widoczna. Częstotliwość się zgodziła
oczywiście biorąc pod uwagę tolerancję kwarcu i miernika nie kalibrowanego od 15 lat ;)
Tu akurat masz zmianę przez wpisywanie wartości do ICR1.
Zacznij od określenia zakresu częstotliwości wyjściowych i do tego dobierz kwarc, tak, żeby w miarę wysokie
podzielniki były, bo wtedy masz mały krok zmian. Wypełnienie musisz mieć oczywiście małe, żeby błysk diody był krótki.

------------------------ [ Dodano po: 9 minutach ]

krzysssztof napisał(a):
Taka pierwsza myśl: może być problem z dokładnymi częstotliwościami ponieważ częstotliwość zegara (załóżmy te 8Mhz) nie dzieli się bez reszty przez wiele z liczb 20-50000.
Muszę dokładniej pomyśleć


Przez podział nie da rady uzyskać każdej częstotliwości, ale błąd może nie być duży. Nie ma też chyba sensu mierzenia tak niskich obrotów jak 20/min
metodą stroboskopową, bo to jest 1 obrót na 3 sekundy!
A, jeszcze jedno, jak częstotliwość będzie się nieco różnić, to będziesz widział przesuwanie się znacznika, możesz ocenić różnicę i uwzględnić.



Ostatnio edytowano 14 lip 2016, o 14:57 przez czarekgr, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 14:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 mar 2015
Posty: 116
Pomógł: 16

budapreniak napisał(a):
... to tam jest pomiar częstotliwości, a ja chcę ją zadawać i z zadaną częstotliwością błyskać diodą.

To może "zaprząc" do roboty kanał PWM ?
Ustawiasz żądaną częstotliwość , współczynnikiem wypełnienia masz wpływ na intensywność świecenia diody i do momentu potrzeby zmiany częstotliwości migania - reszta dzieję się niejako sama.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 17:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
A może trochę w innym kierunku; w przerwaniu odliczać "tyknięcia" 10ms ( przy takim liczeniu teoretycznie odczujesz różnicę pomiędzy 50k a 49.999 rpm ), liczyć to to i co ustaloną wartość cyknąć LED'em.
Taki pomysł, nie poparty próbami labolatoryjnymi. ;)

Pozdr.

edit: przy takiej rozdzielczości nie budiet - coś mi się pogoda rzuciła... :) , ale pomyśl.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2016, o 21:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2016
Posty: 256
Lokalizacja: Norwegia
Pomógł: 16

Cześć. Tak sobie czytam i pomyślałem że ta dolna granica obrotów to nieco za niska jak na stroboskop. 20 obrotów na minutę to jeden obrót na 3 sekundy, nie da się uzyskać fajnego efektu strobowania przy takim RPM. trzeba podnieść dolną granicę tak mi się wydaję, albo zmienić metodę pomiary, na przykład umieścić znaczniki do strobowania w odpowiednio większej gęstości.
Kolejna myśl jaka mi przyszła do głowy to przy wyższych obrotach, wykorzystanie częstotliwości harmonicznych generatora błysku :) czyli efekt strobowania będzie występował przy częstotliwości błysku równej z RPM oraz z jej parzystymi krotnościami (będzie działać raczej przy wyższych RPM) ... Ot takie wolne myśli :)

_________________
SP2LUB - LA1BUA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lip 2016, o 10:16 
Offline
Użytkownik

Dołączył(a): 09 sty 2015
Posty: 25
Pomógł: 0

Znalazłem coś takiego tylko w BASCOM'ie http://mirley.firlej.org/stroboskopowy_miernik_obr

A jakby tak taktowanie dać 16 MHz i preskaler 8
16000000/8=2000000 (czyli tyle tykniec trwa sekunda)

przykładowo chce w danej chwili otrzymać częstotliwość:
-dla 500 Hz (30000 obr/min)
2000000/500=4000 (czyli muszę zrobić przerwanie co 4000 tyknięć AVR w którym dioda błyśnie, tylko jak długo ma trwać błysk)

-dla 501 Hz (30060 obr/min)
2000000/501=3992,0159681 (czyli muszę zrobić przerwanie co 3992 tyknięć AVR w którym dioda błyśnie, tylko jak długo ma trwać błysk)

-dla 501,1 (30066 obr/min)
2000000/501,1=3991,2193175 (czyli muszę zrobić przerwanie co 3991 tyknięć AVR w którym dioda błyśnie, tylko jak długo ma trwać błysk)

-dla 501,2 (30072 obr/min)
2000000/501,2=3990,4229848 (czyli muszę zrobić przerwanie co 3990 tyknięć AVR w którym dioda błyśnie, tylko jak długo ma trwać błysk)

Tym sposobem o ile ma to prawo działać mogę uzyskać dokładność 6 (12) obr/min, chyba żeby ewentualnie coś gdzieś przemnożyć lub podzielić w obliczeniach, aby zwiększyć dokładność.

Co o tym myślicie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lip 2016, o 13:28 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Odwołuję swoją wypowiedź z czwartego postu.

Dopiero teraz doczytałem, że chodzi o 50000 obrotów na minutę a nie na sekundę :D
50000 obrotów na minutę daje nam częstotliwość ~800Hz, co z pewnością jest do zrobienia na atmedze z całkiem niezłą dokładnością :)

Odnośnie czasu trwania błysku -> na pewno musi on być znacznie krótszy od okresu najwyższej spodziewanej częstotliwości (1/800Hz = 1,25ms). Doboru trzeba dokonać eksperymentalnie w zależności od mocy użytego światła - możesz zacząć od około 1ms i zmniejszać do momentu aż światło przestanie być wystarczająco jasne.
Ewentualnie można by skalować czas świecenia w zależności od jego częstotliwości - przykładowo wypełnienie 10%.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lip 2016, o 21:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

a ja tak sobie myślę,
skoro obroty max 50 000, czyli 833,333.. Hz.
precyzja około 1 (stopień) czyli * 360 = 300 000 HZ.

rezonator 19200 -> preskaler 64 = 300 000 Hz.

licznik od 20 obr/min czyli do 3s, 0,33... Hz -> 900 000 impulsów.

to może licznik programowy o zakresie 900000, z częstotliwością 300000 Hz impuls, i zaświecenie diody w zakresie od :
900000 impulsów -> 20rpm/min // co 3 sek
do
360 impulsów -> 50000 rpm/min
z precyzją 1 stopień.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2016, o 09:43 
Offline
Użytkownik

Dołączył(a): 26 cze 2016
Posty: 186
Pomógł: 7

Jeszcze jeden ważny problem do rozwiązania tu widzę. Dla uzyskania dokładności trzeba zastosować licznik 16 bitowy, czyli masz ponad 60000 różnych częstotliwości, w praktyce nie będzie podziału przez małe liczby, więc powiedzmy 50000 różnych nastaw. Trzeba przewidzieć ustawianie zgrubne i precyzyjne. To może być uciążliwe, nie wiem czy nie lepiej zastosować jakiś czujnik i mierzyć okres czy częstotliwość zależnie co da lepsza precyzję. Chyba, że to musi być stroboskop.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2016, o 22:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Tu jest c.d. projektu.
http://forum.atnel.pl/topic16020.html
tak zdecydował autor. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO