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:
19.11.2018, alle ore 11:06
Real-Time Audio Spectrum Analyser 

Salve a tutti finalmente ho avuto una idea per rendere più piacevole ascoltare musica. Ho trovato questo progetto https://www.waitingforfriday.com/?p=325 ma lo devo modificare. qui usa un display ma io vorrei usare dei led. mi potette aiutare con i codici?


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




una ogni 10 livelli


postato il:
19.11.2018, alle ore 11:41

Ho isolato una parte del circuito che serve per convertire il segnale audio nel segnale che mi serve per il mio pic. adesso comincio a lavorare sul codice.



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




una ogni 10 livelli


postato il:
19.11.2018, alle ore 12:29
Non lo trovo difficile, devi elaborare solo un segnale analogico con l' ADC.
C'è anche il sorgente da scaricare



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:
19.11.2018, alle ore 16:41
mastertechnology:
qui usa un display ma io vorrei usare dei led.


Nel file main.c c'e' il vettore realNumbers[k] di 32 elementi dove viene scaricato il risultato della fft.

// Now we have 32 buckets of audio frequency data represented as
// linear intensity in realNumbers[]
//
// Since the maximum input value (in theory) to the SQRT function is
// 32767, the peak output at this stage is SQRT(32767) = 181

Basta che tu lo legga ed invii il contenuto ad una matrice di led, ad esempio 32x8. Serve una normalizzazione 181->8 y=x*8000/181000 (usa variabili long)
Se vuoi usare matrici di led 16x8 , fai la media di due campioni adiacenti

Per rinfrescare la matrice puoi usare degli expander i2c o anche dei banali 74hc595



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




una ogni 10 livelli


postato il:
20.11.2018, alle ore 10:53
non sono bravo come voi ma ci provo. Adesso ho configurato il mio PIC16F628A con oscillatore interno da 4MHz, come compilatore sto usando il mikroC. Vi passo ulteriori aggiornamenti del mio progetto. PS io andrò a usare un cubo 3X3 a led trasparenti.


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




una ogni 10 livelli


postato il:
20.11.2018, alle ore 12:03
devo configurare una porta come ADC ma non riesco a trovare nel pdf la voce del registro. In effeteti dice che questa riga è sbagliata ADCON = 0b00001110;


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




una ogni 10 livelli


postato il:
20.11.2018, alle ore 18:20
Cambia micro, non c'è ADC nel 16F628A, solo comparatori analogici.


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




una ogni 10 livelli


postato il:
21.11.2018, alle ore 08:59
che guaio avevo questo nel mio cassetto. pazienza me ne trovo un altro.


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 09:59
Ecco iniziato il progetto.
/* Project name:
     Spectrum con Cubo 3X3
 * Description:
     Spectrum con Cubo 3X3
 * Configuration:
     MCU:             PIC16F1508
     Oscillator:      16.0000 MHz
  * SW:
     mikroC PRO for PIC */
/*****************************************************************************/
void initSettings();
void Lettura();
/*****************************************************************************/
void main()
{
initSettings();
while (1)
      {
      Lettura();
}
      }
/*****************************************************************************/
void initSettings ()
{
OSCCON = 0b01111000;                             //Frequenza interna 16MHz
//Disabilito i moduli che non mi occorrono
FVRCON.FVREN = 0;                                //Fixed Voltage Reference
DACCON0.DACEN = 0;                               //Modulo DAC
CM1CON0.C1ON = 0;                                //Comparatore 1
CM2CON0.C2ON = 0;                                //Comparatore 2
PWM1CON.PWM1EN = 0;                              //PWM 1
PWM2CON.PWM2EN = 0;                              //PWM 2
PWM3CON.PWM3EN = 0;                              //PWM 3
PWM4CON.PWM4EN = 0;                              //PWM 4
CLC1CON.LC1EN = 0;                               //Logic Cell 1
CLC2CON.LC2EN = 0;                               //Logic Cell 2
NCO1CON.N1EN = 0;                                 //Numerically Controlled Oscillator
CWG1CON0.G1EN = 0;                                //Complementary Waveform Generator
INTCON = 0;                                       // Turn off all interrupts
/*****************************************************************************/
ADCON0 = 0b00000001;                              //Abilito convertitore ADC e rendo RA0 Analogico
ADCON1 = 0b00000000;                              //Disabilito convertitore ADC
ANSELA = 0b00000001;                              //RA0 Analogico
ANSELC = 0b00000000;                              //Tutti digitali
TRISA = 0b00000001;                               //RA0 ingresso il resto uscite.
PORTA = 0b00000001;                               //RA0 ingresso il resto uscite.
TRISC = 0b00000000;                               //Uscite
PORTC = 0b00000000;                               //Uscite
}

void Lettura() {
 }



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 14:33
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 ?



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