Вы находитесь на странице: 1из 36

TÍTULO: Aquisição de dados DAQ e

Processamento de dados, utilizando o Arduino

Iago Donizete Silvestre de Paula


Gabriel Cruz Ribeiro dos Santos
Luciana Lopes de Oliveira
Marcelo Gomes de Almeida

Prof. Raimundo Nonato Rocha


Disciplina: Eletrônica de aquisição e
processamento
SUMÁRIO

• Aquisição de dados DAQ – Arduino


• Processamento de dados - Arduino
• Implementação em Hardware
• Projeto do Conversor FLASH
Aquisição de dados DAQ – Arduino
• Aquisição de dados DAQ – Arduino
A aquisição de dados (DAQ) é o processo de medição de um fenômeno elétrico ou físico, como
tensão, corrente, temperatura, pressão ou som, com o uso de um computador. Um sistema DAQ é
formado por sensores, hardware de aquisição e medição de dados e um computador com software
programável. Em comparação com os sistemas tradicionais de medição, os sistemas DAQ baseados
em PC exploram a capacidade de processamento, produtividade, sistemas de visualização e
recursos de conectividades dos computadores padrão da indústria. Com isso, temos uma solução de
medição mais poderosa, flexível e de melhor custo-benefício.
• Aquisição de dados DAQ – Arduino
 PROGRAMAÇÃO PARA LEITURA DE 6 VALORES PARA REGRESSÃO LINEAR:

// constante para configuração do prescaler


//16 MHz / 16 = 1 MHz
const unsigned char PS_16 = (1 << ADPS2);
//16 MHz / 32 = 500 kHz
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
//16 MHz / 64 = 250 kHz
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
//16 MHz / 128 = 125 kHz
// Variáveis para armazenar os resultados const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 <<
ADPS0);
unsigned long tempo_inicio;
unsigned long tempo_fim;
unsigned long temperatura; void setup() {
Serial.begin(2000000);
• Aquisição de dados DAQ – Arduino
 PROGRAMAÇÃO PARA LEITURA DE 6 VALORES PARA REGRESSÃO LINEAR:
// configura o preescaler do ADC
ADCSRA &= ~PS_128; //limpa configuração da biblioteca do arduino

// valores possíveis de prescaler só deixar a linha com prescaler desejado


// PS_16, PS_32, PS_64 or PS_128
//ADCSRA |= PS_128; // 128 prescaler 125 kHz
//ADCSRA |= PS_64; // 64 prescaler 250 kHz
//ADCSRA |= PS_32; // 32 prescaler 500 kHz
ADCSRA |= PS_16; // 16 prescaler 1 MHz
}
void loop(){
// leitura
tempo_inicio = micros(); //marca tempo de inicio de leitura
temperatura = map(analogRead(A0), 0, 1023, 0, 50);
tempo_fim = micros(); //le tempo no fim da conversão

//exibe valor lido e tempo de conversão


Serial.print(" ");
Serial.print(temperatura);
Serial.print(", ");
Serial.print(tempo_fim);
Serial.println(" us ");
//delay(500);
}
Processamento de dados - Arduino
• Processamento de dados - Arduino
• Processamento de dados - Arduino
Aquisição de 200.000 dados de Temperatura – Arduino
• Aquisição de 200.000 dados de Temperatura – Arduino
 PROGRAMAÇÃO PARA LEITURA DE 200.000 VALORES PARA REGRESSÃO LINEAR:

unsigned long time;


unsigned long v = 200000;
unsigned long temperatura [200000];
unsigned long somaTemp = 0;
unsigned long mediaTemp = 0;
// constante para configuração do prescaler
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1
<< ADPS0);
void setup() {
Serial.begin(19200);
• Aquisição de 200.000 dados de Temperatura – Arduino
 PROGRAMAÇÃO PARA LEITURA DE 200.000 VALORES PARA REGRESSÃO LINEAR:

// configura o preescaler do ADC


ADCSRA &= ~PS_128; //limpa configuração da
biblioteca do arduino
// valores possiveis de prescaler só deixar a linha com
prescaler desejado
PS_16, PS_32, PS_64 or PS_128
//ADCSRA |= PS_128; // 128 prescaler 125 kHz
//ADCSRA |= PS_64; // 64 prescaler 250 kHz
//ADCSRA |= PS_32; // 32 prescaler 500 kHz
ADCSRA |= PS_16; // 16 prescaler 1 MHz
}
• Aquisição de 200.000 dados de Temperatura – Arduino
void loop()

Serial.print("\nLendo Valores\n");
for (unsigned long i=0; i < 2000; i++){

temperatura[i] = map(analogRead(A0), 0, 1023, 0, 50);


somaTemp = somaTemp + temperatura[i];

Serial.print(i);
Serial.print("\n");

time = millis();

mediaTemp = somaTemp / v;

Serial.print("Soma das Temperaturas: ");

Serial.print(somaTemp);
Serial.print("\nMedia das Temperaturas: ");

Serial.print(mediaTemp);
Serial.print("\ntempo em milissegundos: ");
Serial.println(time);

delay(10000000);
}
Leituras dos dados - Arduino
• Leituras dos dados - Arduino
Leitura 1 MHz:
Soma das Temperaturas: 9780933
Media das Temperaturas: 48 °C
Tempo em milissegundos: 670196
Tempo de cada leitura: 60 µs
Aquisição de 200.000 dados de Temperatura – Arduino
• Aquisição de 200.000 dados de Temperatura – Arduino
• PROGRAMAÇÃO PARA LEITURA DE 6 VALORES PARA REGRESSÃO LINEAR:

// constante para configuração do prescaler


const unsigned char PS_16 = (1 << ADPS2);
//16 MHz / 16 = 1 MHz const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
//16 MHz / 32 = 500 kHz
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
//16 MHz / 64 = 250 kHz
//16 MHz / 128 = 125 kHz void setup() {
Serial.begin(2000000);

// Variáveis para armazenar os resultados // configura o preescaler do ADC


unsigned long tempo_inicio; ADCSRA &= ~PS_128; //limpa configuração da biblioteca do arduino
unsigned long tempo_fim; // valores possiveis de prescaler só deixar a linha com prescaler desejado
unsigned long temperatura; // PS_16, PS_32, PS_64 or PS_128
//ADCSRA |= PS_128; // 128 prescaler 125 kHz
//ADCSRA |= PS_64; // 64 prescaler 250 kHz
//ADCSRA |= PS_32; // 32 prescaler 500 kHz
• Aquisição de 200.000 dados de Temperatura – Arduino
• PROGRAMAÇÃO PARA LEITURA DE 6 VALORES PARA REGRESSÃO LINEAR:

ADCSRA |= PS_16; // 16 prescaler 1 MHz


}

void loop(){
// leitura
tempo_inicio = micros(); //marca tempo de inicio de leitura
temperatura = (float(analogRead(0))*5/(1023))/0.01;
tempo_fim = micros(); //le tempo no fim da conversão

//exibe valor lido e tempo de conversão


Serial.print(" ");
Serial.print(temperatura);
Serial.print(", ");
Serial.print(tempo_fim);
Serial.println(" us ");
//delay(500);

}
Processamento de dados - Arduino
• Aquisição de 200.000 dados de Temperatura – Arduino
• Aquisição de 200.000 dados de Temperatura – Arduino
Leituras dos dados - Arduino
• Leituras dos dados - Arduino

Leitura 125 KHz: Leitura 1 MHz:


Soma das Temperaturas: 9270608 Soma das Temperaturas: 9116351
Media das Temperaturas: 46 °C Media das Temperaturas: 45 °C
Tempo em milissegundos: 670196 Tempo em milissegundos: 670196
Tempo em segundos: 670,196 Tempo em segundos: 670,196
Tempo em minutos: 11,170 Tempo em minutos: 11,170
Tempo em cada leitura:192 µs Tempo de cada leitura: 92 µs
Implementação em Hardware
• Implementação em Hardware
• Implementação em Hardware
• Implementação em Hardware
• Implementação em Hardware
Projeto do Conversor FLASH
• Projeto do Conversor FLASH
• Projeto do Conversor FLASH
• Projeto do Conversor FLASH
• Projeto do Conversor FLASH
Referências
• SISTEMAS ELETROELETRÔNICOS: Dispositivos e Aplicações.
• Garcia A. Gilvan, Almeida A. José. 1 ed. São Paulo. Érica, 2014.

• MANUAL DE MECATRÔNICA: Automação, robótica e controle. Braga


• C. Newton. São Paulo. Editora Newton C. Braga, 2014.

• NATIONAL INSTRUMENTS. Disponível em: http://www.ni.com/data-


acquisition/setup/pt/. Acesso em 12 de Maio de 2019.
TÍTULO: Aquisição de dados DAQ e
Processamento de dados, utilizando o Arduino

Iago Donizete Silvestre de Paula


Obrigado!
Gabriel Cruz Ribeiro dos Santos
Luciana Lopes de Oliveira
Marcelo Gomes de Almeida

Prof. Raimundo Nonato Rocha


Disciplina: Eletrônica de aquisição e
processamento
www.unifran.edu.br

Av. Dr. Armando Salles Oliveira, 201


14404 600
Franca SP Brasil
T 55 16 3711 8888
F 55 16 3711 8886

Вам также может понравиться