Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 13 - Led pisca de acordo com os parâmetros do potenciômetro
Projeto 13 - Led pisca de acordo com os parâmetros do potenciômetro
Angelo Luis Ferreira | 22/12/2016
Acessos: 30.259
Básico - Projeto 13
Led pisca de acordo com os parâmetros do potenciômetro
Objetivo
Criar um circuito simples onde o led deverá piscar mais rápido ou mais devagar, conforme o valor do potenciômetro é alterado.
Aplicação
Para fins didáticos e aplicações em efeitos com led.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
|
No mínimo utilizar protoboard com 830 pontos |
Jumpers |
Kit cabos ligação macho / macho |
1 |
|
|
Led Alto Brilho 5mm |
Led Alto Brilho 5mm |
1 |
|
Se você não tiver um led de alto brilho poderá utilizar um led difuso 5mm de qualquer cor. |
Resistor |
Resistor 300 Ω |
1 |
|
Se precisar usar outros valores, calcule o resistor apropriado para o led utilizado |
Potenciômetro |
Potenciômetro 10K |
1 |
|
O valor do potenciômetro aumenta quando giramos o eixo do componente na direção do polo negativo para o polo positivo. |
Arduino UNO R3 |
Arduino UNO |
1 |
|
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito. Veja a simulação no link --> Projeto 13 - simulação online.
Atenção:
1. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.
1.1. Portanto, faça a conexão da porta digital do Arduino no terminal positivo (anodo) e o GND no terminal negativo (catodo) do led.
1.2. Para evitar danos ao led é necessário a inclusão de um resistor no circuito. Como o resistor é um limitador da corrente elétrica, ele poderá estar conectado no anodo (terminal maior) ou no catodo (terminal menor) do led, tanto faz.
2. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Como calcular o resistor adequado para o led e Leds ligados em série e em paralelo.
Obs.: Resistores iguais ou superiores a 250 Ω poderão ser utilizados em LEDs de todas as cores para um circuito com tensão igual ou inferior a 5V.
Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω
3. Montagem do potenciômetro:
3.1. Veja na figura abaixo como foi montado o potenciômetro do nosso exemplo no circuito. Observe a ligação do cabo positivo (vermelho) e negativo (preto) no potenciômetro. O cabo amarelo se conecta com o pino analógico do Arduino. Nesta montagem, quando girarmos o eixo do potenciômetro no sentido horário, o led piscará mais rápido.
3.2. Para inverter o sentido de rotação do eixo do potenciômetro, basta trocar a polaridade dos cabos como mostra a figura abaixo:
Código do Projeto
Digite o código abaixo no ambiente de desenvolvimento do Arduino. Faça a verificação e o upload.
/*******************************************************************************
*
* Projeto 13 – Led de alto brilho piscando com potenciômetro
*
*******************************************************************************/
const int Potenciometro = 5;
const int Led = 13;
int ValorPoten = 0;
void setup() {
pinMode(Led, OUTPUT);
}
void loop() {
ValorPoten = analogRead(Potenciometro);
digitalWrite(Led, HIGH);
delay(ValorPoten);
digitalWrite(Led, LOW);
delay(ValorPoten);
}
Vídeo
Como o projeto deve funcionar
1. Quando você rodar o programa, o led começará a piscar conforme o valor do parâmetro potenciômetro lido.
2. Girando o eixo do potenciômetro no sentido horário ou anti-horário, o led piscará de forma mais rápida ou mais lenta, dependendo como o potenciômetro foi conectado.
3. O sentido do eixo do potenciômetro será definido pela polaridade. Para conhecer mais, acesse: Potenciômetro
Explicando o Código do Projeto (sem delay e leitura)
1. Primeiro declaramos as constantes (Potenciometro e Led) e a variável (ValorPoten).
const int Potenciometro = 5;
const int Led = 13;
int ValorPoten = 0;
1.1. Observe que utilizamos apenas constantes e variável tipo "int". Veja na tabela abaixo as diferenças nos tipos de constantes e variáveis:
Tipo |
Valores Válidos para Variáveis e Constantes
|
char |
letras e símbolos: 'a', 'b', 'H', '^', '*','1','0' |
int |
de -32767 até 32767 (apenas números inteiros) |
float |
de -3.4 x 1038 até +3.4 x 10+38com até 6 dígitos de precisão (2 casas depois da vírgula) |
double |
de -1.7 x 10308 até +1.7 x 10+308com até 10 dígitos de precisão |
1.2. A constante Potenciometro se refere ao potenciômetro 10K que deverá estar conectado no pino analógico A5. A constante Led se refere ao componente led 5mm de alto brilho que deverá estar conectado no pino digital 13 e a variável ValorPoten se refere à leitura do potenciômetro que começa valendo zero.
2. Através da strutura void setup(), definimos:
void setup() {
pinMode(Led, OUTPUT);
}
2.1. A constante Led fica definida como saída do controlador Arduino (OUTPUT).
3. Através da estrutura void loop(), obtemos:
void loop() {
ValorPoten = analogRead(Potenciometro);
digitalWrite(Led, HIGH);
delay(ValorPoten);
digitalWrite(Led, LOW);
delay(ValorPoten);
}
3.1. A variável ValorPoten será igual aos valores lidos diretamente pelo pino analógico onde está conectado o potenciômetro, através da função analogRead() que faz a conversão de analógico para digital. Esta leitura é feita pelo ADC (Analog to Digital Converter - conversor analógico para digital) sem tratamento nenhum. A variável foi definida como tipo inteiro (int), e portanto, vai de 0 a 1023, ou seja, possui 210 = 1024 valores inteiros (referente à resolução de 10 bits do ADC para controladores Arduino UNO, Mega e Leonardo). Assim, quando o eixo do potenciômetro estiver totalmente posicionado do lado do polo negativo, o valor lido será zero, e quando o eixo for deslocado totalmente para o lado do polo positivo, o valor será de 1023, variando proporcionalmente conforme a posição do eixo do componente entre estes dois extremos.
Observação: Nosso exemplo, o potenciômetro varia de 0V a 5V(leitura analógica), ou seja, de 0 a 1023 quando convertido em leitura digital através do ADC do controlador Arduino.
3.2. O led deverá ser aceso através da função digitalWrite(Led, HIGH); durante o tempo estabelecido pela função delay(ValorPoten);. Assim, quanto maior for o valor lido pelo parâmetro do potenciômetro, maior será o tempo do led ligado.
3.2. O led deverá apagar através da função digitalWrite(Led, LOW); durante o tempo estabelecido pela função delay(ValorPoten);. Assim, quanto maior for o valor lido pelo parâmetro do potenciômetro, maior será o tempo do led desligado.
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários