Professional Documents
Culture Documents
sl=auto&tl=pt&js=y&prev=_t&hl=pt-BR&ie=UTF-8&u=http%3A%2F
%2Freal2electronics.blogspot.com.br%2F2011%2F09%2Farduino-adcmuestreo-alta-velocidad.html&edit-text=&act=url
analogRead (pino)
convertidos atravs de srie de dispor dele o mais rpido possvel (sem ter que ir at
assembler).
A converso normal, custa 13 ciclos de relgio, e usar uma nica entrada analgica (5).
O resultado gerado aps a converso armazenado em ADCH e regitros LCAD, mas
apenas 8 bits que voc quer, basta ler o registo ADCH (justificados esquerda).
Este resultado da converso (ADC) sero enviados via serial (UART), sem converter os
dados para ASCII, para minimizar os tempos mximos de programa.
Um script em Python (gratuito e multiplataforma macio) ser responsvel pela coleta
disse byte, fazer milivolts e armazenadas em um arquivo. Especificamente, a escrita
usada a seguinte:
Cdigo:
#!
srie de importao
sys importao
serial.Serial ser = ('/ dev / ttyUSB0', 1000000);
enquanto 1:
tente:
n = ser.read ();
n = ord (n) * 5000/255; #Convierto MV
impresso n;
exceto KeyboardInterrupt:
ser.close ();
sys.exit (0)
Para usar esse cdigo, voc precisa instalar o python e biblioteca PySerial. Como voc
pode ver, estamos trabalhando para 1Mbps. Ele tem de mudar o nome da porta serial
onde temos conectado nossa Arduino, por exemplo, no caso do Windows, "COM3 ''
COM4 ', etc.
Ou seja, mudar a linha do formulrio ser = serial.Serial ("COM2", 1000000);
Se voc tem esse script em um arquivo, por exemplo chamado adquisicion.py,
executado a partir do terminal:
#define CHRONO 0
void setup ()
{
Serial comear (1000000) ;. // 1 Mbps
//
//
//
//
//
//
//
//
//
//
//
//
Prescaler
ADPS2 - ADPS1 - ADPS0 - Diviso Fator
0-0 - 0 -> 2
0-0 - 1 -> 2
0 - 1 - 0 -> 4
0 - 1 - 1 -> 8
1-0 - 0 -> 16
1-0 - 1 -> 32
1 - 1-0 -> 64
1-1 - 1 -> 128
Definir a Prescaler = 16 (Hz 11.793,57 115200)
Definir a Prescaler = 16 (Hz 66.418,71 1000000)
Ele observa que o programa tem a varivel CHRONO. Para operao normal, enviando
constantemente o valor adquirido deve ser zero (0). Quando ajustado para 1 (uma), o
que torna ejectuar o cdigo usado para adquirir e enviar srie para 1000 vezes e
cronometrando o resultado. Tal resultado pode ser lido via console serial Arduino,
porque embora tenhamos configurou a porta para 1 Mbps, quando o tempo termina, o
resultado enviado para 115.200 bps.
Transmitir a 1Mbps, e um divisor 16 da ADC, eu recebo 66.417,71 frequncia Hz (cerca
de 66,5 kHz). importante ter a coragem de clculos frecuenciales ou ter as unidades a
tempo.
Em suma, temos de ter carregado no programa Arduino acima, executar o script python
gravar a sada no arquivo desejado, lanar o KST e abra o arquivo. Os dados sero
atualizados em "tempo real".
Em seguida, alguns screenshots delineando os passos usando Ubuntu (clique para
ampliar imagens):
Passo 1:
Passo 2:
Passo 3:
Passo 4:
Passo 5:
E agora s esperar para ver como os grficos sero atualizados com os dados recebidos
do nosso Arduino. No exemplo abaixo, a captura de dados da onda de seno de a corrente
elctrica (de um transformador), que pode ser visto o resultado do PSD (Densidade de
Energia Espectral):
Como outro exemplo, 4 kHz tom gerado pela placa de som, graas ao Audacity . Quero
dizer, eu usei a placa de som como um gerador de ondas (conect-lo ADC
microcontrolador). Audacity si tem uma ferramenta de anlise de frequncia, para que
voc possa facilmente ver como os resultados devem estar em KST Arduino.
Voc chegou a visitar o frum postar o original eo outro post , onde poder encontrar
diversos testes criados por aero_yo e CesarCarlos, como medidas de harmnicos de uma
guitarra, capturando a luz de uma lmpada incandescente por uma frequncia LDR
medida esvoaar de uma abelha, microfone aquisio, etc.
http://www.openmusiclabs.com/learning/digital/atmega-adc/
http://www.openmusiclabs.com/learning/digital/atmega-adc/in-depth/
Comparador Analgico