Caique me desculpe, mas quando falei da interrupção eu quis alerta-lo para o uso de funções de delay do Arduino (delay(), milis(), micros(), etc.), essas funções não são muito precisas e dependem do que o controlador estiver fazendo no momento. Pode ser que eu esteja muito enganado, mas é minha impressão sobre elas.
A serial é uma interface lenta e o tempo decorrido entre a aquisição da amostra e a apresentação em gráficos ou tabelas pode ser grande. O importante é não perder amostra alguma. O uso de um buffer de armazenamento ajuda nesse sentido e o interessante é que o envio e a amostra podem ocorrer de forma assíncrona. E importante também ter precisão na regularidade do envio das amostras para a aplicação.
Como citei na mensagem anterior e definido por você, para 10 leituras (supondo leituras de 8 bits) em 16 ms cada amostra deve ocorrer em 1,8 ms aproximadamente. Se a velocidade de transmissão pela serial estiver setada em 115200 bps (8,n,1) você teria que:
1 leitura = 8 bits
O tempo para a serial enviar esses 8 bits seria de pouco mais de 70 us (microsegundos), que é muito menor do que o intervalo entre as aquisições (1,8 ms) e daria tempo o suficiente para enviar o dado para a aplicação.
Se preferir enviar pacotes de 10 leituras de 8 bits o tempo seria em torno de 700 us para enviar o pacote, estando a serial setada em 115200 bps, que também é bem menor que o intervalo das leituras que é de 1,8 ms. Esses tempos de envio tem que ser bem precisos para que a janela de aquisição não escorregue e assim comprometer as próximas amostragens.
Se o seu inglês estiver melhor do que o meu esse tuto pode te ajudar a entender a interrupção dos timers do Arduino Mega.
Devem existir códigos mais fáceis de entender por ai na Internet, eu mesmo usei um código assim:
setup() {
.
Timer1.initialize(500000);
Timer1.attachInterrupt(trataTimer);
.
.
.
}
// trata a interrupção do timer1
void trataTimer() {
.
.
.
}
Espero que agora eu tenha consiga ajuda-lo, porque da primeira só com Jesus na causa, rsrs.
Estamos ai se precisar.
Abraços.