当前位置: 能电机 >> 能电机发展 >> 创客课程Arduino篇28步
上节课我们学习了在OLED上显示自定义图片,本节课我们学习如何使用Arduino控制步进电机。
课程目标
了解步进电机的原理及应用
学习步进电机的控制方式
了解步进电机的不同励磁方式
相关知识
步进电机:步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。简单来说当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。
步进电机原理:利用电磁铁原理,各个线圈绕组通电,利用电生磁原理,产生磁力,带动中央转子铁芯转动从而将脉冲信号转换成线位移或角位移。
步进电机介绍:
步进电机每次能转动的最小角度叫做步距角。
每当步进电机接收到一个驱动信号后,步进电机将按照一定的方向转动一个固定的角度。
通过控制脉冲的个数来精确的控制步进电机的角位移量,通过控制脉冲的频率来控制电机转动的速度及加速度,从而达到调速的目的。
步进电机按照相数不同分为单相、双相、多相三种,励磁方式分为全步励磁和半步励磁,全步励磁分1相励磁方式、2相励磁方式;半步励磁又称1-2相励磁方式。
ULN电机驱动:由于Arduino开发板的通用IO驱动能力有限,有些外设不能直接使用IO进行驱动,需要借助一些驱动电路间接控制大功率器件。ULN是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中,可直接驱动继电器等负载。
电路搭建
所需材料:
ArduinoUNO*1
28BYJ-48步进电机*1
ULN电机驱动模块*1
杜邦线若干
电路连接:
ULN驱动板上IN1、IN2、IN3、IN4分别连接UNO开发板的数字引脚2,3,4,5;驱动板电源输入+、-引脚分别连接UNO开发板的5V、GND。
程序编写
练习一:一相励磁方式控制步进电机正转90°再反转90°
一相励磁控制方式及特点:在每一个瞬间,步进电机只有一个线圈导通,每送一个信号,步进电机能转1.8°。这种方式,其精确度好、消耗电力小,但是输出转矩最小,振动较大。
一相励磁顺序表:
图形化方式:
代码方式:
/*项目名称:一相励磁控制步进电机正反转90°*项目时间:.03.21*项目作者:MRX*/voidsetup(){for(inti=2;i6;i++){pinMode(i,OUTPUT);}}voidclockwise(intnum){for(intcount=0;countnum;count++){for(inti=2;i6;i++){digitalWrite(i,HIGH);delay(5);digitalWrite(i,LOW);}}}voidanticlockwise(intnum){for(intcount=0;countnum;count++){for(inti=5;i1;i--){digitalWrite(i,HIGH);delay(5);digitalWrite(i,LOW);}}}voidloop(){clockwise();delay();anticlockwise();delay();}
练习二:二相励磁方式控制步进电机正转90°再反转90°
二相励磁控制方式及特点:在每一个瞬间,步进电机有两个线圈导通,每送一个信号,步进电机能转1.8°。这种方式,其输出转矩最大,振动较小。是现在较常用的一种控制方式。
二相励磁顺序表:
图形化方式:
代码方式:
/*项目名称:二相励磁控制步进电机正反转90°*项目时间:.03.21*项目作者:MRX*/voidsetup(){for(inti=2;i6;i++){pinMode(i,OUTPUT);}}voidclockwise(intnum){for(intcount=0;countnum;count++){digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,HIGH);delay(5);digitalWrite(2,HIGH);digitalWrite(3,HIGH);digitalWrite(4,LOW);digitalWrite(5,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,HIGH);digitalWrite(5,HIGH);delay(5);}}voidanticlockwise(intnum){for(intcount=0;countnum;count++){digitalWrite(2,HIGH);digitalWrite(5,LOW);digitalWrite(4,LOW);digitalWrite(3,HIGH);delay(5);digitalWrite(2,HIGH);digitalWrite(5,HIGH);digitalWrite(4,LOW);digitalWrite(3,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(5,HIGH);digitalWrite(4,HIGH);digitalWrite(3,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(5,LOW);digitalWrite(4,HIGH);digitalWrite(3,HIGH);delay(5);}}voidloop(){clockwise();delay();anticlockwise();delay();}
练习三:一二相励磁方式控制步进电机正
一二相励磁控制方式及特点:为一相和二相交替导通的方式,每送一个信号,步进电机能转0.9°。这种方式,其分辨率高,运转平滑。也是现在较常用的一种控制方式。
二相励磁顺序表:
图形化方式:
代码方式:
/*项目名称:1-2相励磁控制步进电机正转*项目时间:.03.21*项目作者:MRX*/voidsetup(){for(inti=2;i6;i++){pinMode(i,OUTPUT);}}voidS1(){digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,LOW);delay(5);digitalWrite(2,HIGH);digitalWrite(3,HIGH);digitalWrite(4,LOW);digitalWrite(5,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,LOW);digitalWrite(5,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,LOW);delay(5);}voidS2(){digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,HIGH);digitalWrite(5,LOW);delay(5);digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,HIGH);digitalWrite(5,HIGH);delay(5);digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,HIGH);delay(5);digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,HIGH);delay(5);}voidloop(){for(inti=1;i=;i++){S1();S2();}delay();}
程序分析:
需求为旋转90°,在程序中循环次数为什么是次呢?这是根据我们使用的步进电机参数计算而来的:
1、步进电机电压5V,步距角5.,减速比1:64。
2、计算A-B-C-D通电一次转动的角度5.X2X4/64=0.(2是表示1相励磁方式每步是2倍的步距角,4表示走了4步,64指电机减速比)。
3、转动度循环ABCD通电的次数/0.=。
4、那么转动90度循环ABCD通电的次数90/0.≈。
课后练习
同学们可试着采用一、二相励磁方式让步进电机逆时针旋转90度,然后再顺时针旋转90度,循环往复。
MRXY您的支持是作者创作的最大动力!