淘晶驰+arduino控制步进电机

淘晶驰屏幕+arduino控制步进电机

ps:写的不好请指正。
1、准备材料

  • 淘晶驰屏幕(带有触屏功能)
  • arduino UNO板子
  • 面包板
  • 电源以及相关的配件
  • 步进电机+配套启动器
  • 电源设备交流转直流(根据自己电机相应适配)

2、整体思路
陶晶驰作为控制面板通过电机屏幕向arduino板发送控制信号,arduino接受到控制信号之后通过相应的程序分析,向启动器发送启动控制信号,带动步进电机做相应的转动。
在这里插入图片描述
3、接方式

  1. 启动器+步进电机+电源设备
    在这里插入图片描述
  2. arduino与启动器
    根据程序做出相应的改进(对照上图的接脉冲和接方向)。
    ps1:当用usb或者接上电源的情况下5v接口不用再外接电源板。使用usb或者电源接口直接供电即可。
    ps2:此图采用共阴接法,启动器的pul-和dir-要与arduino板GND相接。
    在这里插入图片描述
  3. arduino与陶晶驰屏幕
    A: 供电:我是使用官方电源和TTL转换器作为电源给屏幕供电(电源接上TTL,从TTL转换器的正负极分别接屏幕的正负极)。
    B:信号传输:屏幕的TX和RX线分别引出和arduino的TX和RX相连。
    ps:一点要从负极(GND)引线接到arduino的GND接口(我在连接的时候之前没有接地,只能通过TTL的usb接线与电脑连接才可以控制。)

4、代码

  1. arduino代码
//定义引脚
#define STEPPIN1 2
#define DIRPIN1 3

void receive_data(void);
void test_date(void);
void do_command(void);
void  qingchu(void);
String zifu="";
int mark;
int comdata[2]={0};
int go_mark=0;
int back_mark=0;
int stop_mark=0;

void setup()
{
  pinMode(STEPPIN1, OUTPUT);
  pinMode(DIRPIN1, OUTPUT);
  Serial.begin(9600);
}
 
void loop() {
if (Serial.available() >0)
       {
        receive_data();//接受数据函数
        test_date();//检验函数
        do_command();//执行函数
        qingchu();//初始化数据
        delay(50);
       }
}

void receive_data()
 {
int j=0;
while(Serial.available()>0)
{
  zifu+=char(Serial.read());
  Serial.println(zifu);
  delay(100);
  mark=1;
}
if (mark==1)
{
for(int i=0;i<zifu.length();i++)
{
  if(zifu[i]==',')
{
  j++;
}
else
{
  comdata[j]=comdata[j]*10+(zifu[i]-'0');
}
}
zifu=String("");
mark=0;
}
}

void test_date()
{
    if(comdata[0]==55)
    {
      if(comdata[1]==20)
      {
      go_mark=2;    
      }
      if(comdata[1]==30)
      {
      back_mark=2;    
      }
      if(comdata[1]==50)
      {
       stop_mark=2}
  }
 
}

void do_command()
{
  if(go_mark==2)
  {
    digitalWrite(DIRPIN1, HIGH);//方向
    digitalWrite(STEPPIN1, HIGH);//脉冲
    tone(STEPPIN1,500);//可以通过更改脉冲频率改变速度
  }
  
  if(back_mark==2)
  {
    digitalWrite(DIRPIN1, LOW);
    digitalWrite(STEPPIN1, HIGH);
    tone(STEPPIN1,500);
  }
  
  if(stop_mark==2)
  {
    digitalWrite(STEPPIN1, LOW);
    noTone(STEPPIN1);
  }
}

void qingchu()
{
  for(int i=0;i<=2;i++)
       {
        comdata[i]=0;
       }
        go_mark=0;
        back_mark=0;
        stop_mark=0;
        mark=0;
       Serial.flush();
}
  1. 陶晶驰屏幕代码
    屏幕按键界面(简单的构建了一个)
    在这里插入图片描述
代码部分:
点击前进(弹起事件)
prints "55,10",0
点击后退(弹起事件)
prints "55,20",0
点击停止(弹起事件)
prints "55,50",0

5、推荐学习网站
ps:并非广告,个人觉得不错的资源。

  1. arduino学习
    推荐太极创客,对于初学者有很大帮助。
    太极创客
  2. 陶晶驰
    有官方网站就很不错
    陶晶驰官网

6、附上视频
ps:这是以前做的拍的视频可能和这个有点不同,视频中是三个电机。但是原理都一样。

视频链接

最后希望这篇文章对你有很大帮助。

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: Arduino控制步进电机是一种广泛应用于自动化控制和机械控制的电子技术。步进电机以精准的控制方式向前移动,协助机器人或其他设备进行精确定位或轨迹运动。Arduino的调节使得控制步进电机变得简化,利用开发板的GPIO针脚进行控制,实现独立控制的多种模式,例如正转、反转、循环旋转等。 控制步进电机,可以通过PWM方式输出偏移电流,直接控制其speed,也可以通过固定控制电压的方式输出相应的控制信号,以实现对步进电机的转动控制。通过对控制信号的模拟与数字化,配合电机驱动芯片,可以完善步进电机控制方案。更进一步地,通过编程实现逆运算等算法,可以使步进电机实现更为精准的控制。 总的来说,Arduino控制步进电机,是一种性价比较高、较为广泛应用的控制方案。它不仅能够满足各种控制需求,也能够对电机使用环境进行监控与反馈,从而提升电机的安全性和可靠性。 ### 回答2: Arduino是一种简单易用的单片机控制器,可以通过编写代码来控制各种设备。其中,步进电机是一种能够实现精确控制的电机,常用于机器人、自动化仪器和精密机械等领域。 对于步进电机控制,需要了解步进电机的工作原理和控制方式。步进电机的转动是通过依次激活其中的每一组线圈,使得转子按照一定的步数逐步转动。因此,步进电机控制是通过对线圈的激活来实现的。 在Arduino中,步进电机控制需要使用特定的驱动板,如A4988、DRV8825等。这些驱动板可以接收Arduino的指令,并将其转换成对步进电机线圈的控制信号。驱动板通常包含多个引脚,其中包括用于控制步进电机转动方向、速度和步数的引脚。 在编写控制代码时,需要使用Arduino控制语句和相应的库函数。以A4988驱动板为例,需要使用AccelStepper库函数来实现步进电机控制。通过初始化步进电机对象,可以设置参数如最大转速、最大加速度等。然后通过调用相应的函数,如move()、run()等,可以控制步进电机的转动。 对于步进电机控制的具体实现,需要根据具体的步进电机、驱动板和控制需求进行具体设计和调试。同时,需要注意选择合适的电源、保护电路等,以确保步进电机的稳定性和安全性。 总之,通过合理的设计和编写控制代码,可以实现Arduino步进电机的精确控制,为各种自动化系统和机器人等设备提供可靠的运动控制。 ### 回答3: Arduino是一种开源硬件和软件平台,用于制作数字设备和交互对象。它采用了简单易学的语法和开发环境,使得对于初学者来说,可以方便灵活地控制电路板上的各种元件。而步进电机是一种特殊的电动机,它可以精确地转动一定的角度并保持转动位置不变。当需要实现精细控制的位置运动时,步进电机是一种相当理想的选择。 步进电机的驱动电路通常是由一个控制器芯片和一个驱动器芯片组成。控制器芯片负责接收来自Arduino板子的指令信号并将其转化为各相驱动信号,而驱动器芯片则将这些信号放大并输出到步进电机的各相线圈上。正常情况下,步进电机运动的距离与输出脉冲数呈线性关系,即每接收到一个脉冲信号,步进电机就会转动一定的角度。通过调整输出脉冲的频率和数目,可以实现不同速度和方向的控制。 要实现步进电机控制,我们需要编写相应的Arduino程序,并连接相应的元件。下面是一些基本步骤: 1. 连接硬件:将步进电机的各相线圈接入电源和驱动器芯片的相应引脚上,将驱动器芯片的电源地和控制信号引脚连接到Arduino板子的相应引脚上。 2. 编写程序:通过Arduino IDE编写控制程序,采用digitalWrite()和delay()等函数分别控制输出信号和时间延迟实现电机的精确定位旋转。 3. 测试运行:下载程序到Arduino板子中,将各连接线路接好,运行程序并观察步进电机的运转情况,调试程序和电路中可能存在的错误。 无论是传输相对较短的距离,还是实现精确的定位和控制步进电机都是一种非常常用的机电元件。通过Arduino控制步进电机,可以实现众多机械和自动化应用领域的创新和实践。在学习和实践的过程中,要特别注意电源和信号线的接线和安全问题,以确保正常的运行和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值