Índice:
- Etapa 1: Revisão
- Etapa 2: Por que AnalogRead () retorna um valor entre 0 e 1023?
- Etapa 3: Então, o que é AREF?
- Etapa 4: AREF externa
- Etapa 5: AREF interna
Vídeo: Pin do Arduino AREF: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
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
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?
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:
DIY Arduino Pin Pointer Detector de metal: 3 etapas
DIY Arduino Pin Pointer Detector de metal: um detector de metal tradicional pode localizar um item enterrado e dar a você uma localização aproximada do objeto perto do solo. . Além disso, pode
Sistema eletrônico de segurança com RTC e código PIN definido pelo usuário: 7 etapas
Sistema eletrônico de segurança com RTC e código PIN definido pelo usuário: Olá, pessoal! Este é um projeto que fiz usando microcontrolador pic é um Sistema de Segurança por Código PIN Eletrônico com relógio em tempo real e recursos de código PIN definido pelo usuário, esta página contém todos os detalhes para você mesmo fazer um. SEU TRABALHO E CONCEITO: Bem
Pin de lapela "On Air" do Bluetooth: 7 etapas (com imagens)
Pin de lapela "On Air" do Bluetooth: Eu estava trabalhando em um projeto não relacionado que utiliza Bluetooth, tive que testar a comunicação, então construí um dos circuitos de teste do Arduino. A luz contém toda a eletrônica, microcontrolador e bateria que pode ser recarregada via USB. Ele usa
Comandos AT para o módulo Bluetooth (HC-05 W / EN Pin e BUTTON) usando a placa Arduino !: 5 etapas
Comandos AT para o Módulo Bluetooth (HC-05 W / EN Pin e BUTTON) Usando a Placa Arduino !: Por Jay Amiel AjocGensan PHEste instrutivo irá ajudá-lo a começar a usar o seu módulo Bluetooth HC05. Ao final deste manual, você terá aprendido sobre o envio de comandos AT para o módulo para configurá-lo / modificá-lo (nome, senha, baud ra
Detector de metal Pin-Pointer - Arduino: 6 etapas (com imagens)
Pin-Pointer Metal Detector - Arduino: se você é um entusiasta do Metal Detector ou está apenas procurando por uma ferramenta de oficina útil, você vai gostar deste pinpointer portátil exclusivo para estreitar a localização específica de um alvo de metal. Usando quatro bobinas de busca independentes, ótimo Cores LED para sig