home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


Real-Time Audio Spectrum Analyser
     
Autore Messaggio opzioni
mastertechnology




una ogni 10 livelli


postato il:
21.11.2018, alle ore 19:50
picmicro675:
Stringi un po il codice, che spagina.
Metti la linea di marcatura a 80 colonne.
Poi manca un po per venire al sunto, che hai visto del programma da dove sei partito ?


Mi sa che devo fare tutto da capo. Perché il codice non è stato scritto per mikroC è già tanto che riesco a usare il mikroC figuriamoci se riesco a riscrivere il codice.



L'altruismo rende forti.
https://www.youtube.com/channel/UC5yld_Lh_D9ffo_GgxMIiqg?view_as=subscriber
mastertechnology




una ogni 10 livelli


postato il:
21.11.2018, alle ore 19:54
il sorgente che ho io è stato scritto per leggere ampiezza e frequenza per poi dare i valori su di un display. invece io voglio far accendere dei led in corrispondenza della frequenza, a me l'ampiezza non mi interessa, quindi devo prima leggere la frequenza del segnale poi dire al pic in corrispondenza di una certa frequenza cosa accendere, adesso sto facendo prima i calcoli delle frequenze che mi intessano poi continuo con il codice, ho 27 led a disposizione disposti in un cubo 3X3.


L'altruismo rende forti.
https://www.youtube.com/channel/UC5yld_Lh_D9ffo_GgxMIiqg?view_as=subscriber
mastertechnology




una ogni 10 livelli


postato il:
21.11.2018, alle ore 20:45
void Lettura() {
                //  1 : 312 - 1388
                //  2 : 1388 - 2464
                //  3 : 2464 - 3540
                //  4 : 3540 - 4616
                //  5 : 4616 - 5692
                //  6 : 5692 - 6768
                //  7 : 6768 - 7844
                //  8 : 7844 - 8920
                //  9 : 8920 - 10000
                }

Questi sono i tagli di frequenza che devo leggere per accendere i LED. A questo punto non mi serve più l'adc posso usare anche il PIC16F628A.



L'altruismo rende forti.
https://www.youtube.com/channel/UC5yld_Lh_D9ffo_GgxMIiqg?view_as=subscriber
mastertechnology




una ogni 10 livelli


postato il:
21.11.2018, alle ore 22:43
mastertechnology:
void Lettura() {
                //  1 : 312 - 1388
                //  2 : 1388 - 2464
                //  3 : 2464 - 3540
                //  4 : 3540 - 4616
                //  5 : 4616 - 5692
                //  6 : 5692 - 6768
                //  7 : 6768 - 7844
                //  8 : 7844 - 8920
                //  9 : 8920 - 10000
                }

Questi sono i tagli di frequenza che devo leggere per accendere i LED. A questo punto non mi serve più l'adc posso usare anche il PIC16F628A.


Ho sbagliato mi serve l'ADC quindi ritorno sull'altro PIC.



L'altruismo rende forti.
https://www.youtube.com/channel/UC5yld_Lh_D9ffo_GgxMIiqg?view_as=subscriber
picmicro675




una ogni 10 livelli


postato il:
21.11.2018, alle ore 23:00
Il C di uno e dell' altro magari hanno qualche variante, ma solo riferito a nomi assegnati all' hardware.
Poi il resto si capisce, magari ci vuole un interprete (tu) che lo traduce. Direi che come due dialetti, di pende solo da un certo punto di creazione. Magari non sono tanto distanti, avrai solo da sistemare le assegnazioni della configurazione.



Anno nuovo, forum nuovo.
Mi sa che lascio.
double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
22.11.2018, alle ore 13:15
mastertechnology:
il sorgente che ho io è stato scritto per leggere ampiezza e frequenza per poi dare i valori su di un display. invece io voglio far accendere dei led in corrispondenza della frequenza, a me l'ampiezza non mi interessa, quindi devo prima leggere la frequenza del segnale poi dire al pic in corrispondenza di una certa frequenza cosa accendere, a


Se il codice a cui ti riferisci è ancora quello che hai linkato
https://www.waitingforfriday.com/?p=325
https://www.waitingforfriday.com/wp-content/uploads/2017/01/…
allora quel codice calcola la FFT del segnale audio in ingresso e per farlo ha bisogno di un ADC che legga l'ampiezza del segnale.
La FFT trasforma le ampiezze campionate in tempo reale in 32 coeeficienti che rappresentano le ampiezze delle armoniche che compongono il segnale. Tutto va come se avessi 32 filtri passabanda in parallelo.

Se a te basta sapere se una data frequenza e' presente o meno, basta che verificare che il cofficiente interessato realNumbers[k] sia >0 (o meglio >16 che e' circa il 10% di 181 valore massimo all'uscita della FFT in ).

Con il solo comparatore riesci a misurare una frequenza, ma solo quella della fondamentale, non certo quelle delle armoniche superiori a meno che il segnale sia una pura sinusoide.

Pero' posso aver capito male io e quindi sbaglio, magari ora usi un codice diverso da quello che hai postato.



"se peso cado, ma se cado non peso"
adamatj.altervista.org
picmicro675




una ogni 10 livelli


postato il:
22.11.2018, alle ore 14:37
Se ne calcola per 32, allora con il cubo di 3 ci saranno anche 5 campioni non interessati. Piuttosto ci vuole che il calcolo determina se una armonica è superiore al livello voluto, per questo si determina se accendere o meno il LED di pertinenza.


Anno nuovo, forum nuovo.
Mi sa che lascio.
picmicro675




una ogni 10 livelli


postato il:
22.11.2018, alle ore 14:49
Poi per il micro che intendi usare ho dei dubbi seri che si possa ottenere un risultato. Già per il campionamento hai una tempistica calibrata, figuriamoci se cambi con un micro che ha meno MIPS e con memo di 4 K di flash (se non di più).


Anno nuovo, forum nuovo.
Mi sa che lascio.
mastertechnology




una ogni 10 livelli


postato il:
22.11.2018, alle ore 22:26
be ci sto ragionando su. A me basterebbe solo che in corrispondenza di una certa frequenza si accenderebbe un led. Come fa un circuito di luci psichedeliche.


L'altruismo rende forti.
https://www.youtube.com/channel/UC5yld_Lh_D9ffo_GgxMIiqg?view_as=subscriber
picmicro675




una ogni 10 livelli


postato il:
23.11.2018, alle ore 00:42
Un vantaggio ce l' hai.... Il programma tradotto per mikroC.
https://libstock.mikroe.com/projects/view/1768/fft-spectrum-…
Comunque si parla sempre di stare sulla famiglia dei 18F. Dato che c'è già circa un Kword di dati.



Anno nuovo, forum nuovo.
Mi sa che lascio.
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale