Índice:

Pin do Arduino AREF: 6 etapas
Pin do Arduino AREF: 6 etapas

Vídeo: Pin do Arduino AREF: 6 etapas

Vídeo: Pin do Arduino AREF: 6 etapas
Vídeo: AREF Arduino ⚡️ Voltaje de REFERENCIA ⭐️ [Curso ARDUINO] # 013 2024, Novembro
Anonim
O Pin Arduino AREF
O Pin Arduino AREF

Neste tutorial, veremos como você pode medir tensões menores com maior precisão usando os pinos de entrada analógica em seu Arduino ou placa compatível em conjunto com o pino AREF. No entanto, primeiro faremos algumas revisões para que você se atualize. Por favor, leia este post inteiramente antes de trabalhar com a AREF pela primeira vez.

Etapa 1: Revisão

Revisão!
Revisão!

Você deve se lembrar que pode usar a função analogRead () do Arduino para medir a tensão de uma corrente elétrica de sensores e assim por diante, usando um dos pinos de entrada analógica. O valor retornado de analogRead () seria entre zero e 1023, com zero representando zero volts e 1023 representando a tensão operacional da placa Arduino em uso.

E quando dizemos a tensão de operação - esta é a tensão disponível para o Arduino após o circuito da fonte de alimentação. Por exemplo, se você tiver uma placa Arduino Uno típica e executá-la a partir do soquete USB - claro, há 5 V disponíveis para a placa do soquete USB do seu computador ou hub - mas a tensão é ligeiramente reduzida conforme a corrente gira em torno do circuito para o microcontrolador - ou a fonte USB simplesmente não está à altura.

Isso pode ser facilmente demonstrado conectando um Arduino Uno ao USB e colocando um multímetro configurado para medir a tensão nos pinos 5V e GND. Algumas placas retornarão tão baixas quanto 4,8 V, algumas mais altas, mas ainda abaixo de 5V. Portanto, se você está buscando precisão, ligue sua placa a partir de uma fonte de alimentação externa através do soquete DC ou pino Vin - como 9 V DC. Depois que passar pelo circuito regulador de energia, você terá uns bons 5V, por exemplo a imagem.

Isso é importante porque a precisão de quaisquer valores analogRead () será afetada por não ter um 5 V. verdadeiro. Se você não tiver nenhuma opção, você pode usar alguns cálculos matemáticos em seu esboço para compensar a queda na tensão. Por exemplo, se sua tensão for 4,8 V - a faixa analogRead () de 0 ~ 1023 estará relacionada a 0 ~ 4,8 V e não 0 ~ 5 V. Isso pode parecer trivial, no entanto, se você estiver usando um sensor que retorna um valor como uma tensão (por exemplo, o sensor de temperatura TMP36) - o valor calculado estará errado. Portanto, no interesse da precisão, use uma fonte de alimentação externa.

Etapa 2: Por que AnalogRead () retorna um valor entre 0 e 1023?

Por que AnalogRead () retorna um valor entre 0 e 1023?
Por que AnalogRead () retorna um valor entre 0 e 1023?

Isso se deve à resolução do ADC. A resolução (para este artigo) é o grau em que algo pode ser representado numericamente. Quanto maior a resolução, maior a precisão com que algo pode ser representado. Medimos a resolução em termos do número de bits de resolução.

Por exemplo, uma resolução de 1 bit permitiria apenas dois (dois elevado a um) valores - zero e um. Uma resolução de 2 bits permitiria quatro (dois elevado a dois) valores - zero, um, dois e três. Se tentássemos medir uma faixa de cinco volts com uma resolução de dois bits, e a tensão medida fosse de quatro volts, nosso ADC retornaria um valor numérico de 3 - já que quatro volts fica entre 3,75 e 5V. É mais fácil imaginar isso com a imagem.

Portanto, com nosso ADC de exemplo com resolução de 2 bits, ele só pode representar a tensão com quatro valores resultantes possíveis. Se a tensão de entrada cair entre 0 e 1,25, o ADC retorna 0 numérico; se a tensão cair entre 1,25 e 2,5, o ADC retorna um valor numérico de 1. E assim por diante. Com o intervalo ADC do nosso Arduino de 0 ~ 1023 - temos 1024 valores possíveis - ou 2 elevado a 10. Portanto, nossos Arduinos têm um ADC com resolução de 10 bits.

Etapa 3: Então, o que é AREF?

Para encurtar a história, quando seu Arduino faz uma leitura analógica, ele compara a tensão medida no pino analógico que está sendo usado com o que é conhecido como tensão de referência. No uso normal de analogRead, a tensão de referência é a tensão operacional da placa.

Para as placas Arduino mais populares, como as placas Uno, Mega, Duemilanove e Leonardo / Yún, a tensão de operação de 5V. Se você tiver uma placa Arduino Due, a voltagem operacional é 3,3V. Se você tiver algo mais - verifique a página do produto Arduino ou pergunte ao fornecedor da placa.

Portanto, se você tiver uma tensão de referência de 5 V, cada unidade retornada por analogRead () é avaliada em 0,00488 V. (Isso é calculado dividindo 1024 em 5 V). E se quisermos medir tensões entre 0 e 2 ou 0 e 4,6? Como o ADC saberia o que é 100% da nossa faixa de tensão?

E é aí que está a razão para o pino AREF. AREF significa Analogue REFerence. Ele nos permite alimentar o Arduino com uma tensão de referência de uma fonte de alimentação externa. Por exemplo, se quisermos medir tensões com uma faixa máxima de 3,3 V, alimentaríamos um bom e suave 3,3 V no pino AREF - talvez de um regulador de tensão IC.

Então, cada etapa do ADC representaria cerca de 3,22 milivolts (divida 1024 em 3,3). Observe que a menor tensão de referência que você pode ter é 1,1V. Existem duas formas de AREF - interna e externa, então vamos verificá-las.

Etapa 4: AREF externa

Uma AREF externa é onde você fornece uma voltagem de referência externa para a placa Arduino. Isso pode vir de uma fonte de alimentação regulada ou, se você precisar de 3,3 V, pode obtê-lo no pino de 3,3 V do Arduino. Se você estiver usando uma fonte de alimentação externa, certifique-se de conectar o GND ao pino GND do Arduino. Ou se você estiver usando a fonte de 3,3 V do Arduno - apenas execute um jumper do pino de 3,3 V para o pino AREF.

Para ativar o AREF externo, use o seguinte na configuração vazia ():

analogReference (EXTERNAL); // use AREF para tensão de referência

Isso define a tensão de referência para tudo o que você conectou ao pino AREF - que obviamente terá uma tensão entre 1,1 V e a tensão de operação da placa. Observação muito importante - ao usar uma referência de tensão externa, você deve definir a referência analógica para EXTERNA antes de usar analogRead (). Isso impedirá que você cause um curto na tensão de referência interna ativa e no pino AREF, o que pode danificar o microcontrolador na placa. Se necessário para a sua aplicação, você pode reverter para a tensão de operação da placa para AREF (ou seja - de volta ao normal) com o seguinte

analogReference (DEFAULT);

Agora, para demonstrar o AREF externo em ação. Usando uma AREF de 3,3 V, o esboço a seguir mede a tensão de A0 e exibe a porcentagem da AREF total e a tensão calculada:

#include "LiquidCrystal.h"

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

entrada analógica int = 0; // nosso pino analógico

quantidade analógica int = 0; // armazena a porcentagem de flutuação do valor de entrada = 0; // usado para armazenar nosso valor percentual float voltage = 0; // usado para armazenar o valor da tensão

void setup ()

{lcd.begin (16, 2); analogReference (EXTERNAL); // use AREF para tensão de referência}

void loop ()

{lcd.clear (); quantidade analógica = leitura analógica (entrada analógica); porcentagem = (valor analógico / 1.024,00) * 100; tensão = quantidade analógica * 3,222; // em milivolts lcd.setCursor (0, 0); lcd.print ("% de AREF:"); lcd.print (porcentagem, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (voltagem, 2); atraso (250); }

Os resultados do esboço acima são mostrados no vídeo.

Etapa 5: AREF interna

Os microcontroladores em nossas placas Arduino também podem gerar uma tensão de referência interna de 1,1 V e podemos usá-la para o trabalho AREF. Basta usar a linha:

analogReference (INTERNAL);

Para placas Arduino Mega, use:

analogReference (INTERNAL1V1);

em void setup () e você está pronto. Se você tiver um Arduino Mega, também há uma tensão de referência de 2,56 V disponível, que é ativada com:

analogReference (INTERNAL2V56);

Finalmente - antes de definir os resultados de seu pino AREF, sempre calibre as leituras com um multímetro em bom estado.

Conclusão

A função AREF oferece mais flexibilidade com a medição de sinais analógicos.

Esta postagem foi trazida a você por pmdway.com - tudo para fabricantes e entusiastas de eletrônicos, com entrega gratuita em todo o mundo.

Recomendado: