gcam:
quindi supponendo di generare un segnale impulsivo a bassa frequenza (fra 1 e 50 hz) di una determinata ampiezza. Acquisendo il segnale con arduino due, posso verificare la frequenza e l'ampiezza.
Nel caso del DAC di arduino due, io posso generare un'onda
oppure è veloce già di suo senza la necessità di ulteriori impostazioni.
il mio dubbio nel campionare il segnale di audaticy è la tensione in uscita dal pc e di entrata nell'arduino.
o posso rischiare di rompere arduino due.
In genere la tensione disponibile all'uscita è di qualche volt, ma per evitare di superare i 3.3V massimi degli ingressi della DUE, è meglio se metti un partitore resistivo, o ancora meglio un trimmer di "volume"
Avete definito ARDUINO UNO un "Morto-di-sonno"
però da un test eseguito è uscito fuori:
ARDUINO UNO acquisizione di 24000 campioni su 3 canali senza inviare i dati 430 ms circa.
ARDUINO DUE acquisizione di 24000 campioni su 3 canali senza inviare i dati 943 ms circa.
La differenza è notevole.
Per arduino uno ho utilizzato le seguenti istruzioni per accelerare l'ADC
perfetto. Provata la nuova versione.
Acquisizione di 24000 campioni su tre canali in 109 ms.
Però...
Nell'inviare i dati al pc sulla seriale, solo 1500 valori a gruppi di tre, l'acquisizione si allunga a 3 secondi circa. serial baud è settato a 115200
Come fare ad inviare i dati al pc in modo veloce ?
La DUE è dotata anche di una seriale USB che si chiama SerialUSB che dovrebbe essere molto più veloce della seriale normale.
Ma non avendo la scheda non ho mai testato la cosa.
La inizializzi con
SerialUSB.begin(0);
il valore del baud viene ignorato, puoi metterci un valore a caso.
la frequenza di ck dell'adc di atmega328 è al massimo 1Mhz (ck/16) e ci mette circa 27 cicli per fare una conversione , cioè 27 microsecondi circa, quindi si arriva teoricamente a circa 37ksps
la freq di ck di Atmel SAM3X8E è al massimo di 20Mhz (ck/4) e ci mette circa 20 cicli per fare una conversione , cioè 1 microsecondo quindi si arriva teoricamente a 1Msps