单片机与电机的连线_oled与单片机连线 - CSDN
  • 单片机控制步进电机-线路连接 说明:如何利用单片机去控制步进电机?本案例讲解的内容是硬件连接部分,采用常用的电子器件去实现单片机控制步进电机的功能。后续会分别讲解单片机程序,S曲线生成方法,上位机等...

    单片机控制步进电机-线路连接

    说明:如何利用单片机去控制步进电机?本案例讲解的内容是硬件连接部分,采用常用的电子器件去实现单片机控制步进电机的功能。后续会分别讲解单片机程序,S曲线生成方法,上位机等相关内容。

    硬件清单:
    1、单片机最小系统(本案例使用Atmega16芯片)
    2、步进电机(二相四线)
    3、稳压电源(24V)
    4、步进电机驱动器(TB6600)
    步进电机单片机最小系统
    稳压电源驱动器
    整体连接图:
    整体图
    原理图:
    原理图

    控制原理:
    1、单片机最小系统作用:
    ①输出脉冲到步进电机驱动器,从而控制步进电机的速度大小
    ②控制步进电机的使能
    ③控制步进电机的转动方向
    2、步进电机作用:
    ①提供机械动力
    3、稳压电源作用:
    ①为步进电机提供电源
    4、步进电机驱动器作用:
    ①将单片机脉冲信号转化为步进电机的驱动信号,简化控制过程

    硬件连接图:
    实物连接图与原理图如上图所示。Atmega16单片机最小系统(其他单片系统接线原理类同)与步进电机驱动器(TB6600)采用共阴极接法(驱动器的ENA-、DIR-、PUL-与单片机的GND连接)。
    单片机PA0口控制ENA+,PA0高电位的时,步进电机掉电,步进电机自由状态,用手可以转动;PA0低电位的时,步进电机上电,根据输入的脉冲信号进行转动,无脉冲信号时处于自锁状态;
    单片机PA1口控制DIR+,PA1高电位与低点位分别对应步进电机的正转与反转;
    单片机PA2口控制PUL+,通过PA2口高低电位的切换形成脉冲,单片机输出一个脉冲(一个高电位加一个低电位即为一个脉冲),步进电机就会走一步。对于二相四线步进电机而言,在驱动器无细分的情况下,单片机一个脉冲对应步进电机一个步距角1.8°;驱动器如果是2细分状态,单片机一个脉冲对应步进电机转动角度为1.8°/2=0.9°;驱动器如果是4细分状态,单片机一个脉冲对应步进电机转动角度为1.8°/4=0.45°;其他细分依次类推。TB6600驱动器上的SW1、SW2、SW3三个拨码开关控制细分数(1细分、2细分、4细分、8细分、16细分、32细分),细分数越大,步进电机转动过程中越平稳。通过脉冲的快慢可以控制步进电机的速度,一般分为三个过程:开始加速、然后匀速、最后减速,后续会单独讲解控制程序部分。
    步进电机的A、B相分别接在驱动器A、B相。在不知道步进电机那两根线是一相的时候,有个简单的判断方法:将步进电机的任意两更线接在一起,用手转动步进电机,如果有较大的阻力说明这两根线对应的是一相。
    稳压电源输入端接交流220V,输出端正负极(本案例采用的是24V步进电机)分别接在驱动器VCC、GND即可。
    至此硬件电路连接完成,下篇将讲解单片机程序。https://blog.csdn.net/LuDanTongXue/article/details/87869806
    (微信ID:saskingku)

    展开全文
  • 我自己做毕设时画得单片机控制直流伺服电机的Proteus仿真
  • 1、直流电机的基本模型 下图为一台最简单的两极直流电机模型,它的固定部分(定子)为两个静止的磁极N、S;旋转部分(转子)为电枢线圈abcd,线圈的首端和末端分别接到两个相互绝缘的圆弧形的换向片上。换向片...

    1、直流电机的基本模型

        下图为一台最简单的两极直流电机模型,它的固定部分(定子)为两个静止的磁极N、S;旋转部分(转子)为电枢线圈abcd,线圈的首端和末端分别接到两个相互绝缘的圆弧形的换向片上。换向片与一对静止的电刷B1、B2接触,B1接电源正极,B2接电源负极。电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。

    2、直流电动机的工作原理

      

        如上图左图所示,则有直流电流从电刷 A 流入,经过线圈abcd,从电刷 B 流出,根据电磁力定律,载流导体ab和cd收到电磁力的作用,其方向可由左手定则判定,两段导体受到的力形成了一个转矩,使得转子逆时针转动。如果转子转到如上图右图所示的位置,电刷 A 和换向片2接触,电刷 B 和换向片1接触,直流电流从电刷 A 流入,在线圈中的流动方向是dcba,从电刷 B 流出。

      此时载流导体ab和cd受到电磁力的作用方向同样可由左手定则判定,它们产生的转矩仍然使得转子逆时针转动。这就是直流电动机的工作原理。外加的电源是直流的,但由于电刷和换向片的作用,在线圈中流过的电流是交流的,其产生的转矩的方向却是不变的。

      将直流电动机的工作原理归结如下:

      将直流电源通过电刷接通电枢绕组,使电枢导体有电流流过。

      电机内部有磁场存在。

      载流的转子(即电枢)导体将受到电磁力 f 的作用

      所有导体产生的电磁力作用于转子,使转子以n(转/分)旋转,以便拖动机械负载。

    3、直流电机的结构

    电机 包括 定子(电磁部分,机械部分)和转子(机械部分,电磁部分 )

     定子的主要部件包括:直流电机的定子由主磁极机座换向极端盖电刷装置等部件组成。

    主磁极 主磁极的作用是建立主磁场。绝大多数直流电机的主磁极不是用永久磁铁而是由励磁绕组通以直流电流来建立磁场。主磁极由主磁极铁心和套装在铁心上的励磁绕组构成。主磁极铁心靠近转子一端的扩大的部分称为极靴,它的作用是使气隙磁阻减小,改善主磁极磁场分布,并使励磁绕组容易固定。为了减少转子转动时由于齿槽移动引起的铁耗,主磁极铁心采用1~1.5mm的低碳钢板冲压一定形状叠装固定而成。主磁极上装有励磁绕组,整个主磁极用螺杆固定在机座上。主磁极的个数一定是偶数,励磁绕组的连接必须使得相邻主磁极的极性按 N,S 极交替出现。

    机座 ——机座有两个作用,一是作为主磁极的一部分,二是作为电机的结构框架。 机座中作为磁通通路叠部分称为磁轭。机座一般用厚钢板弯成筒形以后焊成,或者用铸钢件(小型机座用铸铁件)制成。机座的两端装有端盖。

    换向极 ——换向极是安装在两相邻主磁极之间的一个小磁极,它的作用是改善直流电机的换向情况,使电机运行时不产生有害的火花。换向极结构和主磁极类似,是由换向极铁心和套在铁心上的换向极绕组构成,并用螺杆固定在机座上。换向极的个数一般与主磁极的极数相等,在功率很小的直流电机中,也有不装换向极的。换向极绕组在使用中是和电枢绕组相串联的,要流过较大的电流,因此和主磁极的串励绕组一样,导线有较大的截面。

    端盖 —— 端盖装在机座两端并通过端盖中的轴承支撑转子,将定转子连为一体。同时端盖对电机内部还起防护作用。

    电刷装置——电刷装置是电枢电路的引出(或引入)装置,它由电刷,刷握,刷杆和连线等部分组成,下图所示,电刷是石墨或金属石墨组成的导电块,放在刷握内用弹簧以一定的压力按放在换向器的表面,旋转时与换向器表面形成滑动接触。刷握用螺钉夹紧在刷杆上。每一刷杆上的一排电刷组成一个电刷组,同极性的各刷杆用连线连在一起,再引到出线盒。刷杆装在可移动的刷杆座上,以便调整电刷的位置。

    直流电机的转动部分称为转子,又称电枢。转子部分包括电枢铁心电枢绕组换向器转轴轴承风扇等。

    电枢铁心 —— 电枢铁心既是主磁路的组成部分,又是电枢绕组支撑部分;电枢绕组就嵌放在电枢铁心的槽内。为减少电枢铁心内的涡流损耗,铁心一般用厚0.5mm且冲有齿、槽的型号为DR530或DR510的硅钢片叠压夹紧而成,如下图所示。小型电机的电枢铁心冲片直接压装在轴上,大型电机的电枢铁心冲片先压装在转子支架上,然后再将支架固定在轴上。为改善通风,冲片可沿轴向分成几段,以构成径向通风道。

    电枢绕组——电枢绕组由一定数目的电枢线圈按一定的规律连接组成,他是直流电机的电路部分,也是感生电动势,产生电磁转矩进行机电能量转换的部分。线圈用绝缘的圆形或矩形截面的导线绕成,分上下两层嵌放在电枢铁心槽内,上下层以及线圈与电枢铁心之间都要妥善地绝缘(下图),并用槽楔压紧。大型电机电枢绕组的端部通常紧扎在绕组支架上。

    换向器——前面已经指出,在直流发电机中,换向器起整流作用,在直流电动机中,换向器起逆变作用,因此换向器是直流电机的关键部件之一。换向器由许多具有鸽尾形的换向片排成一个圆筒,其间用云母片绝缘,两端再用两个V形环夹紧而构成,如下图所示。每个电枢线圈首端和尾端的引线,分别焊入相应换向片的升高片内。小型电机常用塑料换向器,这种换向器用换向片排成圆筒,再用塑料通过热压制成。

     

    直流电机的驱动电路电路图为:

        直流电机的驱动芯片是ULN2003,ULN2003是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载。单个达林顿对的集电极电流是500mA。达林顿管并联可以承受更大的电流。此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED气体放电),线路驱动器和逻辑缓冲器。
      ULN2003的每对达林顿管都有一个2.7kΩ串联电阻,可以直接和TTL或5V CMOS装置。
      主要特点
      * 500mA 额定集电极电流(单个输出)
      * 高电压输出:50V
      * 输入和各种逻辑类型兼容
     * 继电器驱动器 

    ULN2003芯片的逻辑图为:

    当相应的B引脚输入1时,对应的C引脚输出0,而当 相应的B引脚输入0时,对应的C引脚输出1.

      实际物理连线图如下:

              

     示例程序如下:

       #include "reg52.h"
    
       sbit motor = P1^0;
    
       typedef unsigned char u8;
       typedef unsigned int u16;
    
     
    
     
    
    
       void delay(u16 x)
       {
       	  while(x--);
       }
    
       void main()
       {
       
       u8 i;
    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
    
       motor = 0; //电机先停止
       
       for(i = 0; i < 100; i ++) //运行一段时间
       {
       motor = 1;
       delay(5000);
       }
    
       motor = 0; //电机最终停止
    
       while(1) //空跑
       {
      
       }
       	  
       }

     

    展开全文
  • 步进电机是一种将电脉冲转化为角位移的执行机构。当步进电机的驱动器接收到一...下面是连接图,右上角是 Arduino 驱动器的连线,VCC、脉冲、方向、使能是单片机提供的 4 个引脚,字面意思是对于驱动器而言, Ar...

    步进电机是一种将电脉冲转化为角位移的执行机构。当步进电机的驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步长)。通过控制脉冲个数来控制角位移量,达到准确定位的目的;通过控制脉冲频率来控制电机转动的速度和加速度,达到调速的目的。

    下面是连接图,右上角是 Arduino 与驱动器的连线,VCC、脉冲、方向、使能是单片机提供的 4 个引脚,字面意思是对于驱动器而言,与 Arduino 无关,选择 4 个输出引脚就行。VCC 与三个 +端 相连。

    在这里插入图片描述


    控制程序

    这里使用 2、3、4、5 四个引脚与驱动器连接,只需要控制脉冲的次数和频率就能够控制电机转动的角度和速度。本来 Arduino 有专门的 Stepper 库来驱动步进电机,但功能比较简单,就自己写了,还有一个 tone() 频率函数,如果只控制速度可以使用一下。

    代码如下:

    #define VCC 2
    #define PLS 3
    #define DIR 4
    #define ENA 5
    
    void setup() {
    	pinMode(VCC, OUTPUT);
    	pinMode(PLS, OUTPUT);
    	pinMode(DIR, OUTPUT);
    	pinMode(ENA, OUTPUT);
    }
    
    void loop() {
    	digitalWrite(VCC, HIGH);
    	digitalWrite(ENA, HIGH);
    	digitalWrite(DIR, HIGH);	//正转
    	//正转一圈,用时1s
    	//此处驱动器定义1600步为1圈
    	//本来1600X625微秒=1秒,因为时间间隔太短,程序运行也需要时间,间隔时间/2之后总时间差不多1秒
        for(int x=0; x<1600; x++){
    	    digitalWrite(PLS, HIGH);
    	    delayMicroseconds(625/2);
    	    digitalWrite(PLS, LOW);
    	    delayMicroseconds(625/2);
        }
    	delay(1000);	//停1s
    	
    	digitalWrite(DIR, LOW);    //反转
    	//反转一圈,用时1s
        for(int x=0; x<1600; x++){
    	    digitalWrite(PLS, HIGH);
    	    delayMicroseconds(625/2);
    	    digitalWrite(PLS, LOW);
    	    delayMicroseconds(625/2);
        }
    	delay(1000);	//停1s
    }
    

    上面的代码是让步进电机正转 1 圈后停 1 秒,再反转 1 圈后停 1 秒,转 1 圈的时间也是 1 秒,如此循环,可根据需要自己更改。

    程序说明:VCC 给驱动器提供电源引脚,PLS 给步进电机提供脉冲引脚,DIR 决定电机是正转还是反转,ENA 是步进电机驱动器的开关,如果控制电路给 ENA 引脚高电压那么就相当于让驱动器接受控制信号,如果 ENA 提供低电压,无论怎么给脉冲信号电机都不会动。在 PLS 引脚产生一定频率的脉冲,并控制脉冲时间,就可控制步进电机。

    展开全文
  • 定义了单片机引脚 各个模块的连接  进行 模块测试,分析遇到的问题。====&gt;&gt; 完成了 模块的测试,以及完成了 蓝牙控制小车前进 .....      2. 整个小车系统的...

    1. 要完成的工作内容:

    1.  组装小车,完成线路规划。=======>> 完成任务,完成了小车的连线

    2.  定义接线引脚,考虑 多方面 因素。=====>> 定义了单片机引脚 与 各个模块的连接

    3.  进行 模块测试,分析遇到的问题。====>> 完成了 模块的测试,以及完成了 蓝牙控制小车前进

    1. .....

     

     

     2. 整个小车系统的架构:

     

     

    3. 过程中遇到的问题:

     

    3.1  测试 :  测试 电压不够 是因为 直接连接了  电机驱动 还是  南孚 就是不能用。      

    假设 :  南孚电池组 可以 直接给 单片机 供电, 经过测试,使用四节南孚电池  直接给51最小系统供6V电,51最小系统工作正常,再通过51最小系统给电机驱动模块供电。

     

    (测试中遇到两个问题 : 

           1. 上电之后,最小系统的单片机发烫,原因是 单片机的安置方面 摆反了。因为卡座上没有标识,一直以来关于怎么放,都是蒙,昨天认真研究了一下。我使用的 是 STC89C52 的40引脚 长方形 芯片。摆放在卡座上的方向  : 缺角标识的右上角 应该是最小系统的 VCC引脚。

           2. 当使用USB-TTL下载线连接最小系统时,在最小系统电源开关关闭状态下,最小系统的指示灯没有亮(在最小系统开关关闭的情况下,指示灯也应该亮,只是光不强而已)。原因是 卡座没有卡住 芯片。

     

     

     

    3.2   因为 程序总是进入左转 或者 右转 中,没有办法 跳出来,所以 测试是否是 延迟 程序 的问题,

        经过测试,发现如果存在延迟程序,蓝牙控制小车 就不会生效。所以要改变  小车转弯的实现方式。考虑使用 PWM控制。

     

     

    @其他:

     

    采购:   USB 延长线、  电池盒、 

     

     

    @闲时测试:

     

    测试 : 单片机的 P0口 经过上拉电阻 之后 可以通过置位  给 低电平?

     

     

    测试:  速度调节,控制直行


     

    测试:  蓝牙莫名断开===>>考虑可能是 单片机的断电

     

     

     

     

     

     

    今天的 任务 是 :通过技术方式,实现 小车的直行  和  90度转弯。

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 基于51单片机的智能小车驱动模块,能连接51单片机电机,实现单片机控制马达
  • 单片机PID调速控制直流无刷电机附部分源码

    单片机PID调速控制直流无刷电机附部分源码

    目前正在学习pid调速控制直流无刷电机,留下笔记。

    具备知识,stm32基础,了解无刷直流电机原理,pid控制原理

    工具:

    无刷直流电机:12v电源驱动,50HZ,占空比为5%的pwm波2秒以上解锁电调,再将占空比改为6%,则电机正常运行,改变占空比到9%接近全速转动。

    。(在网上摸索了一上午此信息,因为没有直接参考资料,标签都没有)

    电调:电调接收了pwm信号,根据信号控制电机的电压,由此控制转速。

    12v电源:供电

    stm32单片机:输出pwm波

    st-link调试模块:调试用,主要调pwm波和pid参数

    usb转串口模块:可获取单片机打印的串口信息(可有可无)

    霍尔测速传感器:测转速,5v供电,信号线为方波,捕获单位时间方波个数可测转速,由于其他条件一定,方波频率与转速为线性关系,可直接用频率代替。

    检测设备:万能表或者示波器,主要检测pwm波和故障时候的电压。

    步骤:

    1,stm32中配置pwm,延时函数,外部中断(捕捉信号用),系统rtc时钟(用于较精确确定时间)等

    2,电调接好电机和12v电源,电调信号接单片机,注意电调别用12v供电,所有设备共地,程序正常运行

    3,若不转,则按以下方式调试,

    1)用示波器或万能表检测单片机是否发出符合要求的pwm波。

    2)检测连线是否正确,

    3)测电机电压是否是12v左右。

    4,若电机能转动,则可以在电机上安装霍尔传感器,离里面的磁铁大概1-2毫米,太远了测不到信号,(这个问题又摸索了半天)。

    5,用示波器测霍尔传感器的信号,显示为方波,记录此时的频率

    6,将霍尔传感器的信号线接到单片机的外部中断引脚上,捕获其频率。

    此时电机配置及测速基本完成。

    PID参数整定

    具体原理可自行百度。说说个人的理解,比如给出pwm占空比为6%,此时测出频率稳定在600,我想让霍尔元件传回来的频率变为1000,当然是加大pwm的占空比,但是加大多少呢,其频率与占空比又不是线性关系,不能一次解决,但可以用差值逐次逼近,如

    误差=设定速度(1000)-实际速度(600)

    占空比=占空比+P*误差(400);

    。。。。。。。

    如此循环下去,会发现速度在1000左右抖动,而且从600到接近1000的这段时间比较长。因此加入积分,将每次的误差对时间积分,

    Integral=Σ误差

    则占空比更正为

    占空比=占空比+P*误差+I*Σ误差;

    但是还是有一定的震荡,当需要其平稳时,还需要加入误差的微分,阻止其超调的变化,有超前调节的作用。

    占空比=占空比+P*误差+I*Σ误差+D*(本次误差-上次误差)

    PID初步调试就到这里了,由于条件有限,我就没有继续整定PID的值。

    err[0]=setv-v;//设定速度-当前速度
    isum+=err[0]*0.2;//积分值
    dd=err[0]-err[1];//微分  
    pwm=p*err[0]+i*isum+d*dd;//计算变化值
    currentpwm+=pwm;//换算成占空比
    currentpwm=currentpwm>=1800?1800:currentpwm;//极限速度限制,测得高速运行时占空比为1800/20000=9%
    err[1]=err[0];//保存本次误差,下次使用


    新手上路,留下笔记,多多指教!交流qq313947881

    展开全文
  • 随着微电子技术和计算机技术的发展,原来以强电和电器为主、功能简单的电气设备发展成为强、...因此,一旦生产过程有所变动,就不必重新设计线路连线安装,有利于产品的更新换代和订单式生产。 传统电气设备采用的...
  • 51单片机蓝牙小车(精要版) 实现:通过手机小车的蓝牙通信,实现手机控制小车前后左右的移动。 这是博主学了51单片机第一次做的单片机项目,选择了许多人喜欢的蓝牙小车作为第一个项目。 准备材料: 1.小车亚克力...
  • 该压缩包包括L298N驱动直流电机、步进电机的接口连线原理图和驱动步进电机单片机源程序代码以及步进电机的介绍,欢迎大家下载!
  • 51proteus仿真:proteus中的步进电机的接法时序 proteus中的步进电机有两种, 六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER),六线制的左右中间两根线接电源,任然剩下四根,但是,这四根的顺序和四线制的...
  • ----------公司的 扫地机器人 第四章:51单片机 连接 有刷 直流 电机 驱动模块 ---1. 抱怨 网上的资料 首先,在淘宝买了一个L298N的驱动模块,然后 从淘宝店找资料,几乎所有的淘宝店都是一个 说明书,没有卵用...
  • 最近课题需要用单片机来驱动力矩电机。在这里盛赞ELMO驱动器代理商——北京高控科技公司的质量服务,果然一分价钱一分货。 设备:sol-whia15/100e02; usb-232模块,国产5000线编码器,国产力矩电机,stm32单片机...
  • 这部分分为直流电机和步进电机。 直流电机:直流电机的使用较为简单。一个电机有两个接口,分别接不同的电位,产生一个驱动电流,电机即可转动。电机正反转电流相关。 步进电机:步进电机的工作需要脉冲。...
  • 目录前言例程分析模块介绍超声波模块(SRF04)TB6600步进电机驱动器和42步进电机原理图讲解运用示波器模拟代码部分项目后期 前言 这是我在一个大学生机械创新比赛所做的项目,主要学科是机械,本人也是一位机自专业...
  • 步进电机控制LCD显示L297L298 上次介绍了PWM和L298结合的电机调速! 接下来介绍L297L298结合的例子! PWM电机调速 下面是L297的简介: L297是步进电机专用控制器,它能产生4相控制信号, 可用于计算机控制的...
  • 1) 采用步进电机模拟洗衣机电机实现强洗,轻洗,弱洗的基本功能 2) 采用ADC0809采集电位器的电压来模拟水位 3) 通过键盘来实现对洗涤过程的控制 4) 采用X5045对部分数据进行储存和调用 实现通过RS232对浸泡时间的...
  • 电和磁总是分不开,他能产生力,能让电机旋转。步进电机很有意思,能将电脉冲转为角位移,可以一步一步转动。步进是电磁铁的原理,是通过数字控制的电机,应用非常广泛。 最近用stm32驱动了一款4相5线步进电机,...
  • 用stc15w4k56s4(其实就是高性能51)控制l298n来操纵直流电机,写的是正反转延时切换的程序 结果电机只能正转 可能是什么原因? 部分程序: setb p1.0 clr p1.1 lcall delay setb p1.1 clr p1.0 lcall delay sjmp $
  • 要求:用单片机实现一个电子密码锁的功能,一开始设置密码,设置从0-f,任意多少位密码(只要不超过十位),设置成功,... 连线:P0键盘,P2倒着接数码管,P3.0接蜂鸣器,P1接步进电机 /******************
1 2 3 4 5 ... 20
收藏数 445
精华内容 178
关键字:

单片机与电机的连线