0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解Arduino Uno控制直流电机之应用

ss 作者:工程师谭军 2018-10-07 11:35 次阅读
直流电机
直流电机(direct current machine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
组成结构
直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。
定子
(1)主磁极
主磁极的作用是产生气隙磁场。主磁极由主磁极铁心和励磁绕组两部分组成。
铁心一般用0.5mm~1.5mm厚的硅钢板冲片叠压铆紧而成,分为极身和极靴两部分,上面套励磁绕组的部分称为极身,下面扩宽的部分称为极靴,极靴宽于极身,既可以调整气隙中磁场的分布,又便于固定励磁绕组。励磁绕组用绝缘铜线绕制而成,套在主磁极铁心上。整个主磁极用螺钉固定在机座上,
(2)换向极
换向极的作用是改善换向,减小电机运行时电刷与换向器之间可能产生的换向火花,一般装在两个相邻主磁极之间,由换向极铁心和换向极绕组组成。换向极绕组用绝缘导线绕制而成,套在换向极铁心上,换向极的数目与主磁极相等。
(3)机座
电机定子的外壳称为机座。机座的作用有两个:
一是用来固定主磁极、换向极和端盖,并起整个电机的支撑和固定作用;
二是机座本身也是磁路的一部分,借以构成磁极之间磁的通路,磁通通过的部分称为磁轭。为保证机座具有足够的机械强度和良好的导磁性能,一般为铸钢件或由钢板焊接而成。
(4)电刷装置
电刷装置是用来引入或引出直流电压和直流电流的。电刷装置由电刷、刷握、刷杆和刷杆座等组成。电刷放在刷握内,用弹簧压紧,使电刷与换向器之间有良好的滑动接触,刷握固定在刷杆上,刷杆装在圆环形的刷杆座上,相互之间必须绝缘。刷杆座装在端盖或轴承内盖上,圆周位置可以调整,调好以后加以固定。
转子
(1)电枢铁心
电枢铁心是主磁路的主要部分,同时用以嵌放电枢绕组。
一般电枢铁心采用由0.5mm厚的硅钢片冲制而成的冲片叠压而成,以降低电机运行时电枢铁心中产生的涡流损耗和磁滞损耗。叠成的铁心固定在转轴或转子支架上。铁心的外圆开有电枢槽,槽内嵌放电枢绕组。
(2)电枢绕组
电枢绕组的作用是产生电磁转矩和感应电动势,是直流电机进行能量变换的关键部件,所以叫电枢。它是由许多线圈(以下称元件)按一定规律连接而成,线圈采用高强度漆包线或玻璃丝包扁铜线绕成,不同线圈的线圈边分上下两层嵌放在电枢槽中,线圈与铁心之间以及上、下两层线圈边之间都必须妥善绝缘。为防止离心力将线圈边甩出槽外,槽口用槽楔固定。线圈伸出槽外的端接部分用热固性无纬玻璃带进行绑扎。
(3)换向器
在直流电动机中,换向器配以电刷,能将外加直流电源转换为电枢线圈中的交变电流,
使电磁转矩的方向恒定不变;在直流发电机中,换向器配以电刷,能将电枢线圈中感应产生的交变电动势转换为正、负电刷上引出的直流电动势。换向器是由许多换向片组成的圆柱体,换向片之间用云母片绝缘。
(4)转轴
转轴起转子旋转的支撑作用,需有一定的机械强度和刚度,一般用圆钢加工而成。
直流电机里边固定有环状永磁体,电流通过转子上的线圈产生安培力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。
直流发电机的工作原理就是把电枢线圈中感应的交变电动势,
靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。
感应电动势的方向按右手定则确定(磁感线指向手心,大拇指指向导体运动方向,其他四指的指向就是导体中感应电动势的方向)。
导体受力的方向用左手定则确定。这一对电磁力形成了作用于电枢一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。

Arduino Uno控制直流电机

其实,三年前的东西都已经记不清楚了。研究生没有做硬件,相关的都快看不懂了!为了让大家看得懂程序,将总的系统设计思路贴出来,如下:

整个系统是实现“太阳能智能控制环保路灯控制器设计”,主要是用直流电机控制太阳能电池板转动,确保其在每个时间段能够实现最高的发电效率,仿向日葵实现东西转动。

Arduino Uno手册上有其关于控制直流电机的详细介绍,如果仔细阅读,实现起来很简单的。可以结合本文的系统,对其进一步理解,则可以编写响应的代码。

主程序

//#include

int pinI1=8;

int pinI2=9;

int pinI3=2;

//int pinI4=3;

int pinI5=4;

//int pinI6=5;

//int pinI7=6;

int speedin=11;

volatile int state=LOW;

void setup()

{

pinMode(pinI1,OUTPUT);

pinMode(pinI2,OUTPUT);

pinMode(pinI3,INPUT);

// pinMode(pinI4,OUTPUT);

pinMode(pinI5,OUTPUT);

// pinMode(pinI6,OUTPUT);

// pinMode(pinI7,OUTPUT);

pinMode(speedin,OUTPUT);

// myPID.SetMode(AUTOMATIC);

// attachInterrupt(0,light,HIGH);

}

void loop()

{

while(1)

{

int m=analogRead(A0);

int n=analogRead(A1);

int err,err1,err2;

int pidspeed1;

float kp=0.1 ,ki=0,kd=0;

err=m-n;

pidspeed1=(int)(err*kp-err1*ki+err2*kd);

err1=err;

err2=err1;

state=digitalRead(pinI3);

digitalWrite(pinI5,state);

if (m》n)

{

// while(1)

// {

digitalWrite(pinI1,LOW);

digitalWrite(pinI2,HIGH);

analogWrite(speedin,100+pidspeed1);

// }

// delay(2000);

}

else if(m

{

// while(1)

// {

digitalWrite(pinI1,HIGH);

digitalWrite(pinI2,LOW);

analogWrite(speedin,100-pidspeed1);

// delay(2000);

// }

}

1

else

{

// while(1)

// {

digitalWrite(pinI1,HIGH);

digitalWrite(pinI2,HIGH);

//delay(2000);

// }

}

}

}

这是我本科毕业设计的部分内容,之前回答别人相关问题时留下了QQ号,这几年总有人加我问相关的问题。今天也有一个本科生咨询,趁这个机会,就把相关资料贴出来吧。

其实,三年前的东西都已经记不清楚了。研究生没有做硬件,相关的都快看不懂了!为了让大家看得懂程序,将总的系统设计思路贴出来,如下:

12

PID算法控制程序

该部分系统原理图如下,有助于理解代码,可根据应用环境不同修改代码:

int m=analogRead(A0);

int n=analogRead(A1);

int err,err1,err2;

int pidspeed1;

float kp=0.1 ,ki=0,kd=0;

err=m-n;

pidspeed1=(int)(err*kp-err1*ki+err2*kd);

err1=err;

err2=err1;

void light();

SetMotor(Output);

void SetMotor()

{

if (m》n)

{

digitalWrite(pinI1,LOW);

digitalWrite(pinI2,HIGH);

12345

analogWrite(speedin,100+pidspeed1);}

else if(m

{ digitalWrite(pinI1,HIGH);

digitalWrite(pinI2,LOW);

analogWrite(speedin,100-pidspeed1);}

12345

else

{digitalWrite(pinI1,HIGH);

digitalWrite(pinI2,HIGH);}

}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 直流电机
    +关注

    关注

    35

    文章

    1622

    浏览量

    69423
  • Arduino
    +关注

    关注

    184

    文章

    6425

    浏览量

    184749
收藏 人收藏

    评论

    相关推荐

    如何使用MATLB和Arduino控制直流电机

    在本教程中,我们将向您展示如何使用 MATLB 和 Arduino 控制直流电机
    发表于 11-03 17:18 919次阅读
    如何使用MATLB和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>直流电机</b>

    Arudino+L298N控制直流电机的正反转

    Arudino+L298N控制直流电机正反转所需元器件电路连接图Arduino程序所需元器件Arduino uno, L298N,
    发表于 06-28 11:17

    Arduino实践详细说明L298N驱动直流电机

    基于arduino uno 利用l298n驱动板来控制直流电机的正反转和速度L298N说明这是其中一个板,貌似还有蓝色绿色什么的,但是使用方法差不多接口说明12V供电: 这个是外部电源
    发表于 06-29 08:06

    一种arduino直流电机

    直流电机(DC)这一期我们来学习如何控制直流电机。需要材料:Arduino UNO直流电机——本
    发表于 06-29 06:45

    如何用Arduino Uno控制直流电机

    Arduino Uno控制直流电机这是我本科毕业设计的部分内容,之前回答别人相关问题时留下了QQ号,这几年总有人加我问相关的问题。今天也有一个本科生咨询,趁这个机会,就把相关资料贴出来
    发表于 07-05 06:50

    直流电机速度

    直流电机速度,基于arduino控制带编码器直流电机速度模块:带减速的直流电机(减速比1:120),霍尔编码器(每圈13个信号单相)
    发表于 07-08 10:12

    如何使用Arduino开发板控制直流电机

    如何使用Arduino开发板控制直流电机
    发表于 09-23 08:42

    ROS怎么使用Arduino控制直流电机

    ROS怎么使用Arduino控制直流电机
    发表于 09-24 06:42

    如何使用Arduino控制直流电机

    如何使用Arduino控制直流电机
    发表于 10-19 07:38

    arduino uno如何利用l298n驱动板来控制直流电机的正反转和速度?

    arduino uno如何利用l298n驱动板来控制直流电机的正反转和速度?
    发表于 10-20 07:34

    Arduino直流电机调速

    Arduino直流电机调速(深圳市核达中远通电源技术有限公司招聘电话)-基于Arduino直流电机调速                        
    发表于 09-18 16:12 59次下载
    <b class='flag-5'>Arduino</b>的<b class='flag-5'>直流电机</b>调速

    如何使用L298N和Arduino控制直流电机

    在这个Arduino教程中,我们将学习如何使用Arduino控制直流电机。我们来看看控制直流电机
    的头像 发表于 04-08 15:06 9912次阅读
    如何使用L298N和<b class='flag-5'>Arduino</b>板<b class='flag-5'>控制</b><b class='flag-5'>直流电机</b>

    arduino直流电机

    这一期我们来学习如何控制直流电机。 需要材料:Arduino UNO 直流电机——本文以12V额定
    发表于 03-30 13:46 3次下载
    <b class='flag-5'>arduino</b><b class='flag-5'>直流电机</b>

    ros与arduino通信控制直流电机

    前言:在成功通过arduino开发板控制直流电机后,开始尝试用ros与arduino通信来控制直流电机
    发表于 03-31 11:45 1次下载
    ros与<b class='flag-5'>arduino</b>通信<b class='flag-5'>控制</b><b class='flag-5'>直流电机</b>

    使用Arduino控制直流电机

    电子发烧友网站提供《使用Arduino控制直流电机.zip》资料免费下载
    发表于 07-03 11:04 0次下载
    使用<b class='flag-5'>Arduino</b>来<b class='flag-5'>控制</b><b class='flag-5'>直流电机</b>