FAVORITAR
FecharPlease login

Controle de intensidade de um LED com PWM no Arduino usando a Franzininho C0

Introdução

O PWM, do inglês Pulse Width Modulation (Modulação por Largura de Pulso), é uma técnica amplamente utilizada para controlar a quantidade média de energia fornecida a um dispositivo elétrico. Isso permite ajustar sua velocidade, brilho ou qualquer outra característica que dependa da variação de potência.

Nesse contexto, o uso de um potenciômetro como sensor de entrada permite ajustar manualmente a tensão de saída para controlar um dispositivo. Esse tipo de aplicação é frequentemente utilizado para o controle de velocidade de motores, intensidade de LEDs e outros aparelhos eletrônicos. É provável que você já tenha interagido com uma aplicação desse tipo no seu dia a dia.

Este tutorial explora esse processo, demonstrando como conectar os componentes e programar no Arduino para controlar a luminosidade de um LED utilizando a Franzininho C0.

Material necessário

  • Franzininho C0
  • Potenciômetro
  • Protoboard
  • Jumpers

Pinout da Franzininho C0

Consulte o pinout abaixo para fazer as conexões eletricas do circuito proposto:

No dia 25 de Junho de 2024, ocorrerá o “Seminário de Sistemas Embarcados e IoT 2024“, no Holiday Inn Anhembi — Parque Anhembi, São Paulo–SP.

Garanta seu ingresso

Potenciômetro

O potenciômetro é um tipo de resistor variável que pode ter sua resistência elétrica alterada de forma controlada. Eles contam com 3 terminais: um terminal é a entrada para alimentação, o terminal do meio é o sinal de saída e o último terminal é um terra. 

Figura 1 – Funcionamento do potenciômetro. (Fonte: Coda Effects)

Seu funcionamento é simples: a tensão de entrada é distribuída ao longo de todo o comprimento do elemento resistivo, enquanto a tensão de saída é derivada da diferença de potencial entre o elemento resistivo fixo e o contato deslizante ou rotativo. Logo, a saída do potenciômetro pode variar de 0% a 100% da tensão de entrada, dependendo da posição do eixo, que é ajustada manualmente.

No exemplo, usaremos o Potenciômetro Linear de 10k, mas sugere-se o uso de potenciômetros entre 1k e 100k.

Figura 2 – Potenciômetro de 10k.

PWM

O PWM é uma técnica que se baseia em manter a frequência de uma onda quadrada constante, enquanto modifica apenas o intervalo de tempo em que o sinal permanece em nível lógico alto. Esse período de tempo em que o sinal está alto é denominado ciclo de trabalho (duty cycle).

Figura 3 – Duty Cycle ou Ciclo de Trabalho.

O PWM é usado em diferentes situações com a finalidade de fornecer diferentes níveis de tensão para os dispositivos. No exemplo vamos usar o PWM para variar o brilho de um LED.

Então, com um ciclo de trabalho de 0%, a tensão média do sinal é de 0V resultando no LED desligado. Com um ciclo de trabalho de 50%, a tensão média é a metade da tensão total, e o LED será observado aceso com metade do seu brilho. Essa relação se mantém conforme o ciclo de trabalho varia.

Montagem da placa e código para regular o brilho do LED com PWM

Para começar, conecte o potenciômetro à placa. Insira o potenciômetro na protoboard e, em seguida, faça as seguintes conexões:

  • Terminal da esquerda do potenciômetro ao pino 3,3V
  • Terminal central do potenciômetro ao pino A0
  • Terminal da direita do potenciômetro ao pino GND

Conforme mostrado na imagem abaixo:

Figura 4 – Montagem da placa na protoboard.

Código

Abaixo temos o código completo utilizado nesse exemplo. Esse código é baseado no código desenvolvido por Daniel Quadros e está disponível no Github da Franzininho:

Explicação do Código

Confira a seguir a explicação dos principais trechos do código:

Na IDE do Arduino, comece definindo os pinos que serão utilizados:

No setup,  é necessário apenas declarar o pino do LED como saída:

No loop, começamos com a função analogRead(), que retorna um valor entre 0 e 1023, representando tensões de 0 a 3,3V. Em seguida, utilizamos a função analogWrite() para simular a saída de um valor analógico por meio de PWM (em pinos conectados à saída de um timer).

Assim, o duty cycle é definido por um valor de 0 a 255. Onde em 0, o LED ficará apagado, enquanto em 255 ele estará completamente aceso, com 100% de brilho.

Além disso, um delay de 100 ms é incluído:

Obs.: Antes da IDE iniciar o carregamento do programa, a Franzininho C0 deve executar o bootloader, caso contrário ocorrerá um erro.

Executando o código, como demonstrado no vídeo, a intensidade do brilho do LED é ajustada conforme o eixo é girado.

Conclusão

Neste tutorial, exploramos o uso do PWM para controlar a intensidade de um LED com a Franzininho C0 e um potenciômetro. Demonstramos como conectar os componentes necessários e programar a placa utilizando a IDE do Arduino. O uso do potenciômetro como sensor de entrada permite ajustar manualmente a tensão de saída, proporcionando um controle preciso do brilho do LED.

A aplicação do PWM é essencial em diversas situações, como o controle de velocidade de motores e a variação de intensidade de luz em LEDs. Ao seguir os passos descritos, você adquiriu conhecimentos práticos sobre a montagem e programação de um circuito simples, porém poderoso, que pode ser expandido para outros projetos eletrônicos.

Esperamos que este tutorial tenha sido útil e que você se sinta inspirado a continuar explorando as possibilidades oferecidas pela Franzininho C0 e outras plataformas de desenvolvimento. Se não houver um potenciômetro disponível, lembre-se de que você pode sempre adaptar o código para ajustar a intensidade de forma automática, permitindo ainda mais flexibilidade em seus projetos futuros.

Desafio

Controle da Intensidade do LED usando Teclas

Objetivo: Utilizar a Franzininho C0 para controlar a intensidade de um LED por meio de duas teclas, onde uma tecla aumenta a intensidade e a outra diminui.

Boa sorte!

Outros artigos da série

<< Leitura de um botão e acionamento de um LED no Arduino com a Franzininho C0Franzininho C0: Comunicação serial no Arduino >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
Inline Feedbacks
View all comments
Home » Maker » Controle de intensidade de um LED com PWM no Arduino usando a Franzininho C0

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste:


Seminário de
Sistemas Embarcados e IoT 2024
 
Data: 25/06 | Local: Hotel Holiday Inn Anhembi, São Paulo-SP
 
GARANTA SEU INGRESSO

 
close-link