博客优化网站seo怎么写,网站建设有免费的吗,湖南专业seo优化,wordpress 主题汉化无效1.直流电机
1.什么是电机 电能转换为动能 2.常见电机 #xff08;1#xff09;交流电机【大功率】#xff1a;两相【200W左右】#xff0c;三相【1000W左右】 #xff08;2#xff09;直流电机【小功率】#xff1a;永磁【真正的磁铁】#xff0c;励磁【电磁铁】 1交流电机【大功率】两相【200W左右】三相【1000W左右】 2直流电机【小功率】永磁【真正的磁铁】励磁【电磁铁】 3步进电机【精确控制功率】伺服电机【非常精确功率】 3.直流电机详解
1外观 2接线和工作原理 在电池位置有VCC和GND 3直流电机的驱动问题不能用IO口直接驱动
4.直流电机实验 1直流电机直接接在开发板的主板的VCC和GND引出接口上看电机是否转动还可以调换VCC和GND看是否反转 2单片机的IO口的数字口本身的驱动能力非常小最多20mA级别这个驱动能力是带不动电动机的。 3一般单片机需要实验专门的驱动芯片来驱动电机。驱动芯片的作用就是把单片机的小电流的控制信号转成逻辑上相同的大电流的驱动源。这就是所谓的弱电控制强电。 #includereg51.h/**驱动电机驱动直流电机
*/sbit ALineP0^0;
sbit BLineP0^1;void main(){ALine1;BLine0;//实际上不会动因为电流不足while(1);}
2.步进电机理论
1.什么是步进电机
1.外观 2.功能特点 1步进step的动起来可以控制自己转多少 2不是直接给接电就动要有规律的电才可以动 3以步长为单位不断的转 4可以控制转多少就停 3.操作接口 1四线步进电机 2.步距角步长 1就是精度360°的⚪可以走多少°。 2步长精度 3步进电机有一个固有步距角这个参数和步进电机本身有关的。 4步进电机一般情况下只能以固有步距角的整数倍来运动这一个固有步距角的移动就叫一个节拍。 5电机还有一个比固有步距角更小的运动方法这种方法叫细分由电机驱动器来支持的。 3.相数 1步进电机绕阻的组数 2相数多的步距角越小越精确引出的线越多 4.细分 1电机还有一个比固有步距角更小的运动方法这种方法叫细分由电机驱动器来支持的。 5.极性
单极性步进电机和双极性步进电机有什么区别 – AKT Motor and Drive 单极性和双极性是步进电机最常用的两种驱动架构 有一些可以通过2种进行驱动。 我们拿到的步进电机中只有电路线路没有驱动。真正的驱动在开发板上。 1.单极性 单极性驱动电路使用四颗晶体管来驱动步进电机的两组相位电机结构则如图1所示包含两组带有中间抽头的线圈整个电机共有六条线与外界连接。这类电机有时又称为四相电机但这种称呼容易令人混淆又不正确因为它其实只有两个相位精确的说法应是双相位六线式步进电机。六线式步进电机虽又称为单极性步进电机实际上却能同时使用单极性或双极性驱动电路。 2.双极性 双极性步进电机的驱动电路则如图2所示它会使用八颗晶体管来驱动两组相位。双极性驱动电路可以同时驱动四线式或六线式步进电机虽然四线式电机只能使用双极性驱动电路它却能大幅降低量产型应用的成本。双极性步进电机驱动电路的晶体管数目是单极性驱动电路的两倍其中四颗下端晶体管通常是由微控制器直接驱动上端晶体管则需要成本较高的上端驱动电路。双极性驱动电路的晶体管只需承受电机电压所以它不像单极性驱动电路一样需要箝位电路。 6.拍数 单相和双相的带载能力不同 1.单相四拍
单相一边的线在工作 A/ B A B/ 正转 B/ A B A/ 反转 解释想要动起来就在一端有电压差另外一端没有电压差 A/ B A B/ 四根线上电平 A/ A B B/ 0 1 0 0 第一拍 0 0 1 0 第二拍 1 0 0 0 第三拍 0 0 0 1 第四拍 4个节拍加起来就是一个完整的周期按照这个周期给步进电机供电则步进电机就会转动1个步距角一个步长。 2.双相四拍
双相两边的线在工作 A/B AB AB/ A/B/ 正转 时序A/B AB AB/ A/B/ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A A/ B B/ A/B 0 1 1 0 第一拍 AB 1 0 1 0 第二拍 AB/ 1 0 0 1 第三拍 A/B/ 0 1 0 1 第四拍 3.半步八拍 A/ A/B B AB A AB/ B/ A/B/【实际上就是单相和双相交互】 7.控制器和驱动器 1一套步进电机的系统需要三部分控制器【控制信号】驱动器【功率部件】步进电机【负责转动】 控制器 1控制器就是我们的单片机 2控制器负责产生时序信号 驱动器 1驱动器一般是接在单片机的IO口上面的专用的电机驱动芯片比如我们开发板上的TC1508S 2驱动器负责将时序信号转成功率驱动信号给步进电机用 7.结论 我们使用的是两相步进电机 4.开发板原理图分析说明
1.原理图分析 1原理图中INAINBINCIND将来要接单片机的IO口单片机是控制器的通过单片机的IO口给驱动器芯片输入1或者0的控制信号控制信号经过TC1117的转换从OUTAOUTBOUTCOUTD四个脚输出具有驱动步进电机能力的驱动信号。【将控制信号转换为驱动信号实际上就是将电流放大输出】 2接线比如可以用P0端口的4个引脚实际用P0.0-P0.3)接INAINBINCIND 3输出端本来符号是OUTAOUTBOUTCOUTD但是开发板上实际是对应则OAOBOCOD。所以这里有一个对应关系OUTA-OAOUTB-OBOUTC-OCOUTD-OD。 4但是步进电机上是A,A-,B,B-让我们方便接线不会接错。 5结合之前讲的步进电机的原理可知A-和A是一个相线线圈的2端B-和B是另外一个线圈。 2.电机驱动芯片数据手册
https://datasheet.lcsc.com/lcsc/2202252130_Shenzhen-Fuman-Elec-TC1508S_C89480.pdf 5.步进电机编程实践
1.接线 1P0端口的P0.0-P0.3接电机驱动芯片TX1508S的4个输入端 2TC1508S的4个输出端接步进电机按照丝印符号相对于即可 3根据上面的接线实际得到的接线逻辑是P0.0和P0.1对应的一组线圈而且P0.2和P0.3对应另一组线圈。【注意A对应OAA-对应OB,B对应OCB-对应OD】 2.单相四排方式驱动
1.时序编程 A/ B A B/ #includereg51.h/**步进电机编程实践1单相四排
*/sbit APositiveP0^0;
sbit ANegativeP0^1;
sbit BPositiveP0^2;
sbit BNegativeP0^3;void delay(unsigned char i){ //i越大延迟时间越大unsigned char a,b;for(ai;a0;a--){for(b240;b0;b--);}
}void main(){while(1){//循环内实现1个周期//一个周期其实就是各个节拍依次排列构成的注意节拍之间要延时//延时时间---控制速度//单相四拍//第一拍 [A/ B A B/]// 1 0 0 0APositive0;ANegative1;BPositive0; //等于1也可以只要两个相同即可BNegative0; //等于1也可以只要两个相同即可delay(30);//第二拍 [A/ B A B/]// 0 1 0 0APositive0;ANegative0;BPositive1; //等于1也可以只要两个相同即可BNegative0; //等于1也可以只要两个相同即可delay(30);//第3拍 [A/ B A B/]// 0 0 1 0APositive1;ANegative0;BPositive0; //等于1也可以只要两个相同即可BNegative0; //等于1也可以只要两个相同即可delay(30);//第3拍 [A/ B A B/]// 0 0 0 1APositive0;ANegative0;BPositive0; //等于1也可以只要两个相同即可BNegative1; //等于1也可以只要两个相同即可delay(30);}}
2.转速控制 转速是由脉冲信号控制的频率控制的其实就是delay控制的 延时时间越短转速越快 3.正转和反转 将时序进行反转 3.双相四拍方式驱动
#includereg51.h/**步进电机编程实践2双相四拍方式驱动
*/sbit APositiveP0^0;
sbit ANegativeP0^1;
sbit BPositiveP0^2;
sbit BNegativeP0^3;//延时时间
//延时时间越短转速越快
#define TIME 30void delay(unsigned char i){ //i越大延迟时间越大unsigned char a,b;for(ai;a0;a--){for(b240;b0;b--);}
}void main(){while(1){//循环内实现1个周期//一个周期其实就是各个节拍依次排列构成的注意节拍之间要延时//延时时间---控制速度//单相四拍/*正序旋转逆序就是将节拍反过来*///第一拍 [A/B AB AB/ A/B/]// 1 0 0 0APositive0;ANegative1;BPositive1; BNegative0; delay(TIME);//第二拍 [A/B AB AB/ A/B/]// 0 1 0 0APositive1;ANegative0;BPositive1; BNegative0; delay(TIME);//第3拍 [A/B AB AB/ A/B/]// 0 0 1 0APositive1;ANegative0;BPositive0; BNegative1; delay(TIME);//第3拍 [A/B AB AB/ A/B/]// 0 0 0 1APositive0;ANegative1;BPositive0; BNegative1; delay(TIME);}}
4.半步八拍方式驱动 速度越慢动力越大 #includereg51.h/**步进电机编程实践3半步八拍方式驱动
*/sbit APositiveP0^0;
sbit ANegativeP0^1;
sbit BPositiveP0^2;
sbit BNegativeP0^3;//延时时间
//延时时间越短转速越快
#define TIME 3void delay(unsigned char i){ //i越大延迟时间越大unsigned char a,b;for(ai;a0;a--){for(b240;b0;b--);}
}void main(){while(1){//循环内实现1个周期//一个周期其实就是各个节拍依次排列构成的注意节拍之间要延时//延时时间---控制速度//单相四拍/*正序旋转逆序就是将节拍反过来*///第一拍 [A A/B B AB A AB/ B/ A/B/]// 1 0 0 0 0 0 0 0APositive1;ANegative0;BPositive0; BNegative0; delay(TIME);//第2拍 [A A/B B AB A AB/ B/ A/B/]// 0 1 0 0 0 0 0 0APositive0;ANegative1;BPositive1; BNegative0; delay(TIME);//第3拍 [A A/B B AB A AB/ B/ A/B/]// 0 0 1 0 0 0 0 0APositive0;ANegative0;BPositive1; BNegative0; delay(TIME);//第4拍 [A A/B B AB A AB/ B/ A/B/]// 0 0 0 1 0 0 0 0APositive1;ANegative0;BPositive1; BNegative0; delay(TIME);//第5拍 [A A/B B AB A AB/ B/ A/B/]// 0 0 0 0 1 0 0 0APositive1;ANegative0;BPositive0; BNegative0; delay(TIME);//第6拍 [A A/B B AB A AB/ B/ A/B/]// 0 0 0 0 0 1 0 0APositive1;ANegative0;BPositive1; BNegative1; delay(TIME);//第7拍 [A A/B B AB A AB/ B/ A/B/]// 0 0 0 0 0 0 1 0APositive0;ANegative0;BPositive0; BNegative1; delay(TIME);//第8拍 [A A/B B AB A AB/ B/ A/B/]// 0 0 0 0 0 0 0 1APositive0;ANegative1;BPositive0; BNegative1; delay(TIME);}}