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

 
FORUM: Elettronica Generale
Qui si parla di tutto....dall'analogico al digitale, dal software all'hardware, dal semplice crepuscolare al computer.


analizzatore grafico 24 canali a led
     
Autore Messaggio opzioni
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:
11.09.2019, alle ore 16:58
Prova a cambiare questa istruzione nel setup()

 ADCSRA = 0b11100101; // set ADC to free running mode and set pre-scalar to 32 (0xe5)
 

con questa
 ADCSRA = 0b11100110; // set ADC to free running mode and set pre-scalar to 64 (0xe6)
 

il campionamento scende a cira 20 KHz, la massima frequenza a 10 KHz e i 32 step sono ora distanziati di circa 300 Hz

Si perde poco (nella visalizzazione!) perche' sopra i 10 Kz in un segnale musicale ci sono sole le armoniche alte degli strumenti che servono a fornire i timbri e gli inviluppi. Per avere una idea il tasto piu' a destra di un pianoforte (Do8) e' di 4186 Hz.

ps: analogRead di arduino campiona a circa 9.5 KHz in modalita' single read



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




una ogni 100 livelli


postato il:
11.09.2019, alle ore 19:35
daniele1979:

ho fatto anche la prova prendendo un generatore audio on line, ho fatto fare la spazzolata da 10 a 20.000 hz,
li comunque dovrebbero andare su, ed invece nulla


SW a parte, per generare il segnale usi la scheda audio del pc (bene) o il cellulare (forse male?


daniele1979





postato il:
11.09.2019, alle ore 21:24
ho usato il pc. con sia con scheda audio integrata che esterna
daniele1979





postato il:
12.09.2019, alle ore 18:23
 MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);   // display object
arduinoFFT FFT = arduinoFFT();                                    // FFT object
 


void setup() {
    
     ADCSRA = 0b11100110; // set ADC to free running mode and set pre-scalar to 64 (0xe6)
    ADMUX = 0b00000000;       // use pin A0 and external voltage reference
    pinMode(buttonPin, INPUT);
    mx.begin();           // initialize display
    delay(30);            // wait to get reference voltage stabilized
}
 
void loop() {
   // ++ Sampling
   for(int i=0; i<SAMPLES; i++)
    {

io ho fatto cosi e0 giusto?ma non e' cambiato nulla
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:
13.09.2019, alle ore 10:08
se hai seguito questo progetto
https://create.arduino.cc/projecthub/Shajeeb/32-band-audio-s…
https://github.com/shajeebtm/Arduino-audio-spectrum-visualiz…

- conferma che hai usato questo codice https://create.arduino.cc/projecthub/code_files/229785/downl…
- posta i link da cui hai scaricato le librerie <arduinoFFT> e <MD_MAX72xx> cosi' si da uno sguardo ai metodi usati (impostazioni e comandi di FFT e display) e agli esempi per testare il display a 4 matrici
- usa un generatore audio con un NE555 cosi' ci sono un bel po' di armoniche (se non hai piu' 20 anni oltre i 10 KHz l'orecchio non sente piu' nulla)

nell'articolo del link si parla di 5 modi diversi di visualizzazione
>>>Five different display modes are supported which can be switched with the push button>>>
li hai verificati tutti? in cosa differiscono (lineari, ottave, logaritmici, ecc)?




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





postato il:
13.09.2019, alle ore 18:12
allora :
le librerie le ho prese dal sito di arduino,per la precisione qui

https://www.arduinolibraries.info/libraries/arduino-fft
https://www.arduinolibraries.info/libraries/md_max72-xx

i 5 modi sono l effetto visualizzato barra punto sotto sopra
daniele1979





postato il:
13.09.2019, alle ore 18:46
ho scaricato da qui https://create.arduino.cc/projecthub/code_files/229785/downl…
ma non riesco ad aprire il file ino.
l ho preso da qui
https://github.com/shajeebtm/Arduino-audio-spectrum-visualiz…


caccamo2





postato il:
13.09.2019, alle ore 19:33
Queste librerie hanno una marea di opzioni, come dicevo occorrono anni di esperienza per imparare a fare analisi digitali in frequenza, non puoi pretendere di fare solo copy and paste.
Poi bisogna vedere cosa significhi per te -funziona alla sperandio- hai fatto un confronto con uno strumento? No, e allora come cavolo fai a dire che -non risponde alle frequenze corrette- ?
E' inutile quindi che ti metti a provare tutte le librerie che trovi senza ragionarci su un attimo, hai messo un filtro anti alias? Hai misurato almeno con uno oscilloscopio se le alte frequenze arrivino all'adc o vengano filtrate prima?



...
daniele1979





postato il:
13.09.2019, alle ore 19:43
scusami tanto , ma sono 2 le voci da cambiare?

while (!(ADCSRA & 0x10));       // wait for ADC to complete current conversion ie ADIF bit set
    ADCSRA = 0b11110110 ;               // clear ADIF bit so that ADC can do next operation (0xf6)
    int value = ADC - 512 ;                 // Read from ADC and subtract DC offset caused value
daniele1979





postato il:
13.09.2019, alle ore 23:42
come filtro questo va bene?
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