23 步进电机

文章作者:里海
来源网站:ESP32专栏


简介

    步进电机

电路

在这里插入图片描述

代码

#include <Arduino.h>
#define IN_1  13
#define IN_2  12
#define IN_3  14
#define IN_4  27


// 设置延时,这个时间不能设置太小,否则电机来不及响应
int delay_time = 5;

void setup() 
{
   
  // 设置输出模式
  pinMode(IN_1, OUTPUT);
  pinMode(IN_2, OUTPUT);
  pinMode(IN_3, OUTPUT);
  pinMode(IN_4, OUTPUT);


  // 单四拍模式
  for (int i=0;i<256;i++) 
  {
   
    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 1);
    delay(delay_time);
    }

    delay(1000);

    // 双四拍模式
    for (int i=0;i<256;i++) 
    {
   
    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 1);
    delay(delay_time);

    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 1);
    delay(delay_time);
    }

    delay(1000);

    // 双四拍模式,顺时针转 180°
    for (int i=0;i<256;i++) 
    {
   
    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 1);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 1);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 0);
    delay(delay_time);
    }

    delay(1000);

    // 八拍模式
    for (int i=0;i<256;i++) 
    {
   
    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
    delay(delay_time);0.1

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 1);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 0);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 1);
    digitalWrite(IN_4, 1);
    delay(delay_time);

    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 1);
    delay(delay_time);

    digitalWrite(IN_1, 1);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 1);
    delay(delay_time);
    }
    

    // 步进电机运行完后断点,不然会发热
    digitalWrite(IN_1, 0);
    digitalWrite(IN_2, 0);
    digitalWrite(IN_3, 0);
    digitalWrite(IN_4, 0);
}

void loop() 
{
   

}

代码(使用CheapStepper库,这个用起来不是很爽)

#include <Arduino.h>
#include <CheapStepper.h>


#define IN_1  13
#define IN_2  12
#define IN_3  14 
#define IN_4  27 


CheapStepper stepper (IN_1, IN_2, IN_3, IN_4); 

bool clockwise = true;

void setup() 
{
   
  stepper.setRpm(10); //设定速度(10-24转/分,高低扭矩) <6rpm阻塞,可能会过热
  stepper.moveTo(clockwise, 2048);//旋转180°

  delay(1000);
  stepper.moveDegrees(clockwise, 90);//旋转90°
}

void loop() 
{
   
 
}

在这里插入图片描述

什么是ESP32?

ESP32是近几年最受欢迎和最实用的模块之一。除了Wi-Fi模块,该模块还包含蓝牙4.0模块。双核CPU工作频率为80至240 MHz,包含两个Wi-Fi和蓝牙模块以及各种输入和输出引脚, ESP32是物联网项目的理想选择。
在这里插入图片描述

ESP32模块引脚分布

在这里插入图片描述
虽然ESP32的引脚数比常用的处理器少,但在引脚上复用多个功能时不会遇到任何问题。
警告:ESP32引脚的电压电平为3.3伏。如果要将ESP32连接到其他工作电压为5伏的设备,则应使用电平转换器转换电压电平。

  • 电源引脚:该模块有两个电源引脚 5V和3.3V。您可以使用这两个引脚来向其他设备和模块供电。
  • GND引脚:该模块的接地有3个引脚。
  • 启用引脚(EN):该引脚用于启用和禁用模块。引脚为高电平时启用模块,低电平禁用模块。
  • 输入/输出引脚(GPIO):您可以使用32个GPIO引脚与LED、开关和其他输入/输出设备进行通信。
    您可以在内部上拉或下拉这些引脚。
    注意:GPIO6至GPIO11引脚(SCK/CLK,SDO/SD0,SDI/SD1,SHD/SD2,SWP/SD3和SCS/CMD引脚)用于模块内部闪存的SPI通信,我们不建议使用它们。
  • ADC:您可以使用此模块上的16个ADC引脚将模拟电压(某些传感器的输出)转换为数字电压。其中一些转换器连接到内部放大器,能够以高精度测量小电压。
  • DAC:ESP32模块有两个数模转换器,精度为8位。
  • 触摸焊盘:ESP32模块上有10个引脚,对电容变化很敏感。您可以将这些引脚连接到某些焊盘(PCB上的焊盘),并将它们用作触摸开关。
  • SPI:该模块上有两个SPI接口,可用于连接显示屏、SD / microSD存储卡模块、外部闪存等。
  • I2C:SDA和SCL引脚用于I2C通信。
  • 串行通信(UART):该模块上有两个UART串行接口。使用这些引脚,您可以在两个设备之间传输高达5Mbps的信息。 UART0还具有CTS和RTS控制。
  • PWM:几乎所有ESP32输入/输出引脚都可用于PWM(脉冲宽度调制)。使用这些引脚可以控制电机、LED灯的亮度和RGB灯的颜色等。

ESP32模块模式

ESP32芯片有5种模式:

  • 活动模式:在这种模式下,Wi-Fi和蓝牙发射器和接收器的所有部分都是活动的。在这种情况下,电流消耗在80和260mA之间。
  • 调制解调器睡眠模式:处理器仍处于活动状态,但Wi-Fi和蓝牙已禁用。在这种情况下,电流消耗在3到20mA之间。
  • 轻度睡眠模式:主处理器停止工作,但RTC单元和ULP处理器单元仍处于活动状态。电流消耗约为0.8 mA。
  • 深度睡眠模式:只有RTC单元处于活动状态。在这种情况下,Wi-Fi和蓝牙通信的数据存储在RTC的存储器中。在此模式下,电流消耗在10到150μA之间。
  • 休眠模式:除了用于时钟的RTC定时器和连接到RTC的一些I / O引脚外,所有单元均被禁用。 RTC定时器或连接的引脚可以将芯片从此状态唤醒。在这种情况下,电流消耗约为2.5μA。
    有关更多信息,请查看模块数据表。

在Arduino IDE上开发ESP32

《在Arduino IDE上开发ESP32》

在VSCode中使用PlatformIO开发ESP32

《在VSCode中使用PlatformIO开发ESP32》

ESP32技术专栏

ESP32专栏

相关推荐

  1. 电机调速原理

    2024-02-02 09:32:01       35 阅读
  2. 电机综合控制

    2024-02-02 09:32:01       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-02 09:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-02 09:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-02 09:32:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-02 09:32:01       20 阅读

热门阅读

  1. advPython-3

    2024-02-02 09:32:01       31 阅读
  2. Vue中的插槽Slot如何使用

    2024-02-02 09:32:01       26 阅读
  3. 81.如何评估一台服务器能开启多少Go协程

    2024-02-02 09:32:01       24 阅读
  4. 【笔记】Helm-5 Chart模板指南-6 流控制

    2024-02-02 09:32:01       33 阅读
  5. OR-Tools的CP-SAT求解器常用参数设置与说明

    2024-02-02 09:32:01       33 阅读
  6. 2024美赛数学建模F题思路&源码

    2024-02-02 09:32:01       32 阅读
  7. 关于在MacOS安装虚拟机的全过程

    2024-02-02 09:32:01       32 阅读
  8. TP5手动集成GatewayWorker

    2024-02-02 09:32:01       32 阅读