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

Metronom świetlny z ośmioma źródłami światła

15 Wrz 2015 20:43 1422 14
  • Poziom 6  
    Witam serdecznie! Proszę o pomoc w skonstruowaniu domowej roboty metronomu świetlnego z regulacją BPM. Znalazłem w internecie całe mnóstwo tego typu projektów, lecz w większości przypadków elementem wyznaczającym równy takt, jest głośnik. Mnie zależy wyłącznie na efekcie świetlnym. Docelowo chciałbym, aby takt wyświetlało osiem źródeł światła (np. diody lub żarówki LED), ustawionych w poziomym rzędzie. Miałoby to działać następująco: dioda #1 świeci przez X czasu ==> jednocześnie gaśnie dioda #1 i zaświeca się dioda #2 ==> dioda #2 świeci również przez X czasu ==> gaśnie dioda #2 i zaświeca się #3 ==> #3 świeci przez X czasu i tak dalej, aż do ostatniej diody, po której zgaśnięciu cały cykl rozpoczynałby się od nowa. Dałoby to efekt "przechodzenia" światła z danej diody na kolejną, w równym czasie ustawianym na przykład potencjometrem, przy czym moment przełączania danej diody na kolejną musiałby być bezzwłoczny. Widziałbym wówczas dokładnie, "w którym momencie rytmu jestem". Jest to PODSTAWA, która jest dla mnie niezbędna. Jeśli jednak nie byłoby to zbyt skomplikowane, chciałbym ten podstawowy układ rozbudować o dodatkową opcję wyboru metrum, np. 4/4, 6/4 itp. Polegałoby to na tym, że pod diodami #4 #5, #6, #7 i #8 znajdowałyby się wyłączniki. Wyłączenie danej diody powodowałoby wykluczenie jej z całego cyklu, czyli przykładowo: po wyłączeniu wyłączników diody #7 i #8, cykl dobiegałby do diody #6 i po jej zgaśnięciu rozpoczynałby się od nowa, czyli diody #1. Samo wyłączenie źródła światła jak wiadomo nic nie da, bo przez moment poprostu nie będzie świecić nic, cykl nadal będzie obejmował 8 diod, a nie tak jakbym chciał, czyli przykładowo tylko 6. Jest to taki mój wytwór wyobraźni, który nie wiem czy jest prosty czy skomplikowany w konstrukcji. Skracanie metrum, czyli wykluczanie kolejnych diod z cyklu, mogłoby się również odbywać za pomocą jakiegoś przełącznika obrotowego, który wykluczałby diody kolejno od końca, czyli najpierw #8, następnie #8 i #7, #8 #7 i #6 i tak dalej. Ostatecznie byłbym w stanie skonstruować takie urządzenie obejmujące jedynie PODSTAWĘ w oparciu o wolnoobrotowy silniczek, który jakimś ramieniem cyklicznie dotykałby wyłącznika bistabilnego, a ten z kolei powodowałby efekt "załącz/wyłącz", ewentualnie "załącz#1/załącz#2", realizowane przekaźnikami. Problem w tym, że tutaj również nie wiem czy dałoby się tego typu układ zbudować pod osiem źródeł światła, a nie tylko dwa. Może wystarczy poprostu użyć przerywacza kierunkowskazów samochodowych i odpowiednio ze sobą połączonych przekaźników ? Jakie są Wasze pomysły w tej sprawie ? Z góry dziękuję za zainteresowanie ;)
  • Poziom 33  
    Pomysł jest i zaspokaja wszelkie tego typu projekty.
    Nazywa się mikrokontroler.
    Można co prawda próbować coś składać z różnych układów cyfrowych...ale po co się męczyć.
    Kombinowanie z jakimiś wolnoobrotowymi silniczkami...takie rozwiązania królowały jakieś 100 lat temu.
    Polecam więc naukę programowania- na początek mogą to być AVRy programowane w C lub prostsza do "ogarnięcia" forma tj. Arduino.
    Polecam stronę [..ciach..] z której dowiesz się jak wystartować.

    Moderowany przez adambyw:

    3.1.10. Nie reklamuj stron internetowych lub usług w jakiejkolwiek formie.

  • Poziom 36  
    Nie programuję mikrokontrolerów (niestety) ale lata temu robiłem (,,analogowe'' czyli na typowych TTL-ach) zegary, do zegara potrzebne było ,,wahadło'', poszukaj schematu ,,wahadła analogowego'' (był w którymś z numerów RiK), osiem diod zapalających się kolejno od lewej do prawej a potem od prawej do lewej (zawsze świeci jedna dioda z ośmiu), to jest prawie to czego potrzebujesz, wystarczają chyba cztery typowe TTL-e, do tego generator na 555 i potencjometr (trzeba go wyskalować, z użyciem normalnego metronomu, aby pokazywał typowe tempa) do regulacji prędkości przemiatania diod.
  • Poziom 38  
    Witam, skoro "robiłeś na układach TTL" to w czym problem, 555/7400 + 7490 + 7442/7445, co prawda efekt przejścia będzie skokowy. Można by się pokusić o generator taktujący z regulacją wypełnienia, co powinno wpłynąć na czas świecenia danej diody.
    Pozdrawiam.
  • Poziom 33  
    cirrostrato napisał:
    ,,analogowe'' czyli na typowych TTL-ach

    Rozumiem co Kolega miał na myśli ale to stwierdzenie mnie rozbawiło- układy serii TTL są układami cyfrowymi (ale to tak na marginesie).
    Ja mimo wszystko będę lobbował za użyciem mikrokontrolera.

    Kolega cirrostrato spotkał układ który działa podobnie a kolega viayner proponuje jakieś modyfikacje które mają zbliżyć tą koncepcję do założeń.
    To trochę tak jak ktoś chciał by mieć konia, a ktoś inny proponuje mu byka, natomiast trzeci twierdzi, że jak by bykowi wsadzić na grzbiet siodło to nawet będzie konia przypominał.

    Oczywiście - tego typu założenia można zrealizować w oparciu o układy cyfrowe ale będzie to projekt dość złożony i bez możliwości modyfikacji jego działania po zaprojektowaniu i zlutowaniu.
    Z opisu wynika, że realizacja założeń (wszystkich) przy zastosowaniu mikrokontrolera nie będzie należała do bardzo skomplikowanych.
    Ostatecznie można komuś zlecić napisanie takiego programu na mikrokontroler a samemu wykonać pod niego całą resztę.
  • Moderator Akustyka
    Zastosowanie mikroprocesora będzie najlepsze w Twoim wypadku. Mały wyświetlacz LCD, enkoder czy 3 przyciski, do tego ile tam diod potrzebujesz. I będziesz mógł w tym obsłużyć tempa triolowe, trójkowe, ósemkowe, szesnastkowe, i inne mniej popularne jak 9/8 11/16 itp. Dołożenie opcjonalnego głośniczka to będzie żaden problem.
    Wybór tempa będziesz miał z wyświetleniem jego wartości na wyświetlaczu. Na wyświetlaczu LCD możesz wyświetlić sobie też aktualną pozycję (czyli teraz jest 1/4, teraz 3/4 itp). Albo można zastosować wyświetlacze 7 segmentowe LED które będą lepiej widoczne z większej odległości niż LCD.
    Będziesz mógł zrobić sobie przełącznik do nabijania tempa [tap tempo].
    Wybór tempa potencjometrem to też nie problem, bo większość µC posiada przetworniki AD.

    Koszt sprzętowy będzie chyba relatywnie najmniejszy a funkcjonalność nieproporcjonalnie większa niż na układzie 555, silniczkach czy innych przerywaczach. Wszystko spokojnie złożysz na małej płytce uniwersalnej, zasilanej z baterii.

    Jak wcześniej nie programowałeś to można spróbować. Relatywnie najniższy koszt startu w µP to wejście w AVR'y. Kupujesz programator usbasp za kilkanaście złotych, Atmegę16, płytkę prototypową, garść diod oporników i kabelków, i w całości zmieścisz się poniżej 40zł.
  • Poziom 36  
    Ja zaproponowałem układ na TTL-ach (wiem, że to cyfrowe ale dziś wielu ,,młodych'' uważa, że układ złożony z wielu układów cyfrowych a nie na jednym mikroprocesorze to układ ,,analogowy'', stąd cudzysłów...), kilka godzin i działa, wy zaproponowaliście, na początek, amatorowi do wykonania jednostkowego układu naukę programowania(?), jeśli to zdaniem niektórych takie proste, napiszcie odpowiednie oprogramowanie pod jakiś taniutki mikroprocesor. Ale teraz zacznie się narzekanie, ile taki program MUSI kosztować. Pozdrawiam zainteresowanych.
  • Moderator Akustyka
    cirrostrato napisał:
    amatorowi do wykonania jednostkowego układu naukę programowania(?)

    Ja tak zaczynałem i jakoś się to później przydaje. A mój pierwszy program na mikroprocesor to lampa LED z obsługą transmisji DMX.
    Samo mruganie diodami jest banalnie proste.
    Taniutki procesor, proszę Atmega8 - około 6zł. Plus programator 14zł (przyda się na zaś). Do tego resztę, jak płytka, diody, rezystory i kondensatory, ale to ten sam koszt (jak nie mniejszy) co w układzie bez procesora.
    Jeżeli @rademenes91 wykaże zainteresowanie takim rozwiązaniem z pewnością znajdzie pomoc. W jego opisie widnieje
    rademenes91 napisał:
    technik elektryk
    Więc nie traktował bym kolegi jako całkowitego amatora. Już kilkanaście lat temu w technikach prowadzono podstawową naukę programowania, czy to w c, w pascalu czy choćby basicu, co daje jakąś bazę do wykonania takiego projektu.
  • Poziom 6  
    Przede wszystkim dziękuję za niemałe zainteresowanie tematem ;) Jeśli chodzi o moje umiejętności programowania, w technikum "coś" tam było. To "coś" to program Logic Master (nie wiem tylko jaki tam jest język programowania) oraz komputer przemysłowy z wyświetlaczem i ośmioma programowalnymi przyciskami. My żadnych cudów na tym zestawie nie robiliśmy ze względu na ograniczoną ilość godzin lekcyjnych na to przeznaczonych. Najbardziej zaawansowany program to była sygnalizacja świetlna na przejściu dla pieszych, z wywołaniem przez pieszego, trybem awaryjnym i chyba trybami "dzień/godziny szczytu/noc", ale przy odpowiedniej ilości czasu ponoć dało radę na tym zrobić przykładowo całą sygnalizację świetlną na skrzyżowaniu. Tak zwane "klepanie drabinek" (tak to nazywał nauczyciel) nie sprawiało mi większych problemów, ale też programy nie były zbyt skomplikowane. Nawet na potrzeby tego jednego bieżącego projektu (metronom), byłbym w stanie sobie poprzypominać conieco lub może nauczyć się innego języka programowania. Taka umiejętność może się przydać w przyszłości. Chyba że wymaga to nauki trwającej ponad pół roku, wówczas chyba zleciłbym komuś innemu napisanie programu. Istotne są dla mnie również koszta, ale rozumiem że "zmieszczenie się w 40zł" oznacza zakup wszystkich elementów, które są potrzebne do niniejszego projektu, a nie tylko tych które potrzebne są do nauki ? Pomyślałem również, że skoro te mikrokontrolery to takie "mądre" urządzenia, to może dałoby się mój pomysł rozbudować o jeszcze jedną rzecz ? Mianowicie dwie dodatkowe diody, z czego jedna (zielona) mrugałaby z każdym kolejnym bitem, a druga (czerwona) zawsze tylko z ostatnim. Przykład 1: metrum 4/4, dioda zielona mruga razem z diodami #1, #2, #3, a czerwona tylko razem z diodą #4. Analogicznie przykład 2: metrum 6/4, dioda zielona mruga tylko razem z diodami od #1 do #5, natomiast czerwona tylko razem z diodą #6.
  • Moderator Akustyka
    rademenes91 napisał:
    Chyba że wymaga to nauki trwającej ponad pół roku,

    Chyba że będziesz bardzo oporny w nauce. Mówimy tu o podstawach podstaw czyli o mruganiu diodami w zależności od czasu. Czyli będzie Ci potrzebna wiedza jak sterować portami wejścia i wyjścia, i przyda się obsługa timera, żebyś miał lepszą stabilność czasu.

    rademenes91 napisał:
    Mianowicie dwie dodatkowe diody, z czego jedna (zielona) mrugałaby z każdym kolejnym bitem, a druga (czerwona) zawsze tylko z ostatnim.

    Bez problemu. Ale możesz zastanowić się nad innym rozwiązaniem jak np króciutkie mrugnięcie wszystkimi diodami. Z procesora stosując proste PWM możesz też sterować jasnością diod.

    rademenes91 napisał:
    zawsze tylko z ostatnim.

    Z reguły daje się na pierwszym a nie ostatnim.

    rademenes91 napisał:
    ale rozumiem że "zmieszczenie się w 40zł" oznacza zakup wszystkich elementów, które są potrzebne do niniejszego projektu

    Kwestia jak bardzo będziesz chciał go rozbudować. Z samymi ledami powinieneś spokojnie się zmieścisz. Przy czym na przyszłość zostanie Ci programator i ewentualnie płytka stykowa do innych prototypów. Są to nie tyle rzeczy do nauki, do rzeczy konieczne do komunikacji procesor-komputer.

    Sam układ będzie prosty. Procesor praktycznie nie potrzebuje żadnych zewnętrznych elementów do pracy. Dla pewności stosuje się 1-4 małe kondensatory do filtrowania zasilania. Do tego płytka uniwersalna na której zbudujesz układ. Sam procesor dobrze osadzić w podstawce żebyś mógł go wyciągnąć do programowania (choć można go też programować w płytce). Jak będziesz zasilał? Jak z baterii 9V to potrzebny będzie stabilizator 78L05, można też z 2-3 baterii AA (tu trzeba sprawdzić w jakim zakresie zasilania może pracować dany model procesora), w tedy będzie on zbędny.
    Żeby podłączyć po jednym ledzie do procesora potrzebujesz jeszcze do każdej po jednym rezystorze ok 330&Omega. Do obsługi wyjścia tyle potrzebujesz.

    Ilość obsługiwanych diod zależy tylko od wolnych wyjść procesora. W przypadku małego Atmega8 masz 23 wyjścia. Z czego też kilka trzeba użyć na sterowanie procesorem (tempo, metrum) i ewentualnie obsługę wyświetlacza.
    A jak stwierdzisz że ma za mało portów to możesz wziąć większy procesor. Np Atmega16 - 32 wyjścia. A jak za duży to coś z segmentu attiny. Jednak czasami lepiej wziąć większy ze względu na wygodę rozbudowy i często większą liczbę wewnętrznych funkcji (timery, PWM itp.)

    Tak więc musisz zacząć od założeń projektu:
    - ile chcesz mieć diod i jakie mają spełniać funkcje
    - jak chcesz sterować tempem i wyborem metrum
    - przycisk tap tempo
    - potencjometr
    - przyciski sterujące
    - enkoder
    - czy chcesz wyświetlacz LCD (5-30zł) lub Led (kilka zł ale zajęte dużo portów) z wartością BPM/tempa
  • Poziom 6  
    Póki co nie znam wszystkich możliwości tego typu procesora, ale wiem co jest mi potrzebne do tego metronomu więc zacznę może od założeń:
    - ilość diod: 10 (8 do "przelatywania", 2 do mrugania w rytm bitu pierwszego i pozostałych)
    - zasilanie: prawdopodobnie zasilacz sieciowy, ale jak mniemam napięcie zasilania powinno wynosić 5VDC ?
    - wyświetlacz LCD lub LED - póki co niepotrzebne
    - sterowanie tempem: potencjometr
    - wybór metrum: jeśli się da, chciałbym użyć przełącznika który wygląda jak potencjometr, lecz działa skokowo, nie ma granicy min/max i działa na zasadzie zwierania poszczególnych nóżek (nóżek jest tyle, ile pozycji przełącznika)
    - przycisk "tap tempo" - jak najbardziej może być (wybranie funkcji "tap tempo" mogłoby być jedną z opcji na przełączniku wyboru metrum, wówczas zamiast odgórnie narzuconego metrum, ustalałbym je aktywnym wtedy przyciskiem "tap tempo")

    Jako, że nigdy wcześniej nie "bawiłem" się z takimi rzeczami, ponownie mam kilka pytań.
    1. Jakiego języka programowania mogę użyć, żeby zaprogramować Atmegę i jak wygląda sprawa z programami komputerowymi (są darmowe czy płatne) ?
    2. Czy dobrze kombinuję ze sposobem programowania ? Sposób 1: procesor można wlutować w płytkę, ale wówczas trzeba będzie wlutować również gniazdo komunikacyjne (serwisowe), które poprzez "taśmę" łączy się z programatorem usbasp, po to aby procesor zaprogramować. Sposób 2: do płytki można wlutować tzw. socket, aby później sam procesor tylko do niego wsadzić, z możliwością ponownego wyjęcia, przy czym aby procesor zaprogramować, należy wsadzić go do socket'u w programatorze usbasp. Te programatory usbasp mają wbudowane socket'y do procesorów czy tylko gniazda na "taśmę" ? Może są i takie i takie ?
    3. Pytanie czysto techniczne: jeżeli napięcie zasilania wynosi 5VDC, a napięcie diody wynosi 3VDC, to rozumiem że to napięcie jest obniżane przez sam procesor czy przez wspomniane wcześniej rezystory (po jednym dla każdej diody) ?

    Mam świadomość, że moje pytania mogą być laickie czy też banalne jak na elektryka po technikum, ale jeśli już mieliśmy kontakt z tego typu rzeczami w szkole, to były to od razu konkretne, szablonowe działania, a banalnych podstaw nie było wcale bo nie było czasu, dlatego proszę o wyrozumiałość.
  • Pomocny post
    Moderator Akustyka
    rademenes91 napisał:
    Póki co nie znam wszystkich możliwości tego typu procesora,

    Jest ich więcej niż potrzebujesz ;)

    rademenes91 napisał:
    1. Jakiego języka programowania mogę użyć, żeby zaprogramować Atmegę i jak wygląda sprawa z programami komputerowymi (są darmowe czy płatne) ?

    Atmel daje potężne narzędzie Atmel Studio. Jest darmowe, do ściągnięcia po wcześniejszej rejestracji. Środowisko oparte jest na języku C, C++ oraz assemblerze.
    rademenes91 napisał:
    Sposób 1: procesor można wlutować w płytkę, ale wówczas trzeba będzie wlutować również gniazdo komunikacyjne (serwisowe), które poprzez "taśmę" łączy się z programatorem usbasp, po to aby procesor zaprogramować. Sposób 2: do płytki można wlutować tzw. socket, aby później sam procesor tylko do niego wsadzić, z możliwością ponownego wyjęcia, przy czym aby procesor zaprogramować, należy wsadzić go do socket'u w programatorze usbasp. Te programatory usbasp mają wbudowane socket'y do procesorów czy tylko gniazda na "taśmę" ? Może są i takie i takie ?

    Można i tak i tak. Do programowania wykorzystuje się normalne porty procesora. Czasami połączenia tych portów w urządzeniu uniemożliwią programowanie. Ja programuję na płytce stykowej.
    Najczęściej USBasp są zakończone taśmą (kanda). Stosowanie programatora z podstawkami było by dość drogie. Standard ten obsługuję potężną gałąź procesorów o różnych rozmiarach, podstawkach i pinoucie.
    rademenes91 napisał:
    3. Pytanie czysto techniczne: jeżeli napięcie zasilania wynosi 5VDC, a napięcie diody wynosi 3VDC, to rozumiem że to napięcie jest obniżane przez sam procesor czy przez wspomniane wcześniej rezystory (po jednym dla każdej diody) ?

    Rezystory stosuje się bardziej żeby nie przeciążyć portu procesora. Nie mniej zastosowanie ich wystarczy dla standardowych ledów. Nie mówimy o ledach mocy.

    rademenes91 napisał:
    - zasilanie: prawdopodobnie zasilacz sieciowy, ale jak mniemam napięcie zasilania powinno wynosić 5VDC ?
    Procesory pracują najczęściej od 3.3 do 5Vdc

    rademenes91 napisał:
    - wybór metrum: jeśli się da, chciałbym użyć przełącznika który wygląda jak potencjometr, lecz działa skokowo, nie ma granicy min/max i działa na zasadzie zwierania poszczególnych nóżek (nóżek jest tyle, ile pozycji przełącznika)

    To Ci zajmie bardzo dużo nóżek procesora. Wygodniejsze chyba będzie zastosowanie enkodera obrotowego, który zajmie ci 2 nogi procesora. Masz 8 diod. Do każdej możesz "przypisać" konkretne metrum. Enkoderem będziesz "przesuwał" świecącą diodę która będzie pokazywała wybór konkretnego metrum. Takie rozwiązanie wydaje się chyba rozsądniejsze i relatywnie tańsze.

    Czy przewidujesz przyciski start/stop?

    Powinna wystarczyć ci atmega8. Schemat z grubsza coś w tym stylu:

    Metronom świetlny z ośmioma źródłami światła



    Edytuj

    Tak sobie myślę że chyba zamiast potencjometru można by tempo obsłużyć tym enkoderem, ze skokiem co 1bpm. Wciśnięcie przycisku enkodera przełączało by tempo/metrum.
  • Poziom 6  
    1. Rozumiem, że płytka stykowa pełni fukcję czegoś w rodzaju uniwersalnego socketu, gdzie przy każdym programowaniu trzeba ręcznie łączyć piny ? Skąd zatem przy takim rozwiązaniu wiadomo, gdzie i jak podłączyć taśmę wychodzącą z programatora ? Jest na to jakaś reguła ?
    2. Enkoder... poczytałem o zasadzie działania tego elementu, ale znów mam pytanie. Obrót enkodera generuje impulsy. Są one zliczane przez procesor, który na podstawie ich ilości "wybiera" daną opcję, czy najpierw przez jakiś układ sumujący wbudowany w enkoder, który zamienia konkretną ilość impulsów na sygnał inny niż impulsowy i dopiero wtedy wysyła go do procesora ? Wydaje mi się że w tym rozwiązaniu, wyłączenie i ponowne włączenie układu powodowałoby zresetowanie wybranego metrum ? Oczywiście nie jest to żadna przeszkoda, ale tak jak wspomniałeś, wybór danego metrum musiałby być wyświetlany przez diody lub wyświetlacz.
    3. Ustawianie metrum oraz tempa jednym enkoderem byłoby bardzo dobrym rozwiązaniem. W tym przypadku chyba jednak lepiej byłoby zastosować jakiś wyświetlacz (na przykład LCD z kalkulatora). Nieporównywalnie łatwiej byłoby odczytać zarówno metrum jak i tempo na wyświetlaczu, a nie na diodach.

    4. Przycisk start/stop również chciałem zaproponować, ale niestety mi to umknęło.

    5. Jeśli chodzi o działanie metronomu, najwygodniej byłoby dla mnie gdyby tempo można było regulować bez zatrzymywania cyklu, tzn. w trakcie "biegu" diod. Przypuszczam, że nie jest to żaden problem ?

    Początkowo przewidywałem, że metronom będzie urządzeniem bardzo prostym (bez wyświetlania tempa czy metrum), tak samo podstawowym jak moje umiejętności muzyczne, ale skoro jeden procesor daje więcej możliwości niż potrzebuję to dlaczego miałbym nie skorzystać ;)

    P.S. Enkoder posiada pozycje min/max czy nie ?
  • Pomocny post
    Moderator Akustyka
    rademenes91 napisał:
    1. Rozumiem, że płytka stykowa pełni fukcję czegoś w rodzaju uniwersalnego socketu, gdzie przy każdym programowaniu trzeba ręcznie łączyć piny ? Skąd zatem przy takim rozwiązaniu wiadomo, gdzie i jak podłączyć taśmę wychodzącą z programatora ? Jest na to jakaś reguła ?

    Tak to rodzaj uniwersalnego socketu. W kanda masz 4 podstawowe piny MISO, MOSI, RST, SCK oraz niezbędne Vcc oraz GND.
    Metronom świetlny z ośmioma źródłami światła
    Wygoogluj sobie pinout danego procesora, i łączysz wyjścia taśmy do odpowiednich nóżek procesora.
    Metronom świetlny z ośmioma źródłami światła
    Co więcej po podłączeniu tych 6 kabelków możesz nie tylko programować ale uruchamiać układ na płytce stykowej.
    Zobacz sobie na filmik poniżej jak to wygląda. Tak uruchamiałem projekt obsługi lampy LED. Możesz zobaczyć taśmę Kanda, połączenie jej do procesora, na płytce LED'y połączone z procesorem przez rezystory. Fragment programatora zobaczysz wpięty do komputera. Pod płytką stykową jest sterownik świateł DMX na USB, to Cię nie interesuje.

    Link


    rademenes91 napisał:
    3. Ustawianie metrum oraz tempa jednym enkoderem byłoby bardzo dobrym rozwiązaniem. W tym przypadku chyba jednak lepiej byłoby zastosować jakiś wyświetlacz (na przykład LCD z kalkulatora). Nieporównywalnie łatwiej byłoby odczytać zarówno metrum jak i tempo na wyświetlaczu, a nie na diodach.

    Owszem. Łatwiej i czytelniej. Na początku nie chciałeś wyświetlania tempa. Dla tego to pomijałem. A jeśli zdefiniujesz powiedzmy 8 podstawowych metrum (4/4, 3/4, 6/8 itp), to możesz je wyświetlić świecąc odpowiednią diodą. W tedy te diody które masz będą spełniały 2 funkcje.
    rademenes91 napisał:
    5. Jeśli chodzi o działanie metronomu, najwygodniej byłoby dla mnie gdyby tempo można było regulować bez zatrzymywania cyklu, tzn. w trakcie "biegu" diod. Przypuszczam, że nie jest to żaden problem ?

    Nie problem. Odmierzany czas będzie obsługiwany licznikiem, to zmiana wartości licznika od razu wpłynie na działanie metronomu.

    rademenes91 napisał:
    2. Enkoder... poczytałem o zasadzie działania tego elementu, ale znów mam pytanie. Obrót enkodera generuje impulsy. Są one zliczane przez procesor, który na podstawie ich ilości "wybiera" daną opcję, czy najpierw przez jakiś układ sumujący wbudowany w enkoder, który zamienia konkretną ilość impulsów na sygnał inny niż impulsowy i dopiero wtedy wysyła go do procesora ?

    Procesor tylko odczytuje z enkodera czy przekręciłeś go w prawo czy w lewo. Nic więcej. Przekręciłeś w prawo to zwiększa tempo o 1. W lewo to zmniejsza o 1. I tyle. Bo enkoder to nic innego jak dwa przełączniki przełączane w odpowiedniej kolejności. Rozpoznaje się to według kodu graya. Zerknij na schemat jak zaproponowałem podłączenie enkodera.
    rademenes91 napisał:
    P.S. Enkoder posiada pozycje min/max czy nie ?

    Nie. Typowym przykładem enkodera obrotowego jest pokrętło scroll w myszy. Działa dokładnie tak samo, z tym że zamiast styków elektrycznych jest układ optyczny.

    rademenes91 napisał:
    Wydaje mi się że w tym rozwiązaniu, wyłączenie i ponowne włączenie układu powodowałoby zresetowanie wybranego metrum ? Oczywiście nie jest to żadna przeszkoda, ale tak jak wspomniałeś, wybór danego metrum musiałby być wyświetlany przez diody lub wyświetlacz.

    I tak i nie. Wyłączenie/reset spowoduje utratę danych z pamięci sram, ale też można te dane (metrum i tempo) zapisać w wbudowanej pamięci nieulotnej EEPROM. Tym samym po włączeniu procesor może odczytać ostatnio zapisane ustawienia.
    Trzeba tylko wziąć pod uwagę że zapis do pamięci eeprom jest możliwy przez około 100 000 cykli. Dla tego warto by ograniczyć zapis zmian do nie częściej niż np 2s. Kolosalnie to wydłuży żywotność procesora w porównaniu do próby zapisu przy każdej zmianie.
  • Poziom 6  
    Wygląda na to, że wszystkie niezbędne informacje już uzyskałem. Teraz pozostaje mi wyposażyć się w kilka gadżetów no i studiować C++. Dziękuję jeszcze raz za zainteresowanie tematem i pomoc. Pozdrawiam ;)