Como usar a entrada analógica e a saída analógica de uma placa Arduino – (Parte 3/49)

Embora os microcontroladores sejam dispositivos puramente digitais que funcionam em tensões lógicas0 e lógica1, eles são comumente encontrados em interface com sistemas ou circuitos analógicos. O microcontrolador pode ler a tensão de entrada analógica amostrando-a e convertendo-a em seus valores digitais com a ajuda do Conversor Analógico para Digital (ADC). O microcontrolador também pode gerar uma tensão analógica em qualquer dispositivo externo com a ajuda de ondas moduladas por largura de pulso (PWM). A maioria dos microcontroladores possui módulo PWM integrado e módulos ADC que os auxiliam na leitura de entradas de tensão analógica e na geração de saídas de tensão analógica em um dispositivo externo. Aqueles que fizeram alguns experimentos básicos com os módulos PWM e ADC sabem como é complexo configurá-los, inicializá-los e fazê-los funcionar corretamente juntos. Todas essas coisas são simplificadas em uma placa Arduino de tal forma que até mesmo um iniciante pode interligá-la rapidamente com dispositivos de entrada e saída analógica. O arduino pode ser usado como uma placa autônoma, cuja saída ou entradas podem ser retiradas das placas ou fornecidas à placa usando conectores convenientes. Entradas e saídas digitais e analógicas estão disponíveis em todas as placas Arduino. As placas Arduino podem se comunicar com outros dispositivos usando portas de comunicação padrão de entrada/saída digital, como USART, IIC e USB, etc.

As placas Arduino possuem todos os circuitos necessários para fazer o microcontrolador AVR integrado funcionar e são atualizadas com o Arduino carregador de inicialização. O mais impressionante é que a maioria das placas Arduino são compatíveis com a placa Bread, o que a torna a melhor ferramenta para facilitar a prototipagem. Quando se trata de programar a placa Arduino, qualquer pessoa que tenha conhecimento básico de programação C pode começar rapidamente com o IDE Arduino. . É muito simples de entender e possui funções integradas para quase todas as tarefas simples ou complexas. Neste projeto específico para demonstrar como usar o entrada e saída analógica da placa arduino um potenciômetro simples é usado como um dispositivo de entrada analógica que pode ser usado para variar o brilho de um LED que atua como um dispositivo de saída analógica.

Neste projeto é utilizada a placa arduino pro-mini que é programada com a ajuda do arduino IDE versão 1.0.3 no sistema operacional Windows.

Placa Arduino Pro-Mini típica

Fig. 2: Placa Arduino Pro-Mini típica

 Janela do software Arduino IDE

Fig. 3: Janela do software Arduino IDE

Outro hardware que pode realizar a conversão de USB para TTL é usado para carregar o programa na placa Arduino.

Placa conversora USB externa para TTL para programação de Arduino e comunicação serial

4: Placa conversora USB para TTL externa para programação Arduino e comunicação serial

Presume-se que o leitor tenha passado pelo projeto como começar com arduino e fiz todas as coisas discutidas nele. A placa arduino pro-mini pode ter no máximo oito pinos analógicos que podem ser configurados como pinos de entrada analógica. Os pinos estão marcados na placa como A0, A1, A2,… A7. Na verdade, eles são os canais de entrada do ADC integrado, que pode ler o valor analógico e convertê-lo no equivalente digital. Algumas placas pró-mini possuem menor número de pinos analógicos. Neste projeto específico, o pino analógico 0 e o pino analógico 1 estão usando apenas um deles como entrada analógica e o outro como saída analógica. O pino variável de um potenciômetro é conectado ao pino analógico; neste projeto o pino A0. Os outros dois pinos do potenciômetro são conectados ao VCC e GND para que, à medida que a variável se move, ela possa dividir toda a tensão de alimentação e fornecê-la como tensão de entrada analógica para a placa Arduino.

A placa arduino pro-mini normalmente possui seis pinos de saída analógica que podem ser usados ​​para gerar tensão de saída analógica. Os pinos marcados na placa como 3, 5, 6, 9, 10 e 11 podem atuar como saída analógica. Na verdade, eles são os canais de saída do módulo PWM integrado que pode gerar as tensões de saída analógica. Um LED é conectado ao pino de saída analógica através de um resistor limitador de corrente; neste projeto ele está conectado ao pino 5. O código lê continuamente o valor do potenciômetro e escreve o valor correspondente para alterar o brilho do LED conectado ao pino 5.

O CÓDIGO

constintanalogInPin = A0; // Pino de entrada analógica ao qual o potenciômetro está conectado

constintanalogOutPin = 5; // Pino de saída analógica ao qual o LED está conectado

valor interno = 0;

valor de entrada = 0;

configuração nula

{

;

}

loop vazio

{

// lê o valor analógico:

valorpot = analogRead(analogInPin);

// mapeia-o para o intervalo da saída analógica:

valor de saída = mapa (valor do pote, 0, 1023, 0, 255);

// altera o valor da saída analógica:

analogWrite(analogOutPin, valor de saída);

// espera 2 milissegundos antes do próximo loop

// para o conversor analógico-digital se estabilizar

// após a última leitura:

atraso(2);

}

Os detalhes da função setup , loop já estão explicados no projeto como começar com o arduino. Os detalhes das outras funções básicas como delay são explicados separadamente no projeto como usar entrada digital e saída digital do arduinó. Existem funções no código acima que podem realizar leitura e gravação analógica, nomeadamente analogRead eanalogWrite respectivamente. Os detalhes das funções são discutidos na seção a seguir.

leitura analógica

Esta função pode ler um valor analógico de um pino analógico mencionado em seu argumento e retornar esse valor. Suponha que se houver uma variável 'var' na qual o valor do pino analógico A0 precisa ser lido, pode-se usar a função analogRead conforme mostrado abaixo;

var = leituraanalógica(A0);

A instrução acima habilitará o ADC integrado do microcontrolador do Arduino, que então converte o valor analógico em seu equivalente digital de 10 bits e então armazena na variável ‘var’. Espera-se que a variável 'var' seja do tipo inteiro.

escrita analógica

Esta função pode escrever um valor analógico em um pino de saída analógica mencionado em seu argumento para gerar a tensão equivalente nesse pino. Por exemplo, pode-se usar a função analogWrite para gerar uma tensão equivalente ao valor 100 em um pino 5 de saída analógica, conforme mostrado abaixo;

analogWrite(5, 100);

A instrução acima irá, na verdade, escrever o valor 100 em um módulo PWM de 8 bits que irá gerar uma forma de onda modulada em largura correspondente no pino número 5, de modo a gerar a tensão equivalente no dispositivo conectado a esse pino.

mapa

O map é uma função integrada que pode ser usada para mapear o valor de um intervalo para outro. Por exemplo, o ADC do arduino gera valores de 10 bits, mas o módulo PWM do arduino pode produzir formas de onda equivalentes a 8 bits. Se houver necessidade de escrever diretamente o valor da entrada analógica na saída analógica, pode-se usar a função map da seguinte maneira;

var = mapa(potvalor, 0, 1023, 0, 255);

A instrução acima irá converter o valor que está no intervalo de 0 a 1023 (a saída do ADC de 10 bits) no intervalo de 0 a 255 (o intervalo de entrada do PWM de 8 bits) e o armazenará em uma variável 'var'. A variável 'var' pode ser do tipo inteiro ou caractere.

Agora, uma vez concluída a codificação, pode-se verificar e fazer upload do código para a placa Arduino conforme explicado no projeto Começando com Arduino e pode-se observar que o brilho do LED varia conforme a variável do potenciômetro se move.

Código fonte do projeto

###




/*============================ EG LABS ===================================//

 

 Demonstration on how to use analog input and output of an arduino board

 

 The circuit:

 * Potentiometer attached to analog input A0

 * one side pin (either one) to ground

 * the other side pin to +5V

 * LED anode (long leg) attached to digital output 5

 * LED cathode (short leg) attached to ground through a 1K resistor

 

//============================ EG LABS ===================================*/


const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to

const int analogOutPin = 5;  // Analog output pin that the LED is attached to

int potvalue = 0;

int outputvalue=0;


void setup 

{

  ;

}


void loop 

{

  // read the analog in value:

  potvalue = analogRead(analogInPin);        

 // map it to the range of the analog out:

  outputvalue = map(potvalue, 0, 1023, 0, 255);      

  // change the analog out value:

  analogWrite(analogOutPin, outputvalue);           

  // wait 2 milliseconds before the next loop

  // for the analog-to-digital converter to settle

  // after the last reading:

  delay(2);                     

}

###

Diagramas de circuito

Diagrama de circuito usando entrada analógica, saída analógica e placa Arduino

Componentes do Projeto

  • Arduino ProMini
  • LIDERADO
  • Resistor

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.