ESP32 PWM com Arduino IDE (saída analógica)

neste tutorial vamos mostrar-lhe como gerar sinais PWM com o ESP32 usando o Arduino IDE. Como exemplo, vamos construir um circuito simples que faz um LED usando o controlador PWM LED do ESP32. Também vamos mostrar como você pode obter o mesmo sinal PWM em diferentes GPIOs ao mesmo tempo.

Antes de prosseguir com este tutorial você deve ter o ESP32 add-on instalado em seu Arduino IDE., Siga um dos seguintes tutoriais para instalar o ESP32 no Arduino IDE, se você ainda não o fez.

  • Instalar o ESP32 Placa de Arduino IDE (instruções para Windows)
  • Instalar o ESP32 Placa de Arduino IDE (Mac e Linux instruções)

Nós também recomendamos tomar um olhar para os recursos a seguir:

  • primeiros passos com ESP32 Dev Módulo
  • ESP32 Pinagem de Referência: Quais pinos GPIO você deve usar?

Assista ao Tutorial de vídeo

Este tutorial está disponível em formato de vídeo (veja abaixo) e em formato escrito (continue lendo).,

Peças Necessárias

Para seguir este tutorial você precisará dessas partes:

  • ESP32 DOIT DEVKIT V1 Placa – ler melhor ESP32 desenvolvimento de quadros
  • 3x de 5mm LED
  • 3x de 330 Ohm resistor
  • Protoboard
  • fios Jumper

Você pode usar o anterior links ou ir diretamente para MakerAdvisor.com/tools para encontrar todas as peças para seu projetos com o melhor preço!,

ESP32 LED PWM Controlador

O ESP32 tem um LED PWM controlador com 16 canais independentes, que pode ser configurado para gerar sinais PWM com propriedades diferentes.

Aqui estão os passos que você terá que seguir para dim an LED com PWM usando o Arduino IDE:

1. Primeiro, você precisa escolher um canal PWM. Existem 16 canais de 0 a 15.2. Então, precisas de definir a frequência do sinal PWM. Para um LED, pode utilizar-se uma frequência de 5000 Hz.3., Você também precisa definir a resolução do ciclo de funcionamento do sinal: você tem resoluções de 1 a 16 bits. Vamos usar resolução de 8 bits, o que significa que você pode controlar o brilho LED usando um valor de 0 a 255.4. Em seguida, você precisa especificar em que GPIO ou GPIOs o sinal irá aparecer. Para isso você vai usar a seguinte função:

ledcAttachPin(GPIO, channel)

Esta função aceita dois argumentos. O primeiro é o GPIO que irá emitir o sinal, e o segundo é o canal que irá gerar o sinal.5., Finalmente, para controlar o brilho LED usando PWM, você usa a seguinte função:

ledcWrite(channel, dutycycle)

Esta função aceita como argumentos o canal que está gerando o sinal PWM, e o ciclo de funcionamento.

Dimming an LED

Let’s see a simple example to see how to use the ESP32 LED PWM controller using the Arduino IDE.

esquemático

fio an levou ao seu ESP32 como no diagrama esquemático seguinte. O LED deve estar ligado à GPIO 16.,

(Este esquema utiliza o ESP32 DEVKIT V1 versão do módulo com 30 GPIOs – se você estiver usando outro modelo, por favor verifique a pinagem para o conselho que você está usando.)

Nota: você pode usar qualquer pin que quiser, desde que ele possa atuar como uma saída. Todos os pinos que podem atuar como saídas podem ser usados como PWM pins. Para mais informações sobre o GPIOs ESP32, leia: referência do Pinout ESP32: que Pinos do GPIO você deve usar?

Código

abra o seu Arduino IDE e copie o seguinte código.,

Ver código bruto

começa por definir o pin a que o LED Está ligado. Neste caso, o LED Está ligado à GPIO 16.

const int ledPin = 16; // 16 corresponds to GPIO16

então, você define as propriedades do sinal PWM. Define uma frequência de 5000 Hz, escolhe o canal 0 para gerar o sinal e define uma resolução de 8 bits. Você pode escolher outras propriedades, diferentes destas, para gerar diferentes sinais PWM.,

const int freq = 5000; const int ledChannel = 0; const int resolution = 8;

No setup(), você precisa configurar o LED PWM com as propriedades que você definiu anteriormente usando a ledcSetup() função que recebe como argumentos, o ledChannel, a freqüência e a resolução, da seguinte forma:

ledcSetup(ledChannel, freq, resolution);

em seguida, você precisa escolher o GPIO você vai pegar o sinal de partir. Para isso, use a função ledcAttachPin () que aceita como argumentos o GPIO onde você quer obter o sinal, e o canal que está gerando o sinal. Neste exemplo, vamos obter o sinal no ledPin GPIO, que corresponde ao GPIO 16., O canal que gera o sinal é o ledChannel, que corresponde ao canal 0.

ledcAttachPin(ledPin, ledChannel);

no loop, você vai variar o ciclo de funcionamento entre 0 e 255 para aumentar o brilho LED.

E depois, entre 255 e 0 para diminuir o brilho.

para definir o brilho do LED, basta usar a função ledcWrite() que aceita como argumentos o canal que está gerando o sinal e o ciclo de funcionamento.

ledcWrite(ledChannel, dutyCycle);

como estamos usando resolução de 8 bits, o ciclo de funcionamento será controlado usando um valor de 0 a 255., Note que na função ledcWrite() usamos o canal que está gerando o sinal, e não a GPIO.

testando o exemplo

envie o código para o seu ESP32. Certifique-se de que tem o tabuleiro certo e o porta de comunicação seleccionados. Olha para o teu circuito. Você deve ter um LED dimmer que aumenta e diminui o brilho.

Recebendo o Mesmo Sinal em Diferentes Artigos

Você pode obter o mesmo sinal do mesmo canal em diferentes Artigos., Para conseguir isso, você só precisa anexar esses GPIOs ao mesmo canal na configuração().

vamos modificar o exemplo anterior para dim 3 LEDs usando o mesmo sinal PWM do mesmo canal.

Esquemática

Adicionar mais dois LEDs para seu circuito, seguindo o seguinte esquema:

(Este esquema utiliza o ESP32 DEVKIT V1 versão do módulo com 30 GPIOs – se você estiver usando outro modelo, por favor, verifique a pinagem para o conselho que você está usando.,)

Código

Copie o seguinte código para a sua IDE Arduino.

Ver código bruto

Este é o mesmo código que o anterior, mas com algumas modificações. Nós definimos mais duas variáveis para dois novos LEDs, que se referem a GPIO 17 e GPIO 5.

const int ledPin2 = 17; // 17 corresponds to GPIO17 const int ledPin3 = 5; // 5 corresponds to GPIO5

então, na configuração(), adicionamos as seguintes linhas para atribuir ambos os GPIOs ao canal 0. Isto significa que teremos o mesmo sinal, que está sendo gerado no canal 0, em ambos os GPIOs.

ledcAttachPin(ledPin2, ledChannel); ledcAttachPin(ledPin3, ledChannel);

Testing the Project

Upload the new sketch to your ESP32., Certifique-se de que tem o tabuleiro certo e o porta de comunicação seleccionados. Agora, dê uma olhada no seu circuito:

Todos os Artigos estão com a saída do mesmo sinal PWM. Assim, todos os três LEDs aumentam e diminuem o brilho simultaneamente, resultando em um efeito sincronizado.

Quebra automática

Em resumo, neste post, você aprendeu como usar o LED PWM controlador do ESP32 com o Arduino IDE para escurecer um LED., Os conceitos aprendidos podem ser usados para controlar outras saídas com PWM, definindo as propriedades certas para o sinal.

temos outros tutoriais relacionados com ESP32 que você também pode gostar:

  • ESP32 Servidor Web – Arduino IDE
  • ESP32 registro de Dados de Temperatura para Cartão MicroSD
  • ESP32 Servidor Web com BME280 – Mini-Estação Meteorológica
  • ESP32 vs ESP8266 – Prós e Contras

Este é um trecho de nosso curso: Saiba ESP32 com o Arduino IDE. Se você gosta de ESP32 e você quer aprender mais, recomendamos matricular-se em aprender ESP32 com o curso Arduino IDE.

Leave a Comment