Para esse tutorial vamos precisar de:
-
lápis 2B, 6B, ou outro qualquer que seja de cor forte.
-
fita crepe ou outra fita qualquer.
-
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.
1° Desenhe na folha de papel um retângulo com as seguintes dimensões: 8 cm x 2 cm
2º Agora pinte todo retângulo com o lápis. Pinte o mais forte que puder.
3° 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:
4° Coloque um pouco da escova de aço (bombril) em uma das extremidades de dois fios.
5° 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.
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); }
6° 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.
7° 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.
HI,
Nice project,Arduino now is vrey good
And would you like to have a win-win cooperation with pcbgogo?PCBGOGO is good at in pcba turnkey service.
may be you can check this h t t p://www.pcbgogo(dot)com?code=y