Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Digitalizzazione musica

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] Digitalizzazione musica

Messaggioda Foto Utentedrinu » 8 dic 2014, 17:03

Ciao a tutti, vorrei provare a campionare della musica tramite l'ingresso analogico di un arduino mega2560 e poi con il PWM e un filtro passa basso riascoltare la musica, la qualità sarà scarsa ma è solo per provare e se funziona userò un arduino più prestante o adc e dac esterni a 16 bit. Di programmazione ne so poco e ho scritto questo, ho lasciato i commenti:
Codice: Seleziona tutto
int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 11;      // select the pin for the LED
int valore = 0;  // variable to store the value coming from the sensor

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(ledPin, OUTPUT);
  analogReference(INTERNAL1V1);
  // initialize serial communication at 9600 bits per second:
// Serial.begin(9600);
}

void loop() {
  // read the value from the sensor:
  valore = analogRead(sensorPin);
  delayMicroseconds(62);
 
//  Serial.println(valore);
//  delay(10);        // delay in between reads for stability
 
//  analogWrite(ledPin, valore / 4);
 
                 
}


Per campionare a 16khz, il periodo T è uguale a 62,5 micros e quindi quello che ho scritto dovrebbe andare.
Mi manca la parte relativa al PWM dove la frequenza, ho letto, è meglio che sia la più alta possibile. Bisogna usare analogWrite(pin, valore); :
Non so come fare. :?
Avatar utente
Foto Utentedrinu
143 1 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 473
Iscritto il: 29 mar 2007, 19:59

0
voti

[2] Re: Digitalizzazione musica

Messaggioda Foto Utentespud » 8 dic 2014, 17:11

Non so bene come funzioni dentro la funzione delay di arduino, ma secondo me per fare una cosa fatta bene dovresti scandire gli istanti di campionamento utilizzando direttamente i timer del micro.
La gestione dei tempi sarebbe decisamente più precisa.
Atlant.

Behind every great man is a woman rolling her eyes.
Avatar utente
Foto Utentespud
3.767 3 10 12
free expert
 
Messaggi: 1601
Iscritto il: 1 feb 2012, 14:26
Località: Udine

0
voti

[3] Re: Digitalizzazione musica

Messaggioda Foto Utentedrinu » 8 dic 2014, 17:37

Ho già sentito parlare di questi timer ma non riesco a trovare documenti, possibilmente in italiano, che spieghino il funzionamento. Ne conosci?
Avatar utente
Foto Utentedrinu
143 1 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 473
Iscritto il: 29 mar 2007, 19:59

1
voti

[4] Re: Digitalizzazione musica

Messaggioda Foto Utentespud » 8 dic 2014, 20:05

Dunque fai sempre riferimento al datasheet del micro reperibile sul sito del produttore, li spiega come impostarne l'utilizo e le varie possibilità che hai a disposizione, poi in questo tutorial trovi qualche esempio di possibile utilizzo.

Tieni in considerazione che anche le funzioni analogWrite() che usi per generare il PWM utilizzano i timer, quindi devi fare attenzione che quando ne usi uno varierai la frequenza dell'uscita PWM che fa riferimento a quello specifico timer.

Esempio, se le uscite PWM 3 e 11 usano Timer1, quando smanetti su questo timer ti varierà il funzionamento di queste uscite (le potrai comunque usare come output digitale), ora non so se smanettando con il prescaler del timer vari solo la frequenza del PWM perché non mi sono mai documentato.

Comunque il succo è: occhio alle librerie che usano già determinati timer perché se vari il comportamento di uno di questi, tali librerie non funzioneranno più come prima :D
Atlant.

Behind every great man is a woman rolling her eyes.
Avatar utente
Foto Utentespud
3.767 3 10 12
free expert
 
Messaggi: 1601
Iscritto il: 1 feb 2012, 14:26
Località: Udine

0
voti

[5] Re: Digitalizzazione musica

Messaggioda Foto Utentedrinu » 9 dic 2014, 1:32

ok grazie, ci lavorerò su! O_/
Avatar utente
Foto Utentedrinu
143 1 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 473
Iscritto il: 29 mar 2007, 19:59


Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti