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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 17 lip 2025, o 17:14


    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 ] [ Zaznacz wszystko ]
    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: 259
    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 12 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