27894浏览
楼主: 驴友花雕

[ESP8266/ESP32] 最像Arduino Uno的ESP32开发板之WeMos D1 R32

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2021-7-10 16:21:40

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目之五:LED流水灯(四灯)
实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验一百七十七:Wemos D1 R32 ESP32开发板
  4.   项目之五:LED流水灯(四灯)
  5. */
  6. char LEDPins[] = {14, 16, 17, 27}; // 设定连接的引脚
  7. int i = 0;
  8. int L1 = 0;
  9. int len = 0;
  10. void setup() {
  11.   len = sizeof(LEDPins) / sizeof(char); //求数组的长度
  12.   for (i = 0; i < len; i++) { //用for循环设置引脚为输出模式
  13.     pinMode(LEDPins[i], OUTPUT);
  14.     digitalWrite(LEDPins[i], LOW);
  15.   }
  16. }
  17. void loop() {
  18.   digitalWrite(LEDPins[L1], HIGH);
  19.   delay(100);
  20.   digitalWrite(LEDPins[L1], LOW);
  21.   delay(100);
  22.   L1 = L1 + 1;
  23.   if (L1 > len || L1 < 0) //判断是否到最后一个灯或最前面的灯
  24.     L1 = 0; //LED灯从头开始
  25. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-10 16:41:47

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目之五:LED流水灯(四灯)

实验场景图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-10 17:27:31

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目之六:ESP32 触摸测试和 LED 控制

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验一百七十七:Wemos D1 R32 ESP32开发板
  4.   项目之六:ESP32 触摸测试和 LED 控制
  5.   实验接线:触摸引脚 ==> D4,LED 引脚 ==> D18
  6. */
  7. #define TOUTCH_PIN T0 // ESP32 Pin D4
  8. #define LED_PIN 18
  9. int touch_value = 100;
  10. void setup() {
  11.   Serial.begin(115200);
  12.   delay(1000); //给我时间调出串行监视器
  13.   Serial.println("ESP32 Touch Test");
  14.   Serial.println("ESP32 触控测试");
  15.   pinMode(LED_PIN, OUTPUT);
  16.   digitalWrite (LED_PIN, LOW);
  17. }
  18. void loop(){
  19.   touch_value = touchRead(TOUTCH_PIN);
  20.   Serial.println(touch_value);  // 使用 T0 获取数据
  21.   
  22.   if (touch_value < 50){
  23.     digitalWrite (LED_PIN, HIGH);
  24.     Serial.println("有触控灯亮");
  25.   }
  26.   else{
  27.     digitalWrite (LED_PIN, LOW);
  28.   }
  29.   delay(1000);
  30. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-10 17:41:09

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之六:ESP32 触摸测试和 LED 控制

实验串口返回情况

最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-10 17:53:27

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之六:ESP32 触摸测试和 LED 控制

实验场景图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-10 18:04:36

ESP32有10个内部电容式触摸传感器。我们可以利用这些传感器制作触摸式按键。以下就是这些传感器相对应的GPIO引脚:

T0:GPIO 4
T1:GPIO 0
T2:GPIO 2
T3:GPIO 15
T4:GPIO 13
T5:GPIO 12
T6:GPIO 14
T7:GPIO 27
T8:GPIO 33
T9:GPIO 32


最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-11 19:20:03

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之七: ESP32的LED PWM 实现呼吸灯
  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验一百七十七:Wemos D1 R32 ESP32开发板
  4.   项目之七: ESP32的LED PWM 实现呼吸灯
  5.   实验接线:LED 引脚 ==> D18
  6. */
  7. #define LED_PWM 18 //把调用的GPIO引脚进行了一个宏定义
  8. int freq = 5000;
  9. int ledChannel = 0;
  10. int resolution = 8;
  11. void setup() {
  12.   ledcSetup(ledChannel, freq, resolution);
  13.   ledcAttachPin(LED_PWM, ledChannel);
  14. }
  15. void loop() {
  16.   for (int dutyCycle = 0; dutyCycle <= 255; dutyCycle++) {
  17.     ledcWrite(ledChannel, dutyCycle);
  18.     delay(7);
  19.   }
  20.   for (int dutyCycle = 255; dutyCycle >= 0; dutyCycle--) {
  21.     ledcWrite(ledChannel, dutyCycle);
  22.     delay(7);
  23.   }
  24. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-11 19:31:17

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

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

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

  1. int freq = 5000;
  2. int ledChannel = 0;
  3. int resolution = 8;
复制代码

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


  1. ledcSetup(ledChannel, freq, resolution);
复制代码

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


  1. ledcAttachPin(2, ledChannel);
复制代码

以下是完整的初始化设置,以及一些常量的设置:


  1. #define LED_PWM 2 //把调用的GPIO引脚进行了一个宏定义
  2. int freq = 5000;
  3. int ledChannel = 0;
  4. int resolution = 8;
  5. void {
  6.     ledcSetup(ledChannel, freq, resolution);
  7.     ledcAttachPin(LED_PWM, ledChannel);
  8. }
复制代码

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-11 19:42:11

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之七: ESP32的LED PWM 实现呼吸灯

  实验场景图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 11:16:51

本帖最后由 驴友花雕 于 2021-7-12 11:31 编辑

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之八: ESP32主板灯反转闪烁
  实验开源仿真编程(Linkboy V4.60)


最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 11:32:19

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之八: ESP32主板灯反转闪烁
  实验开源仿真编程(Linkboy V4.60)

  项目仿真运行的动态图   最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 12:59:50

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之九: 按钮控制ESP32主板灯的亮灭
  实验开源仿真编程(Linkboy V4.60)

最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 13:58:59

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之九: 按钮控制ESP32主板灯的亮灭
  实验开源仿真编程(Linkboy V4.60)

  项目仿真运行的动态图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 14:00:58

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之九: 按钮控制ESP32主板灯的亮灭
  实验开源仿真编程(Linkboy V4.60)

  实验场景图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 14:42:43

本帖最后由 驴友花雕 于 2021-7-12 15:51 编辑

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之十: 串口数据收发
  实验开源仿真编程(Linkboy V4.60)
最像Arduino Uno的ESP32开发板之WeMos D1 R32图1




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 14:49:25

本帖最后由 驴友花雕 于 2021-7-12 16:00 编辑

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之十: 串口数据收发
  实验开源仿真编程(Linkboy V4.60)
  项目串口返回情况

最像Arduino Uno的ESP32开发板之WeMos D1 R32图1



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 15:12:27

本帖最后由 驴友花雕 于 2021-7-12 16:00 编辑

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目之十: 串口数据收发
  实验开源仿真编程(Linkboy V4.60)

  项目仿真运行的动态图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 16:08:09

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目十一:读取模拟量串口发送数值
  实验开源仿真编程(Linkboy V4.60)

最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 16:26:52

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目十一:读取模拟量串口发送数值
  实验开源仿真编程(Linkboy V4.60)
  项目串口返回情况

最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 16:38:53

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目十一:读取模拟量串口发送数值
  实验开源仿真编程(Linkboy V4.60)

  项目仿真运行的动态图  最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-7-12 16:49:39

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百七十七:Wemos D1 R32 ESP32开发板
  项目十二:随机数与读取模拟量
  实验开源仿真编程(Linkboy V4.60)

最像Arduino Uno的ESP32开发板之WeMos D1 R32图1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail