Próbuję wymyślić, jak zaprojektować to z przyzwoitą precyzją, ale mam problem z rozpoczęciem. Wcześniej pracowałem z 555 cali, ale nie do precyzyjnego zliczania, które można modyfikować krokowo.
Próbuję wymyślić system 5 V, który dokładnie pulsuje na wyjściu + 5 V, czyli mierzone i wyświetlane w impulsach na minutę lub uderzeniach na minutę między 60 a 240. BPM powinien być regulowany za pomocą 2 chwilowych przycisków, które będą ustawiać stopnie timera o +1 i -1. Byłoby również świetnie, gdyby była też sekunda zestaw przycisków dla kroków +10 i -10.
Czy użycie timera 555 jest niewłaściwe? Czy jest coś bardziej precyzyjnego, którego mogę użyć do odniesienia do bramkowania? Czy istnieje już układ scalony, który Czy mogę to zrobić samodzielnie i zrobić porównanie, aby obliczyć matematykę?
Przepraszamy, że nie opublikowałem tego, co mam do tej pory. Mam wersję 80-coś na mojej płytce prototypowej i nic nie działa poprawnie, więc daleko. Chciałbym również uniknąć konieczności programowania ROM-ów i trzymania się dyskretnych układów scalonych. Znowu NIE chcę programować chipów.
Myślę, że to, czego szukam, może być generatorem funkcji z licznik częstotliwości, ale nie wiem, czy to najlepszy sposób.
Komentarze
- 555s i dokładność nie idą w parze. To znacznie lepiej pasuje do mikrokontrolera (Arduino itp.) Z oscylatorem kwarcowym.
- @BrianDrummond I ' m próbuję trzymać się z dala od Adruino i trzymać rzeczy proste i tanie …
- Myślę, że masz straszne błędne przekonanie na temat projektu opartego na MCU. Istnieje wiele możliwości wyboru komponentów MCU, które zapewniają prostotę, niski koszt i precyzję, której szukasz. Dyskretny projekt układu scalonego będzie o wiele bardziej skomplikowany w porównaniu, zwłaszcza gdy wprowadzisz przyciski i wyświetlacz do miksu. MCU może to wszystko zrobić z łatwością. Ostatnią myślą jest to, że kiedy już osiągniesz projekt oparty na MCU, nigdy nie spojrzysz wstecz na próby zrobienia ' s. Z lat 80. ' z lat 70. stylistyka dla tego typu projektów.
- @MichaelKaras To także jest coś nowego, ' nie jestem pewien, czy chcę się w to zaangażować. Dla mnie tranzystory i lampy próżniowe załatwiają sprawy lol IC ' są również w porządku, ale wciąż są dla mnie nowością. Ale MCU ' s, nie ' nawet nie wiem, od czego zacząć, i nie ' nie chcę dostać się do programowania chipów …
- Ile z tej funkcji masz na swojej płytce prototypowej dla wersji 80?
Odpowiedź
Jeśli chcesz zaimplementować coś bez użycia jakichkolwiek programowalnych części poza oscylatorem o niestandardowej częstotliwości, powinno być możliwe zbudowanie obwodu, który przyjmuje 3-cyfrową częstotliwość BCD i wysyła sygnał z taką liczbą uderzeń na minutę za pomocą oscylatora i pięciu gotowych chipów. Podaj oscylator 1092,267 Hz do CD4060, aby skalować go 16-krotnie (oscylatory w obudowie DIP w Digi-Key mają minimalną prędkość 1 MHz). Podaj ten sygnał 68 266,7 Hz w kaskadową sekwencję trzech chipów CD4527 ustawionych na tryb „ADD”, aby uzyskać sygnał wyjściowy (1-999) / 4 096 uderzeń na minutę, a następnie wprowadź sygnał wyjściowy do CD4040, aby uzyskać żądaną prędkość wyjściową a także różne wielokrotności i podwielokrotności potęgi dwóch. Wyższe odczepy pierwszego CD4060 mogą być używane do dostarczania różnych wielokrotności 66,7 Hz [być może używanych jako tony dźwiękowe].
Jeśli masz trzy pokrętła BCD, potrzebujesz tylko sześć głównych części elektronicznych, wszystkie DIP; Ceny dla ilości jeden w Digikey byłyby następujące:
3x CD4527BE -- $0.80ea ($2.40 total) 2x CD4060BE -- $0.56ea ($1.12 total) oscillator -- $3.02ea ($3.02 total) $6.54 total
Montaż na płytce o średnicy 0,1 „powinien być dość prosty, ponieważ jedynymi połączeniami innymi niż zasilanie i uziemienie byłby oscylator wyjście zasilające pierwszy CD4060, wyjście tego zasilającego wszystkie trzy CD4527, każdy z pierwszych dwóch CD4527 podaje dwa sygnały do następnego, a ostatni CD4527 podaje jeden sygnał do ostatniego CD4060.
Komentarze
- Ach tak! Teraz ' mówisz w moim języku 🙂 To idealny punkt wyjścia, którego potrzebowałem! Prosty, całkowicie sprzętowy i żadnych problemów z programowaniem. Dzięki!
- Jeśli chcesz uniknąć nawet programowalnego układu oscylatora i zrobić wszystko z ' klasycznym ' części CMOS, możesz użyć kryształu 3,2768 MHz i podzielić przez 3, używając np. 4018 i 4011, aby uzyskać zegar 1.092267 MHz. Następnie powinieneś spróbować wykonać tę samą pracę z mikrokontroler i zdecyduj, co było łatwiejsze.
- @nekomatic: Podoba mi się pomysł użycia kryształu 3,2768 MHz z funkcją dzielenia przez dwanaście (myślę, że wystarczyłoby to, aby uzyskać liczbę uderzeń na minutę w zakresie 4060; Wydaje mi się dziwne, że istnieją 14-bitowe i 24-bitowe liczniki z dostępnymi górnymi bitami, ale nic nie widziałem np.dostępne bity 18-20). Taka sama liczba chipów, ale bez niestandardowego oscylatora. Nie jestem pewien, jak pasowałby 4011, ponieważ widzę tylko siedmiosegmentowe wzory z tego. Przy okazji, innym podejściem, które mogłoby być pouczające, gdyby był dostępny programator EPROM, ale nie dla mikrokontrolera …
- … byłoby zbudowanie maszyny stanu opartej na rejestrze przesuwnym. ' Nie jestem pewien, jak duży powinien być do wskazanego celu, ale takie rzeczy mogą mieć całkiem duże możliwości. Wreszcie, kolejną interesującą obserwacją jest to, że mikroprocesor COSMAC z lat 70. miał wystarczającą logikę ładowania początkowego, aby można było go używać w konfiguracji bez pamięci ROM, jeśli ktoś wprowadził program za pomocą dziesięciu przełączników IIRC, ośmiu diod LED i przycisku. To może zajść wystarczająco daleko, aby mieć coś, co mogłoby zaprogramować nowoczesny układ równoległy EEPROM.
- @supercat 4018 arkusz danych ti.com/lit/ds/ link symboliczny / cd4018b.pdf mówi, że do podzielenia przez liczbę nieparzystą wymagane jest dodatkowe 4011, a ja po prostu zacytowałem to dosłownie – patrząc dokładniej, tak naprawdę potrzebujesz funkcji AND, którą możesz zaimplementować z kilkoma innymi możliwymi częściami lub (prawdopodobnie) dwie diody i rezystor do Vdd.
Odpowiedź
Można to łatwo zrobić za pomocą mikrokontroler. 240 BPM to 4 Hz. Użycie mikrokontrolera z urządzeniami peryferyjnymi z timerem byłoby łatwe do uzyskania dokładności w zakresie +/- 0,01%.
Zaproponuj mikrokontroler taki jak PIC lub AVR lub MSP430 z małym wyświetlaczem, przyciskami. Aby oszczędzać energię, można użyć wyświetlacza LCD, a na pokładzie są mikroskopy z kontrolerami LCD. Koszt i złożoność obwodu byłyby bardzo niskie.
Możesz prototypować to za pomocą czegoś w rodzaju Arduino.
Chociaż mógłbyś użyć 555 i podłączyć do niego licznik częstotliwości (i wyregulować pokrętłem, gdy odchyla się od częstotliwości), licznik częstotliwości najlepiej byłoby zaimplementować z mikro i dlatego łatwiej jest po prostu zsyntetyzować częstotliwość, którą chcesz poprawnie w pierwszej kolejności.
Na przykład można znaleźć projekty liczników częstotliwości wyświetlacza modułu LCD typu open source oparte na PIC16F628, ale prawdopodobnie są one nie nadające się bezpośrednio do użytku przy tak niskich częstotliwościach. Uzyskanie rozdzielczości 1 uderzeń na minutę przy użyciu prostego licznika częstotliwości wymaga 1-minutowego czasu bramki, więc liczenie okresów i matematyka byłyby lepszym podejściem – w rzeczywistości trudniejszym niż generowanie zadanej częstotliwości.
Odpowiedź
Jak powiedzieli inni, PIC lub Arduino to najlepszy wybór, ale jeśli jesteś zdecydowany unikać programowanie …
Możesz rozważyć użycie chipów CMOS z oscylatorem wysokiej częstotliwości z kryształem dla stabilności. Następnie użyłbyś chipa licznika do zliczania impulsów i podania aktualnego zliczenia na pinach wyjściowych. być nakarmionym jakąś logiką, aby dać impuls wyjściowy o określonej liczbie i zresetować licznik.
Oprócz tego potrzebowałbyś kilku innych liczników, aby ustawić punkt resetowania dla porównania. . Jeśli z przyjemnością policzyłeś 100, 200, 300, 400 itd., Impulsów może to być wykonalne, ale problem polega na tym, że chcesz określić uderzenia na minutę, więc musisz obliczyć 1 / BPM, aby uzyskać równe liczby Kroki BPM.
Pomyśl jeszcze raz o programowaniu. Mikro „radzi sobie dobrze przez ostatnią chwilę. Myślę, że” przyjmie to!
Komentarze
- Jeśli można użyć niestandardowa częstotliwość oscylatora, nie ' nie wydaje mi się, żeby sprawy układały się zbyt trudno, aby przekonwertować dziesiętną wartość BPM na częstotliwość przy użyciu gotowego CMOS. Nawet użycie nudnej częstotliwości 1,00 MHz nie ' nie byłoby zbyt złe, chociaż konieczne byłoby posiadanie łańcucha dzielnika, który mógłby podzielić przez 60 000 (tj. 240 x 250). Właściwie, pomyśl o tym, że może to być wykonalne w dwóch układach, dając te same części, co mój inny projekt, chociaż myślę, że posiadanie potęgi dwóch podwielokrotności może być pomocne, a dwukrotne dzielenie przez -60000 by nie ' nie wykonałby tat.
- Może, ale problem polega na tym, że za każdym razem, gdy naciskasz przycisk + lub -, musisz obliczyć nowy dzielnik i jest to ' funkcja odwrotna (1 / BPM). np. dla zegara głównego 1 MHz liczba zliczeń wyniosłaby – 60 uderzeń / min – > 1 000 000 impulsów; 61 uderzeń na minutę – > 983 606,6 impulsów; 62 uderzenia na minutę – > 968 741,9 impulsów. Uzyskanie nawet jednego przyrostu BPM będzie bardzo złożone, podczas gdy ' jest prostym obliczeniem w mikro.
- Użycie chipów mnożnika szybkości z trzema miejscami dziesiętnymi umożliwi aby wziąć 12-cyfrową wartość BCD i uzyskać wynik o wielokrotności pożądanej prędkości, który można następnie zmniejszyć za pomocą ustalonego dzielnika. Nie ma potrzeby generowania żadnej wzajemności.Używanie przycisków góra-dół i liczników do ustawiania szybkości zamiast pokręteł wymagałoby więcej obwodów, ale nie ' nie wiem, jak elastyczne jest to wymaganie.