735|0

223

帖子

3

TA的资源

一粒金砂(高级)

楼主
 

【ADI TMC2208 步进电机评估板】第六篇:手机蓝牙控制步进电机运动 [复制链接]

本帖最后由 Maker_kun 于 2024-9-6 21:01 编辑

ESP32自带蓝牙功能,通过无线蓝牙即可与手机进行通讯,通过手机发出的指令即可控制,为方便演示,通过简单指令控制步进电机正反转运动

蓝牙指令 运动状态 备注
指令A 正转运动 蓝牙发送“A”
指令B 反转运动 蓝牙发送“B”

 

程序代码

打开案例库

   

案例程序代码,在此基础进行修改

 

代码

#include "BluetoothSerial.h"

String device_name = "ESP32-BT-Slave";

// Check if Bluetooth is available
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

// Check Serial Port Profile
#if !defined(CONFIG_BT_SPP_ENABLED)
#error Serial Port Profile for Bluetooth is not available or not enabled. It is only available for the ESP32 chip.
#endif

const int stepPin=13; //步进引脚
const int dirPin=12;  //方向引脚
const int enPin=14;   //使能引脚

char BT_date;//蓝牙接收字符串

BluetoothSerial SerialBT;

void setup() {
  Serial.begin(115200);
  SerialBT.begin(device_name);  //Bluetooth device name
  //SerialBT.deleteAllBondedDevices(); // Uncomment this to delete paired devices; Must be called after begin
  Serial.printf("The device with name \"%s\" is started.\nNow you can pair it with Bluetooth!\n", device_name.c_str());

  pinMode(stepPin,OUTPUT);
  pinMode(dirPin,OUTPUT);
  pinMode(enPin,OUTPUT);
  digitalWrite(enPin,HIGH); //打开使能
  digitalWrite(dirPin,HIGH); //控制转动方向

}

void loop() {

int i;//控制转动步数
i=3000;
  if (SerialBT.available()) 
  {
    BT_date=SerialBT.read();
  }
  if (BT_date==0x41) 
  {
    SerialBT.write(BT_date);
    BT_date=0x00;//清楚数据
    digitalWrite(enPin,LOW); //打开电机使能
      digitalWrite(dirPin,HIGH); //正转
      while(i)
      {
       i--;
       digitalWrite(stepPin,HIGH);
       delayMicroseconds(100);
       digitalWrite(stepPin,LOW);
       delayMicroseconds(100); 
       }
  }

  if (BT_date==0x42) 
  {
    SerialBT.write(BT_date);
    BT_date=0x00;//清楚数据
      digitalWrite(dirPin,LOW); //正转
      digitalWrite(enPin,LOW); //打开电机使能
      while(i)
      {
       i--;
       digitalWrite(stepPin,HIGH);
       delayMicroseconds(100);
       digitalWrite(stepPin,LOW);
       delayMicroseconds(100); 
       }
  }
  else
  {
    digitalWrite(enPin,HIGH); //关闭电机使能
  }

  delay(20);
}

 

实物演示:

使用的蓝牙APP叫作SPP蓝牙串口助手,可以自定义发送字符串内容,有快捷键操作,很方便

 

视频演示

微型步进电机滑台控制

蓝牙控制步进电机运动1

步进电机控制

蓝牙控制步进电机运动2

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表