第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验

第1篇:Arduino与ESP32开发板的安装方法

第2篇:ESP32 helloword第一个程序示范点亮板载LED

第3篇:vscode搭建esp32 arduino开发环境

第4篇:vscode+platformio搭建esp32 arduino开发环境

ESP32开发板的 PWM(脉冲宽度调制)引脚。ESP32 开发板的所有 GPIO 引脚(Power、GND、Tx、Rx 和 EN 除外)均可用于获取 PWM信号

第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验_第1张图片

 LED的长引脚连接D5(GPIO5),短引脚连接GND

ESP32的LED PWM由16个独立通道组成,具有可配置的占空比和波周期。占空比的精度可以配置到16位分辨率。

在代码的第一部分中,我们将指定一些全局配置常量。第一个是为控制LED而产生的PWM信号的频率。我们将使用5000HZ的值。但请注意,频率的最大值尚不清楚,并且在 我们将要使用的功能的头文件中声明最大频率取决于所选的分辨率。

我们将以比特为单位指定LED PWM通道和PWM占空比的分辨率。同样从头文件中,我们可以看到我们可以选择0到15之间的通道,以及1到16位之间的分辨率。在这里我们将使用通道0和8位的分辨率。

int freq = 5000;
int ledChannel = 0;
int resolution = 8;
现在,在设置功能中,我们将配置LED PWM功能。首先,我们需要设置我们指定的通道、频率和分辨率。为此,我们调用ledcSetup函数,该函数以相同的顺序接收前面提到的3个参数作为输入。

ledcSetup(ledChannel, freq, resolution);
但是值得注意,通道不是我们控制LED的引脚。因此,我们需要将通道0(我们定义的那个)连接到我们希望生成PWM信号的数字GPIO引脚上。我这里连接的GPIO5引脚。我们调用ledcAttachPin函数,将GPIO引脚的编号和先前定义的PWM通道作为参数传递。

ledcAttachPin(5, ledChannel); 

编写代码来控制Arduino代码主循环中信号的占空比值。但最重要的功能是允许我们指定占空比值的功能。这是ledcWrite  函数,它接收PWM通道(不是GPIO的编号)作为第一个参数。

由于我们定义了8位分辨率,因此我们可以指定0到255(2 ^ 8 -1)之间的占空比值。因此,我们将在两个循环中迭代这些值,一个是递增的,另一个是递减的。

代码示范:

platformio创建项目后,打开main.cpp,拷贝示范代码

创建方法参考第4篇

第4篇:vscode+platformio搭建esp32 arduino开发环境

#include 

/*******************************************************
   ESP32PWM呼吸灯
   功能:实现LED呼吸灯
   引脚:D5(GPIO5)
   Designer: txwtech
   Date:2023-8-28
 *******************************************************/
#define LED_PWM 5 //把调用的GPIO引脚进行了一个宏定义
int freq = 5000;
int ledChannel = 0;
int resolution = 8;
void setup()
{
  ledcSetup(ledChannel, freq, resolution);
  ledcAttachPin(LED_PWM, ledChannel);
}
void loop()
{
  for (int dutyCycle = 0; dutyCycle <= 255; dutyCycle++)
  {
    ledcWrite(ledChannel, dutyCycle);
    delay(10);
  }
  for (int dutyCycle = 255; dutyCycle >= 0; dutyCycle--)
  {
    ledcWrite(ledChannel, dutyCycle);
    delay(10);
  }
}

doit版本platformio.ini配置参考:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp32doit-devkit-v1]
platform = espressif32
board = esp32doit-devkit-v1
framework = arduino
upload_speed = 921600
upload_port = COM8
monitor_port = COM8

espressif32版本参考配置:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
upload_speed = 921600
upload_port = COM6
monitor_port = COM6

编译并上传到esp32

第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验_第2张图片

 

你可能感兴趣的:(ESP32趣味开发,单片机,嵌入式硬件)