Audio e invio

Ciao a tutti,
avrei la necessità di leggere l'audio dal pin analogico e mandarlo.
Acquisisco l'audio collegando un microfono analogico al pin analogico, vorrei avviare lo stream per 10 secondi. In questi 10 secondi dovrò popolare due vettori, "vettoreA" che contiene le info dal secondo 0 al secondo 7, "vettoreB" che contiene le info dal secondo 4 al secondo 10. Essendo che lo stream è uno avrò che le info dei due vettori, nelle celle da 4 a 7 saranno uguali in quanto si accavallano i due vettori, ma grazie a questo accavallarsi, non avrò perdita di info.
Come posso annidare i cicli?

supponendo che il segnale al pin analogico va da 0 a 5 volt potresti fare (pseudo codice):

int vettoreA[8];
int vettoreB[7];
byte count = 0;

se (millis - oldMillis >= 1000) {
  se (count <= 7) {
    vettoreA[count] = lettura;
    se (count >= 4) {
      vettoreB[count - 4] = vettoreA[count];
    }
  }
  se (count > 7) {
    vettoreB[count - 4] = lettura;
  }
  count++;
  se (count >= 10) {
    count = 0;
  }
  oldMillis = millis;
}

vedo anche altra alternativa:
usare un solo vettore da 11 elementi e scrivere una volta sola
ma passare alle funzioni che utilizzeranno i due vettori prima una cosa del genere:

foo(vettore,7);

e poi

foo(&vettore[4],6)

notare la finezza del passare come indirizzo del vettore l'indirizzo del suo quinto elemento (ollapeppa, sempre quel film torna....
PS, per non innescare polemiche, la ho COPIATA da Dennis e Brian, lo ammetto subito

Grazie per le vostre risposte. Nel commento di

Standardoil

non capisco cosa fai

Niente di particolare
Si tratta di un trucco, quando hai due array che si sovrappongono, come nel tuo caso, per risparmiare memoria usando un array che li "copre" tutti e due, e poi taroccare gli indici per farlo sembrare come due separati

alessandro87gatto:
Acquisisco l'audio collegando un microfono analogico al pin analogico

A parte i validi consigli che ti hanno già dato per il programma (ma sarebbe utile se iniziassi tu a scrivere due righe e mostrarcele), volevo solo sottolineare che un microfono (che tipo e quale impedenza?) se collegato direttamente ad Arduino non ti dà una tensione sufficiente per poterla leggere (è dell'ordine di pochi mV) quindi ti serve quantomeno un preamplificatore.

Do' per scontato quindi che sia preamplificato (è così?) e che i livelli in uscita siano di qualche Volt (maggiore il livello migliore sarà l'acquisizione), Arduino ha poi input "sbilanciati" verso il positivo, ossia da 0 a 5V max, mentre un segnale audio normalmente ha anche una parte negativa (es. +/- 1V pp) quindi serve una traslazione.

Per farla breve, quindi, spiegaci intanto tu cosa hai o pensavi di usare, poi guarda cose come QUESTA ad esempio, oppure piccole board apposite come QUESTA che includono un preamplificatorino MAX4466 e QUI un esempio.