FAVORITAR

Projeto Iluminação Automatizada com LDR e Franzininho C0

Introdução

Você já percebeu como os postes de luz acendem automaticamente ao anoitecer? Isso ocorre devido à presença de um sensor que detecta a luminosidade do ambiente. Esse sensor, conhecido como Fotoresistor ou LDR (Light Dependent Resistor), desempenha esse papel importante nos sistemas de iluminação automatizada. Neste tutorial, vamos simular esse funcionamento utilizando a Franzininho C0.

Componentes necessários

  • 1 Sensor de Luminosidade LDR
  • 1 LED 
  • 1 resistor 300 ohms
  • 1 resistor 10k ohms
  • 1 franzininho C0

Montagem circuito

Configuração CubeMx

  1. Abra STM32Cube , crie um novo projeto e selecione o microcontrolador de destino “STM32C011F6P6”. 
  1. Vá para a página de configurações de relógio e em HCLK digite 48 MHz para a frequência de saída desejada do sistema. Pressione a tecla “Enter” e deixe o aplicativo resolver os divisores/multiplicadores PLL necessários para atingir a taxa de clock desejada. Depois volte para a página de configuração dos pinos, selecione “Trace and Debug” e  habilite “Serial Wire.
  1. Em Analog > ADC1 habilite o “IN5” e mantenha as demais configurações ADC no modo padrão. 
  1. Configure o pino “PB6” como “TIM1_CH3”. Em Timers > TIM1, selecione “Internal Clock” para o Clock Source e “PWM Generation CH3” para o Channel3. Ajuste o Prescaler para 48-1 e o Counter Period para 1000-1. Para mais detalhes sobre os valores escolhidos, consulte o tutorial disponível em: https://embarcados.com.br/entendendo-o-controle-pwm-e-aplicando-no-franzininho-c0/ 
  1. Por fim, gere o código em “Project” > “Generate Code”.

Implementando o código

  1. Abra o arquivo em Core > Src > main.c 
  1. Crie as seguintes variáveis globais:
  1. Modifique a função principal com o seguinte:

Esse código integra a funcionalidade de leitura do ADC e controle PWM. 

  • HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3): inicia a geração de PWM no canal 3 do TIM1. 
  • HAL_ADC_Start(&hadc1): inicia a conversão no ADC1.
  • HAL_ADC_PollForConversion(&hadc1, 1000): espera até que a conversão seja completada ou até que expire o tempo máximo definido (1000 ms).
  • HAL_ADC_GetValue(&hadc1): obtém o valor digital convertido pelo ADC1.
  • Calculando o valor de pwm – pwm = 1000 – ((leitura * 1000) / 4095): cálculo é feito com base na leitura do ADC. A fórmula inversa garante que quanto maior a leitura do ADC (mais luz no ambiente), menor será o valor do PWM (led desligado).
  • __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_3, pwm): define o ciclo de trabalho do PWM no canal 3 do TIM1. Aqui, pwm é calculado com base na leitura do ADC, determinando a intensidade do sinal PWM enviado para o dispositivo controlado.
  1. O código modificado pode ser visto na imagem abaixo:

Gravação do código

Ao finalizar o código, partiremos para gravação. Nessa etapa você pode utilizar o ST-Link seguindo as conexões adequadas ou utilizar um cabo USB como explicado no tutorial:  https://embarcados.com.br/gravar-franzininho-c0-via-stm32cubeprogrammer/.

Funcionamento

Conclusão

Neste tutorial prático ensinamos criar uma iluminação automatizada com LDR e Franzininho C0. Utilizando ADC para capturar dados analógicos do ambiente e PWM para controlar a intensidade do LED.

Potencializando a automação com conectores menores, mais rápidos e mais fortes

Conecte-se com Confiança: Suporte à Indústria 4.0, Manufatura Inteligente e a Transição para a Indústria 5.0

Saiba mais

Outros artigos da série

<< Projeto Prático: Utilizando o Módulo GPS GY-NEO6MV2 com a Franzininho C0
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 » Hardware » Projeto Iluminação Automatizada com LDR e 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