BPM-generator met display?

Proberen uit te vinden hoe je dit met behoorlijke precisie kunt ontwerpen, maar heb moeite om hiermee te beginnen. Ik “heb eerder met 555” gewerkt, maar niet voor nauwkeurig tellen dat in stappen kan worden gewijzigd.

Ik probeer een 5 volt systeem te bedenken dat nauwkeurig een output van + 5 volt pulseert, dat wil zeggen gemeten en weergegeven in pulsen per minuut, of slagen per minuut, tussen 60 en 240. De BPM moet worden aangepast met twee kortstondige knoppen waarmee de timer +1 en -1 kan worden ingesteld. Het zou ook geweldig zijn als er ook een seconde set knoppen voor +10 en -10 stappen.

Is het gebruik van een 555-timer hier verkeerd om? Is er iets nauwkeuriger dat ik kan gebruiken om naar de poort te verwijzen? Is er al een IC die kan dit alleen doen en een vergelijking maken om de wiskunde te berekenen?

Excuses dat ik niet heb gepost wat ik tot nu toe heb gedaan. Ik heb versie 80 – iets op mijn breadboard en niets heeft zo nauwkeurig gewerkt ver. Ik wil ook wegblijven van het programmeren van roms en vasthouden aan discrete ICs. Nogmaals, ik wil GEEN chips programmeren.

Ik denk dat wat ik zoek een functiegenerator zou kunnen zijn met een frequentieteller, maar ik weet niet of dat de beste manier is om te gaan.

Reacties

  • 555s en nauwkeurigheid gaan niet samen. Dit past veel beter bij een microcontroller (Arduino enz.) Met een kristaloscillator.
  • @BrianDrummond I ‘ m proberen weg te blijven van Adruino en dingen Maar eenvoudig en goedkoop …
  • Ik denk dat je een vreselijke misvatting hebt over een op MCU gebaseerd ontwerp. Er zijn veel keuzes van MCU-componenten die de eenvoud, lage kosten en precisie opleveren waarnaar u op zoek bent. Een discreet IC-ontwerp zal in vergelijking veel gecompliceerder zijn, vooral wanneer u de knoppen en het display in de mix brengt. De MCU kan het allemaal gemakkelijk doen. Een laatste gedachte is dat als je eenmaal het op MCU gebaseerde ontwerp hebt bereikt, je nooit meer terugkijkt op het proberen om 1970 ‘ s of 1980 ‘ s te doen stijlontwerp voor dit type project.
  • @MichaelKaras Dat is ook iets nieuws waar ik ‘ niet zeker van ben dat ik erin wil komen. Voor mij krijgen transistors en vacuümbuizen dingen gedaan lol IC ‘ s zijn ook prima, maar nog steeds nieuw voor mij. Maar MCU ‘ s, ik ‘ weet niet eens waar ik daar moet beginnen, en ik weet niet ‘ wil niet in programmeerchips komen …
  • Hoeveel van deze functionaliteit heb je op je breadboard voor versie 80?

Antwoord

Als u iets wilt implementeren zonder programmeerbare onderdelen te gebruiken die verder gaan dan een oscillator met aangepaste frequentie, zou het mogelijk moeten zijn om een circuit te bouwen dat een 3-cijferige BCD-frequentie nodig heeft en levert een signaal met zoveel slagen per minuut met behulp van een oscillator plus vijf standaardchips. Voer een oscillator van 1,092,267 Hz in een CD4060 om deze met een factor 16 te verkleinen (oscillatoren met DIP-pakket bij Digi-Key hebben een minimumsnelheid van 1 MHz). Voer dat signaal van 68.266,7 Hz in een trapsgewijze reeks van drie CD4527-chips die zijn ingesteld voor de “ADD” -modus om een uitvoer van (1-999) / 4,096 bpm te verkrijgen, en voer de uitvoer daarvan naar een CD4040 om de gewenste uitvoersnelheid te krijgen evenals verschillende macht-van-twee veelvouden en deelvouden daarvan. Hogere tikken van de eerste CD4060 kunnen worden gebruikt om verschillende power-of-two veelvouden van 66,7 Hz te leveren [misschien bruikbaar als “pieptonen”].

Als je drie BCD-duimwielen hebt, zou je alleen zes belangrijkste elektronische onderdelen, allemaal DIP; hoeveelheid-één prijzen bij Digikey zouden zijn:

3x CD4527BE -- $0.80ea ($2.40 total) 2x CD4060BE -- $0.56ea ($1.12 total) oscillator -- $3.02ea ($3.02 total) $6.54 total 

De montage zou redelijk rechttoe rechtaan moeten zijn op 0,1 “-perboard, aangezien de enige andere verbindingen dan stroom en aarde de oscillator zouden zijn output die de eerste CD4060 voedt, de output van die die alle drie de CD4527 voedt, elk van de eerste twee CD4527 voedt twee signalen naar de volgende, en de laatste CD4527 voedt één signaal aan de laatste CD4060.

Opmerkingen

  • Ah ja! Nu spreek je ‘ mijn taal 🙂 Dit is het perfecte startpunt dat ik nodig had! Eenvoudig, volledig hardware en geen gedoe met programmeren. Bedankt!
  • Als je zelfs een programmeerbare oscillatorchip wilt vermijden en alles wilt doen met ‘ klassiek ‘ CMOS-onderdelen kun je een 3,2768 MHz-kristal gebruiken en delen door 3, bijvoorbeeld een 4018 en een 4011, om de 1,092267 MHz-klok te produceren. Dan zou je hetzelfde moeten proberen met een microcontroller en beslis wat gemakkelijker was.
  • @nekomatic: ik vind het een goed idee om het 3,2768Mhz-kristal te gebruiken met een deel door twaalf (ik denk dat dat voldoende zou zijn om het aantal slagen per minuut binnen het bereik te krijgen voor de 4060; Ik vind het vreemd dat er 14-bits en 24-bits tellers zijn met de bovenste bits beschikbaar, maar niets dat ik kon zien met b.v.bits 18-20 beschikbaar). Dus hetzelfde aantal chips, maar geen aangepaste oscillator. Ik weet niet zeker hoe een 4011 zou passen, omdat ik daar alleen patronen met zeven segmenten beschikbaar zie. Trouwens, een andere benadering die educatief zou kunnen zijn als je een EPROM-programmeur zou hebben, maar niet een voor een microcontroller …
  • … zou zijn om een op schuifregisters gebaseerde toestandsmachine te bouwen. Ik ‘ m niet zeker hoe groot het zou moeten zijn voor het aangegeven doel, maar zulke dingen kunnen behoorlijk krachtig zijn. Ten slotte is een andere interessante observatie dat de COSMAC-microprocessor uit de jaren 70 voldoende boot-strapping-logica had die het mogelijk was om in een ROMless-configuratie te gebruiken als men een programma binnenging met IIRC tien schakelaars, acht LEDs en een knop. Dat zou een ver genoeg kunnen zijn om iets te hebben dat een moderne parallelle EEPROM-chip zou kunnen programmeren.
  • @supercat the 4018 datasheet ti.com/lit/ds/ symlink / cd4018b.pdf zegt dat een extra 4011 nodig is om te delen door een oneven getal, en ik heb het zojuist letterlijk geciteerd – als je beter kijkt, heb je eigenlijk een EN-functie nodig die je zou kunnen implementeren met verschillende andere mogelijke onderdelen , of (waarschijnlijk) twee diodes en een weerstand naar Vdd.

Answer

Dit kan gemakkelijk worden gedaan met een microcontroller. 240 BPM is 4Hz. Door een microcontroller met timerrandapparatuur te gebruiken, zou het gemakkelijk zijn om een nauwkeurigheid in het bereik van +/- 0,01% te krijgen.

Stel een microcontroller voor zoals PIC of AVR of MSP430 met een klein display, knoppen. Een lcd-scherm zou kunnen worden gebruikt om stroom te besparen, en er zijn micros met lcd-controllers aan boord. De kosten en de complexiteit van het circuit zouden erg laag zijn.

Je kunt hiervan een prototype maken met zoiets als een Arduino.

Terwijl u zou kunnen een 555 gebruiken en er een frequentieteller aan bevestigen (en de knop aanpassen als deze van de frequentie afwijkt), kan de frequentieteller het beste worden geïmplementeerd met een micro- en daarom is het in de eerste plaats gemakkelijker om de frequentie die u wilt eenvoudigweg correct te synthetiseren.

U kunt bijvoorbeeld open-source ontwerpen voor frequentietellers voor LCD-modules vinden die zijn gebaseerd op de PIC16F628, maar ze zijn waarschijnlijk niet direct bruikbaar voor dergelijke lage frequenties. Om een resolutie van 1 BPM te krijgen met een eenvoudige frequentieteller, is een poorttijd van 1 minuut vereist, dus periodetellen en rekenen zou een betere benadering zijn – eigenlijk moeilijker dan het genereren van een ingestelde frequentie.

Answer

Zoals de anderen al hebben gezegd, is een PIC of Arduino de beste keuze, maar als je vastbesloten bent om te vermijden programmeren …

Je zou kunnen overwegen om CMOS-chips te gebruiken met een hoogfrequente oscillator met een kristal voor stabiliteit. Je zou dan een tellerchip gebruiken om pulsen te tellen en de huidige telling op de uitgangspennen te geven. Deze zouden worden aan een bepaalde logica toegevoerd om een uitgangspuls te geven bij een bepaald aantal en de teller te resetten.

Daarnaast heb je een aantal andere tellers nodig om het resetpunt in te stellen ter vergelijking. Helaas wordt het hier wat rommelig . Als je graag 100, 200, 300, 400, enz., Pulsen zou tellen, is het misschien te doen, maar het probleem is dat je slagen per minuut wilt specificeren, dus je zult 1 / BPM moeten berekenen om je tellingen voor even BPM-stappen.

Denk nog eens na over de programmering. Micros doen het de laatste tijd goed. Ik denk dat ze het “zullen aanslaan!

Reacties

  • Als je een aangepaste oscillatorfrequentie, ‘ denk ik niet dat dingen te moeilijk uitpakken voor het omzetten van een decimale BPM-waarde in frequentie met behulp van standaard CMOS. Zelfs het gebruik van een saaie frequentie van 1,00 MHz zou niet ‘ t erg zijn, hoewel het nodig zou zijn om een scheidingsketen te hebben die zou kunnen delen door 60.000 (d.w.z. 240×250). Nu ik erover nadenk, is dat misschien te doen in twee chips, wat hetzelfde aantal onderdelen oplevert als mijn andere ontwerp, hoewel ik denk dat het nuttig zou kunnen zijn om de kracht van twee sub-veelvouden te hebben en de twee-chip delen door -60000 zou niet ‘ t tat bereiken.
  • Misschien, maar het probleem is dat je elke keer dat je op de + of – knop drukt, een nieuwe deler moet berekenen en het ‘ is een wederkerige (1 / BPM) functie. bijv. voor uw 1 MHz masterklok zou het aantal tellingen – 60 BPM – > 1.000.000 pulsen zijn; 61 BPM – > 983.606,6 pulsen; 62 BPM – > 968.741,9 pulsen. Om zelfs maar stappen van één BPM te krijgen zal erg complex zijn, terwijl het ‘ een eenvoudige berekening is in een micro.
  • Het gebruik van een vermenigvuldiger met drie decimalen zal het mogelijk maken om een 12-cijferige BCD-waarde te nemen en een output te geven met een veelvoud van de gewenste snelheid die vervolgens kan worden verkleind met behulp van een vaste deler. Het is niet nodig om enige vorm van wederkerigheid te genereren.Het gebruik van op-neerknoppen en tellers om de snelheid in te stellen in plaats van duimwielen zou meer schakelingen vereisen, maar ik weet niet ‘ hoe flexibel die vereiste is.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *