dj_steel Postat Septembrie 6, 2009 Partajează Postat Septembrie 6, 2009 Salut!Fiind dj amator,as avea nevoie de un montaj care sa imi numere bpm-ul unor melodii(bpm=beats per minute).Ma gandeam daca se poate modifica un frecventmetru,ca in loc sa numere impulsurile dintr-o secunda,sa numere impulsurile dintr-un minut...eu am construit acest frecventmetru: http://homepage.eircom.net/~ei9gq/counter.html Se poate modifica softul sa devina bpm counter? Link spre comentariu
benishor Postat Septembrie 7, 2009 Partajează Postat Septembrie 7, 2009 Teoretic ar trebui sa aplici o transformare Fourier asupra semnalului si sa cauti varfurile de energie in componentele de magnitude. Ma indoiesc ca poti face asta doar cu un biet microcontroller. Poate ai putea folosi un filtru trece jos cu o frecventa de cutoff mica ( pentru a detecta bass drum-urile ), outputul cuplat la un comparator si iesirea acestuia sa joace rolul de intrare la frecventmetrul existent. Sunt doar niste idei. Link spre comentariu
dj_steel Postat Septembrie 7, 2009 Autor Partajează Postat Septembrie 7, 2009 Da,eu nu am mentionat despre filtru trece jos eventual si un trigger schmitt...astea sunt simplu de implementat,doar ca vroiam sa stiu daca se poate modifica softul frecventmetrului(el indica direct in megahertzi,am introdus semnal de la un transformator si imi indica 51 Hz,deci imi trebuie precizie cat mai mare in domeniul 0-10Hz Ex:120bmp inseamna 2hz.... http://i29.tinypic.com/2yxne53.jpg Link spre comentariu
benishor Postat Septembrie 7, 2009 Partajează Postat Septembrie 7, 2009 Inainte de a transforma rezultatul din binar in bcd, trebuie sa inmultesti cu 60. Daca dispui de rutine de adaugare si scadere ( in cazul in care rezultatul este pe mai multi bytes ), poti face usor inmultirea cu 60 ca x*64 - x*4, adica shiftare la stanga cu 6 a rezultatului si scaderea din asta a rezultatului shiftat la stanga cu 2. Link spre comentariu
dj_steel Postat Septembrie 7, 2009 Autor Partajează Postat Septembrie 7, 2009 Ma cam depaseste softul microprocesoarelor....sunt cam paralel cu softull Link spre comentariu
francezu Postat Septembrie 7, 2009 Partajează Postat Septembrie 7, 2009 Nu stiu daca te ajuta,dar daca nu ai nevoie de bpm in timp real poti sa folosesti un soft pentru PC. Incearca MixMeister BPM Analyzer,face treaba destul de buna,calculand bpm-ul pana la a doua zecimala. Link spre comentariu
dj_steel Postat Septembrie 7, 2009 Autor Partajează Postat Septembrie 7, 2009 Multumesc de pont,dar eu tin neparat sa fie independente de pc...imi trebuie in timp real sa stiu bpm-ul,asa pot sa trec pe fiecare cd in parte bpm-ul si gata...cu sincronizarea e mai greu.Pana la urma o sa incerc ceva cu filtru de rigoare+trigger schmidt+lm2917(convertor frecventa-tensiune)si un voltmetru sa vedem ce iese Link spre comentariu
Mikrosha Postat Septembrie 29, 2009 Partajează Postat Septembrie 29, 2009 Noroc! Am facut o varianta pre-pre-beta. Lucreaza ca un fel de frecventmetru, dar cu poarta de 15 secunde, si inmulteste cu 4 pentru a afisa valoarea in bpm. Oscilatorul folosit este cel intern de 8MHz.. Daca indica in plus sau in minus se poate ajusta din cod, am marcat linia care trebuie modificata. Contorul este timer1, cu intrarea pe RB6, iar timer0 este folosit pentru a masura trecerea celor 15 secunde. Atasez: fisierul sursa (pt SourceBoost C), fisierul .hex, fisierul .dsn pentru Proteus Isis. Zi-mi ce parere ai, dac-am inteles bine ce vrei sa faci, si ce sa mai imbunatatesc. Link spre comentariu
dj_steel Postat Septembrie 30, 2009 Autor Partajează Postat Septembrie 30, 2009 multumesc mult,o sa il pun direct in practica daca am timp azi si o sa vad cum functioneaza Link spre comentariu
francezu Postat Septembrie 30, 2009 Partajează Postat Septembrie 30, 2009 O mica observatie : oscilatorul intern la PIC16F628A este de 4MHz nu de 8! Pentru 8MHz trebuie cristal extern. Link spre comentariu
Mikrosha Postat Septembrie 30, 2009 Partajează Postat Septembrie 30, 2009 O mica observatie : oscilatorul intern la PIC16F628A este de 4MHz nu de 8! Pentru 8MHz trebuie cristal extern.Coreeect! Deci if (sec==1860) poarta(); se inlocuieste cu if (sec==930) poarta();Radu cere-mi p? mess .hex-ul daca n-ai compilator instalat. Link spre comentariu
dj_steel Postat Septembrie 30, 2009 Autor Partajează Postat Septembrie 30, 2009 Pana una alta incerc sa imi fac programatorul sa functioneze...i-am schimbat cablu si nu mai imi vede nici un microprocesor....si ai banuit bine....nu am compiltorul instalat Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum