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 Resultado de imagem para protoboard 830v No mínimo utilizar protoboard com 830 pontos
Led Alto Brilho 5mm Led Alto Brilho 5mm 1 Imagem relacionada 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 - Cálcular Resistor
Potenciômetro Potenciômetro 10K  1 Resultado de imagem para potenciômetro 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  

Obs.: Utilizar também Cabos de ligação.

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.

2) A montagem abaixo foi realizada em um protoboard com linhas de alimentação separadas. Verifique se o seu protoboard possui linhas de alimentação contínuas ou separadas - sabia mais em protoboard

Montagem do potenciômetro:

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.

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.

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.

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Você está preparado?

Squids Arduino News

Básico - Projeto 92 Criando um relógio digital com Oled SSD1306 - bibliotecas Adafruit Objetivo O objetivo neste projeto é criar um relógio digital usando um display OLED junto com o Real Time ...

Desafio 81 - Projeto I09 Controlando 2 motores com driver L9110s (menu via display LCD) Com base no projeto I09 - Motores DC com Driver Ponte H L9110 e Arduino - Controle de 4 velocidades pelo ...

Intermediário - Projeto 09 Motores DC com driver ponte H L9110s e Arduino - 4 velocidades Objetivo Neste tutorial vamos mostrar como controlar a velocidade de 2 motores CC (corrente contínua) a...

Básico - Hub 008 Usar o módulo display 4 dígitos 74HC595   Sugerido por: Tim Santos Objetivo O objetivo é adaptar o  Projeto 63 - Usando o módulo TM1637 (display 4 dígitos) com Arduino e u...

Desafio 80 - Projeto I08 Controlando 2 motores individualmente com driver L9110s Com base no projeto I08 - Como controlar motores DC com o Driver Ponte H - L9110 e Arduino resolva os seguintes...

Outros artigos

Mais: Projetos Básicos Desafios Projetos Intermediários Básico

Topo