Categorias: Circuitos de microcontrolador
Número de visualizações: 18998
Comentários sobre o artigo: 0
Conectando sensores analógicos ao Arduino, sensores de leitura
Os sensores são usados para medir quantidades, condições ambientais e reações a mudanças de estados e posições. Em sua saída, pode haver sinais digitais consistindo em um e zeros e analógicos consistindo em um número infinito de tensões em um determinado intervalo.
Sobre sensores
Assim, os sensores são divididos em dois grupos:
1. Digital.
2. Analógico.
Para ler valores digitais, podem ser usadas entradas digitais e analógicas do microcontrolador, no nosso caso Avr na placa do Arduino. Os sensores analógicos devem ser conectados através de um conversor analógico-digital (ADC). ATMEGA328, é ele que está instalado na maioria das placas ARDUINO (mais sobre isso existe um artigo no site), contém em seu circuito o ADC incorporado. Até 6 entradas analógicas estão disponíveis para você escolher.
Se isso não for suficiente, você poderá usar um ADC externo adicional para conectar-se às entradas digitais, mas isso complicará o código e aumentará seu volume, devido à adição de algoritmos de processamento e controle do ADC. O tópico dos conversores analógico-digitais é amplo o suficiente para que você possa criar um artigo separado ou dar um ciclo sobre eles. É mais fácil usar uma placa com um grande número deles ou multiplexadores. Vejamos como conectar sensores analógicos ao Arduino.

Esquema geral dos sensores analógicos e sua conexão
O sensor pode até ser um potenciômetro convencional. De fato, este é um sensor de posição resistivo; nesse princípio, eles implementam o controle do nível de líquidos, o ângulo de inclinação, a abertura de alguma coisa. Ele pode ser conectado ao arduino de duas maneiras.

O circuito acima permite ler valores de 0 a 1023, devido ao fato de que toda a tensão cai no potenciômetro. O princípio de um divisor de tensão funciona aqui, em qualquer posição do motor, a tensão é distribuída linearmente na superfície da camada resistiva ou em uma escala logarítmica (dependendo do potenciômetro) que parte da tensão que permanece entre a saída do controle deslizante (contato deslizante) e o solo (gnd) chega à entrada. Na tábua de pão, esta conexão é assim:

A segunda opção é conectada de acordo com o esquema do divisor resistivo clássico, aqui a tensão no ponto de resistência máxima do potenciômetro depende da resistência do resistor superior (na Figura R2).

Em geral, o divisor resistivo é muito importante não apenas no campo de trabalho com microcontroladores, mas também na eletrônica em geral. Abaixo você vê o esquema geral, bem como as relações calculadas para determinar o valor da tensão no braço inferior.

Essa conexão é característica não apenas para um potenciômetro, mas para todos os sensores analógicos, porque a maioria deles trabalha com o princípio de alterar a resistência (condutividade) sob a influência de fontes externas - temperatura, luz, radiação de vários tipos, etc.
A seguir, é apresentado o diagrama de conexão mais simples termistor, em princípio, um termômetro pode ser feito com base. Mas a precisão de suas leituras dependerá da precisão da tabela de conversão de resistência à temperatura, da estabilidade da fonte de energia e dos coeficientes de mudança de resistência (incluindo o resistor do braço) sob a influência da mesma temperatura. Isso pode ser minimizado selecionando as resistências ideais, a potência e as correntes de operação.

Da mesma forma, você pode conectar fotodiodos, fototransistores como um sensor de luz. A fotoeletrônica encontrou aplicação em sensores que determinam a distância e a presença de um objeto, um dos quais consideraremos mais adiante.

A figura mostra a conexão do fotorresistor ao arduino.

Parte do software
Antes de falar sobre a conexão de sensores específicos, decidi considerar o software para processá-los. Todos os sinais analógicos são lidos nas mesmas portas usando o comando analogRead ().Vale ressaltar que o Arduino UNO e outros modelos com 168 e 328 atmega possuem ADC de 10 bits. Isso significa que o microcontrolador vê o sinal de entrada como um número de 0 a 1023 - um total de 1024 valores. Se você considerar que a tensão de alimentação é de 5 volts, a sensibilidade de entrada:
5/1024 = 0,0048 V ou 4,8 mV
Ou seja, com um valor de 0 na entrada, a tensão é 0 e com um valor de 10 na entrada - 48 mV.
Em alguns casos, para converter os valores no nível desejado (por exemplo, para transmitir para a saída PWM), 1024 é dividido por um número e, como resultado da divisão, o máximo necessário deve ser obtido. A função de mapa (origem, baixo, alto, alto, alto, baixo) funciona mais claramente, onde:
-
baixo - número menor antes da conversão por função;
-
vch - superior;
-
VCh - o número mais baixo após o processamento pela função (na saída);
-
VHV - topo.
Uma aplicação prática para converter uma função em um valor de entrada para transmissão para um PWM (o valor máximo é 255, para converter dados do ADC para a saída PWM, 1024 é dividido por 4):
Opção 1 - divisão.
int x;
x = leitura analógica (pote) / 4;
// um número de 0 a 1023 será recebido
// divida por 4, obtemos um número inteiro de 0 a 255 analogWrite (led, x);
A opção 2 - a função MAP - abre mais oportunidades, mas mais sobre isso mais tarde.
loop vazio ()
{int val = analogRead (0);
val = mapa (val, 0, 1023, 0, 255);
analogWrite (led, val); }
Ou ainda mais curto:
analogWrite (led, map (val, 0, 1023, 0, 255))
Nem todos os sensores têm 5 volts na saída, ou seja, nem sempre é conveniente dividir o número 1024 para obter os mesmos 256 para o PWM (ou qualquer outro). Pode ser 2 e 2,5 volts e outros valores, quando o sinal máximo for, por exemplo, 500.
Sensores analógicos populares
Uma visão geral do sensor para o arduino e sua conexão é mostrada abaixo:

Geralmente existem três saídas, pode haver uma quarta digital, mas essas são características.
Explicação da designação das saídas do sensor analógico:
-
G - menos energia, barramento comum, terra. Pode ser designado como GND, “-";
-
V - mais potência. Pode ser indicado como Vcc, Vtg, "+";
-
S - sinal de saída, possível notação - sinal de saída, SGN, Vout.
Iniciantes para aprender a ler os valores dos sensores, escolha projetos de todos os tipos de termômetros. Esses sensores são de design digital, por exemplo, DS18B20 e analógico - todos os tipos de microcircuitos, como LM35, TMP35, TMP36 e outros. Aqui está um exemplo do design modular de um sensor desse tipo na placa.

A precisão do sensor é de 0,5 a 2 graus. Construído em um chip TMP36, como muitos de seus análogos, seus valores de saída são 10 mV / ° C. A 0 °, o sinal de saída é 0 V e, em seguida, são adicionados 10 mV por 1 grau. Ou seja, a 25,5 graus de tensão é de 0,255 V, é possível um desvio no erro e no auto-aquecimento do chip IC (até 0,1 ° C).
Dependendo do microcircuito usado, as faixas de medição e as tensões de saída podem diferir, consulte a tabela.

No entanto, para um termômetro de alta qualidade, você não pode simplesmente ler os valores e exibi-los no indicador LCD ou na porta serial para comunicação com um PC, para a estabilidade do sinal de saída de todo o sistema como um todo, é necessário calcular os valores dos sensores, analógicos e digitais, dentro de certos limites, enquanto sem prejudicar sua velocidade e precisão (há um limite para tudo). Isso ocorre devido à presença de ruído, interferência e contatos instáveis (para sensores resistivos baseados em um potenciômetro, consulte mau funcionamento do sensor de nível de água ou combustível no tanque do carro).
Os códigos para trabalhar com a maioria dos sensores são bastante volumosos; portanto, não vou dar a todos, eles podem ser facilmente encontrados na rede pela solicitação "sensor + nome do Arduino".
O próximo sensor que os engenheiros robóticos do arduino costumam usar é o sensor de linha. É baseado em dispositivos fotoeletrônicos, tipo de fototransistores.

Com a ajuda deles, um robô que se move ao longo da linha (usado na produção automatizada para entregar peças) determina a presença de uma faixa branca ou preta. No lado direito da figura, dois dispositivos semelhantes aos LEDs são visíveis. Um deles é o LED, ele pode emitir no espectro invisível, e o segundo é um fototransistor.
A luz é refletida da superfície se estiver escura - o fototransistor não recebe um fluxo refletido, mas se a luz recebe e se abre. Os algoritmos que você coloca no microcontrolador processam o sinal e determinam a correção e a direção do movimento e os corrigem. O mouse óptico, que você provavelmente segura na mão enquanto lê essas linhas, é organizado da mesma forma.
Vou suplementar com um sensor adjacente - um sensor de distância da Sharp, também é usado em robótica, bem como em condições de monitorar a posição dos objetos no espaço (com o erro TX correspondente).

Funciona com o mesmo princípio. Bibliotecas e exemplos de esboços e projetos com eles estão disponíveis em grande número em sites dedicados ao Arduino.
Conclusão
O uso de sensores analógicos é muito simples e, com a linguagem de programação Arduino fácil de aprender, você aprende rapidamente dispositivos simples. Essa abordagem tem desvantagens significativas em comparação com as contrapartes digitais. Isso ocorre devido à grande variação nos parâmetros, o que causa problemas ao substituir o sensor. Você pode precisar editar o código fonte do programa.
É verdade que dispositivos analógicos individuais incorporam fontes de tensão de referência e estabilizadores de corrente, o que afeta positivamente o produto final e a repetibilidade do dispositivo na produção em massa. Todos os problemas podem ser evitados usando dispositivos digitais.
O circuito digital reduz a necessidade de desligar e ajustar o circuito após a montagem. Isso lhe dá a oportunidade de montar vários dispositivos idênticos no mesmo código-fonte, cujos detalhes fornecerão os mesmos sinais; com sensores resistivos, isso é raro.
Veja também em nosso site:Conectando dispositivos externos ao Arduino
Veja também em electro-pt.tomathouse.com
: