Arduino, resistores variáveis e função map

Para esse tutorial vamos precisar de:

  • lápis 2B, 6B, ou outro qualquer que seja de cor forte.

  • fita crepe ou outra fita qualquer.

  • Arduino.

  • 3 Fios de conexão

  • Um pouco de escova de aço (Bombril)

  • Papel em branco

  • Régua

O objetivo desse projeto é criarmos um resistor variável parecido com um potenciômetro para entendermos o funcionamento do mesmo e o uso da função map do Arduino.

Um resistor variável tem a mesma funcionalidade de um resistor comum, ou seja, aplicar uma resistência a corrente elétrica. O que muda de um para o outro é que com o resistor variável podemos alterar a resistência em tempo real, ou seja, no circuito em funcionamento.

Já a função map serve para mapear uma faixa de valores dentro de outra. Imagine por exemplo, a seguinte situação:

Você utiliza o Arduino para ler dados de um sensor o qual retorna valores entre 568 a 1789 mas você precisa que essa faixa seja convertida entre 0 e 100. Como saber o valor exato para a faixa 0 e 100 quando o valor apresentado é igual a 915?

Através da função map podemos fazer de forma fácil isso.

Desenhe na folha de papel um retângulo com as seguintes dimensões: 8 cm x 2 cm

Agora pinte todo retângulo com o lápis. Pinte o mais forte que puder.

Utilizando a régua messe a partir das duas extremidades do retângulo o valor de 1 cm e trace um risco na vertical. Seu desenho deverá ficar dessa forma:

sdfsd17

Coloque um pouco da escova de aço (bombril) em uma das extremidades de dois fios.

Posicione os fios com a escova de aço dessa forma. Ligando um dos fios em 5v outro no GND. O terceiro fio conecte ao pino analógico A0.

asdas

Escreve, compile e execute esse código no Arduino.

void setup()
{
   Serial.begin(9600);
}
void loop()
{
   int valorSensor = analogRead(A0);
   Serial.print("Sinal analogico");
   Serial.println("valorSensor");
   delay(100);
}

Posicione o fio conectado ao pino analógico 0 em uma das extremidades do retângulo de forma que o fio fique posicionado em cima do risco feito anteriormente. Através da serial monitor do Arduino verifique o valor lido e anote esse valor.

Posicione o fio conectado ao pino analógico 0 na outra extremidade do retângulo de forma que o fio fique em cima do risco traçado anteriormente. Verifique o valor e anote.

No exemplo acima os valores que foram obtidos foram 700 e 180. Agora vamos mapear esses valores dentro da faixa de 0 e 100 utilizando a função map.

Digite o código abaixo e faça os testes necessários deslizando o fio de um lado para o outro e verifique o resultado:

void setup()
{
Serial.begin(9600);
}
void loop()
{
     int valorSensor = analogRead(A0);
     int valorModificado = map(valorSensor, 180, 700, 0, 100);
     Serial.print("Valor alterado pela funcao map: ");
     Serial.println(valorModificado);
     delay(500);
}

Faça outro teste posicionando a extremidade do jumper conectado ao pino analogico A0 sobre o retangulo de grafite e movimente de um lado para o outro e verifique o novo valor. Lembrando de que isso é um exemplo mais básico do funcionamento de um potenciomentro(resistor variável).

 

 

Então é isso. Até a proxima.

por ferpinheiro Postado em Arduino

3 comentários em “Arduino, resistores variáveis e função map

Deixe um comentário