智能小车的直流电机控制

合集下载

智能小车直流电机控制控制系统设计

智能小车直流电机控制控制系统设计






1、设计智能小车直流电机控制系统原理图;
2、直流电机驱动控制选用专用芯片;
3、采用数字控制芯片实现。




1、设计说明书和电气原理图必须按“电气图形符号”和“电气技术文字符号”的国家标准,并规定主回路用粗实线、控制回路用细实线;
2、设计说明书应包含封皮、目录、正文、参考文献等,字数要满足规定。
智能小车的采用直流电机,直流电机采用高性能可控电力拖动的直流调速系统。它具有动态响应快、抗干扰能力强的优点。反馈闭环控制系统具有良好的抗扰性能,它对于被反馈环的前向通道上的一切扰动作用都能有效的加以抑制。采用转速负反馈和PI调节器的单闭环调速系统可以在保证系统稳定的条件下实现转速无静差。
1.2智能小车驱动控制系统要求
课题背景……………………………………………………3
智能小车驱动控制系统要求…….………………………4
智能小车驱动电机控制系统分析………………................6
直流电机控制系统硬件电路设计…...…………………….6
PWM主电路设计…...……………….………..………..….7
控制电路设计……..……………………………………...…7
第一章 智能小车系统的设计
智能小车是轮式移动机器人研究领域的一项重要内容,涵盖了机械、汽车电子、电气、计算机、检测技术、模式识别与智能控制等多个学科。它是陆地自主行驶车辆(AutonomousGroundVehicle,AGV)的一种。AGV在社会生活的各个领域都有着非常广阔的应用前景。在西方发达国家,移动式自主服务机器人已广泛应用于医疗福利服务、商场超市服务、家庭服务等领域;AGV在军事领域也有着重要的应用价值,美国军方把部分机器人技术视为未来战斗系统(FutureCombatSystem)的重要组成部分[1]。本文研究的智能小车主要采用专用赛道作为使用环境。智能小车的实现主要是控制其移动速度和方向。由路径识别、电机驱动、车速检测、方向舵机控制、电源管理及控制策略等功能模块组成。

智能小车实验报告

智能小车实验报告

智能小车实验报告智能小车实验报告实验目的:掌握基本的电路连接方法,熟悉智能小车的组装方法,并能通过编程控制小车的运动。

实验器材:硬件:arduino开发板、直流电机、电池盒、轮胎、线材软件:Arduino IDE实验过程:1. 将直流电机连接到arduino开发板上,其中电机的正极连接至arduino开发板的13号引脚,负极连接至地(GND)引脚。

2. 将arduino开发板连接到电脑上,并在Arduino IDE中编写程序。

通过arduino开发板的13号引脚,控制电机的正反转,实现小车的前进和后退。

3. 将arduino开发板和直流电机连接至电池盒,通过电池盒为智能小车供电。

4. 完成以上步骤后,进行小车的组装工作。

将直流电机安装在小车轮胎上,确保轮胎能够自由旋转,并将轮胎连接至arduino开发板。

5. 验证智能小车的运动情况。

在Arduino IDE中,编写程序,通过13号引脚实现小车的前进和后退运动。

6. 对小车进行优化。

例如,增加超声波传感器,通过测量距离实时控制小车的运动方向和速度。

实验结果:经过以上步骤,我们成功搭建了智能小车,并通过编程控制其运动。

小车能够前进和后退。

在进行测试时,我们发现小车的运动速度较慢,且操作不够灵活。

因此,我们对小车进行了优化,增加了超声波传感器,通过测量距离来控制小车的运动方向和速度。

优化后的小车表现更好,运动更加灵活。

在遇到障碍物时,小车能够及时停下或改变方向,避免碰撞。

实验总结:通过本次实验,我们掌握了基本的电路连接方法,熟悉了智能小车的组装方法,并能通过编程控制小车的运动。

在实验的过程中,我们不仅学习到了硬件的组装和接线方法,还通过编程实现了小车的运动控制。

通过不断的实践和优化,我们不仅提高了对电路和编程知识的掌握程度,还培养了创新和解决问题的能力。

这对我们今后的学习和工作具有很大的帮助。

智能小车设计电机控制技术

智能小车设计电机控制技术
L298内部的晶体管是工作在开关方式下:在饱和导 通与截止两个状态下切换。 但是,由导通向截止切换时, 电感性负载上的电流是不能“突变”(“变化率”无限大)的, 因为电感上的电流突变将产生无限高的感生电动势,必使 本该截止的晶体管击穿。 有了这些续流用的二极管以后, 负载上的电流就可以不突变,而是沿着二极管提供的新通 路续流。一般的电路连接方法,可以是续流工作中的能量 用来给电源充电,节省了电能。
1 158
U10
L298N
R16
R17
0.5
0.5
D13 D14 D15 D16 1N40071N40071N40071N4007
+ A -
+
A -
电流检测反馈电阻,可设置为0欧
智能小车设计电机控制技术
8
直流电机的控制原理
智能小车设计电机控制技术
9
续流二极管的作用:给电感性负载(如电机线圈)
提供续流通路。
低电平:-0.3≤Vin≤1.5V 高电平:2.3V≤Vin≤Vss 6、最大功耗:25W 7、工作温度:-25℃~130 ℃
智能小车设计电机控制技术
6
内部模块框图
智能小车设计电机控制技术
7
电路原理图
VCC5 . 0
U3
EN_A
P1.0
R4 200
U4
IN 1
P1.1
R5 200
U5
IN 2
P1.2
智能小车设计电机控制技术
10
光耦隔离电路
选用的光耦隔 离芯片: TLP521-1
智能小车设计电机控制技术
11
光耦隔离芯片TLP521参数
智能小车设计电机控制技术
12

电动汽车直流无刷电机控制

电动汽车直流无刷电机控制

RAYW永磁无刷(直流无刷)电机控制器西安仁安电控技术有限公司科技改善生活绿色开创未来
永磁无刷控制系统特点:
控制核心采用高性能DSP处理器,功率部件采用进口汽车级MOS管;
先进高效的矢量控制算法和智能控制技术;
功率部件采用贴片工艺,具有优异的散热结构设计和温度监控功能,大大提高了控制器的高温环境适应能力;
可靠完善的过热过流保护功能,采用独创的热量积算限流算法,确保运行可靠;
可调的加减速曲线,可灵活、快速调整至舒适的加减速性能;
电流再生刹车,能量回收,续航里程更长;
通过可编程操作面板可灵活调节参数,匹配不同厂家的电机;
传感器接口可适配多种位置传感器(霍尔旋转编码器、霍尔传感器、光编码器等);
具有上电自检和运行状态监测功能。

无论在启动还是运行过程中,如果异常,控制器立即停止输出,对操作者和车辆进行全面保护;
车辆启动时,控制器检测脚踏板输入信号,如果异常,将触发控制器保护功能(HPD),控制器禁止输出,防止启动时飞车。

内置电量表对电池电量进行测量。

可通过编程器设置降额电池电压、最低电池电压,电池电量不足时,限制车辆运行速度,提示用户及时充电;
支持CAN总线(可选);
控制器总成主接触器的驱动电路采用PWM软开关技术,吸合时间、吸合电压、保持电压等相关参数可根据负载特性调节,增加外围部件的使用寿命和可靠性;
针对整车的安全操作保护,如加速器低端检测、加速器位置开关检测等可选的保护功能;
支持客户定制设计;。

智能寻迹避障小车电机调速控制程序设计

智能寻迹避障小车电机调速控制程序设计
VCCBAT RX1 10K INPUT2 INPUT3 OUTPUT2 OUTPUT3 C14 104 OUTPUT4 GND GND M2 DC C2 GND IC3 INPUT1 OUTPUT1 C15 104 M1 DC 104 VCCBAT RM1 跳线
INPUT4 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XLA1 XLA2 Gnd IC1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 STC89C52 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 VCCBAT ENA ENB GND GND L293D
1.1.3 单片机的定时器原理
例如,如要求计数值为1000,则初值为: 根据:X=M-N X=M-1000 =8192-1000 =1C18H =11100000 1 1000B 即赋初值时,TH0=0xE0,TL0=0x18。
1.1.3 单片机的定时器原理
TMOD 0 0
M0 M1 C/T GATE 振荡器
1.1.3 单片机的定时器原理
7 0
T1
P3.5(T1)
7 0 7 0
T0
P3.4(T0)
7 0
TH1
TL1
TH0
TL0
微 处 理 器

智能小车电机驱动原理

智能小车电机驱动原理

第一节智能小车电机驱动原理一、驱动板概述驱动板由大功率驱动芯片L298为主,加上L1117稳压芯片为整个电路板提供稳定的5V电压;驱动板能同时驱动两个直流电机;通过对六个口的控制就可以分别实现对电机正反转、加减速的控制;完成向前、向后、左转和右转等各种组合运动;每个电机用三个口控制,一个使能端EN或PWM输入端,控制电机的转动与停止,也能用于PWM控制调速;也就说,对这个输入端输入一定频率的脉冲,当为高电平时,电机转动,为低电平时,电机停止转动;一定频率的脉冲,电机一段时间内转动一段时间内停止转动,但由于直流电机的惯性特性,它不会立即停下来,只要频率高于某个值,就不会感觉到电机的停滞现象,反而是一种很连续的运动;只要改变一个周期内高低电平的时间比例,就可以改变电机的速度;另外两个输入端是为了控制方向,分别为In1和In2;In1为高电平,In2为低电平,电机按一个方向转,In1为低电平,In2为高电平,电机向相反方向转,如果他们同时为高电平或低电平,那么电机不转;二、驱动板电路原理那我们首先分析一下L298驱动板,L298驱动板原理图如图1;该驱动板需要用7.2V电源供电,但L298N的逻辑参考电平为典型的TTL电平;用了一个L1117稳压芯片提供稳定的5V输出电压和逻辑参考电压,D9、D10、D11和D12是发光二极管,指示运动方向,与它们连接的电阻都是限流电阻;R5和R8都是下拉电阻,让EnA和EnB口要么是高电平,要么是低电平,避免出现电平混乱,提高对输入信号的抗干扰能力;输出端都接有0.1uF电容,加上二极管平衡电路;他们都是为了保护L298N,电机是感性负载,当给电机突然通电与断电,因为电流的瞬变,电机两端会产生瞬时高压和大电流;如果没有保护措施,L298N就可能会被烧毁;三、恒压恒流桥式2A驱动芯片L298NL298N驱动芯片是由SGS公司的产品,比较常见的15脚Multiwatt封装,内部有4通道逻辑驱动电路;它的内部结构如图1;从内部结构图可知,用三极管组成H型平衡桥,驱动功率大,驱动能力强;同时H型PWM电路工作在晶体管的饱和状态与截止状态,具有非常高的效率;从图2看出该驱动芯片有两路H型PWM电路,上面已谈到用PWM控制直流电机调速的基本原理,现在来看电路的具体实现;In1为高电平,In2为低电平,EnA为高电平时,U1、U4输出为高电平,U2、U3输出为低电平;在OUT1、OUT2接上电机后,T1、T4管导通,T2、T3管截止,电机向一个方向转;In1为低电平,In2为高电平,EnA仍旧为高电平,T1、T4管截止,T2、T3管导通,电机向相反方向转;In1、In2同时为高电平或低电平,T1与T3同时导通或截止,T2与T4也是同时导通与截止,但与前者相反,也就是OUT1与OUT2电压相同;电机会快速停转;如果EnA端为低电平,整个H型PWM电路关闭;电机当然也就不会转;四、驱动板连线:驱动板与单片机和驱动板与直流电机的接线如图3,整个系统的总电源由L298驱动板的供电电源提供;L298驱动板的5V电源输出给单片机;L298驱动板的输入控制端与P0口相连,具体各管脚的连接的情况如图3;L298驱动板的输出直接与直流电机连接,参照图3;L298驱动板的有一个VCC和GND不用;他们是使用步进电机时,作为公共端的;要实现对电机的前后控制,只要P0^0和P0^1逻辑电平相反;假设P0^0为高,P0^1为低时是正转;那么在颠倒送数,即P0^0为低,P0^1为高,车轮就会反转;调速,控制P0^2口的高电平保持时间相对总周期长点,速度就大,短点,速度就小;图3驱动板连线图。

STM32直流电机控制程序简明教程

STM32直流电机控制程序简明教程

STM32 直流减速电机控制(来自网络,特别推荐)直流减速电机控制中,最常用的方法就是通过PWM来控制直流电机的转速。

在控制小车走直线的过程中,需要两者的转速一置(如果要走得很直,还需要在短时间内保证两者的行程大致相当,这可以用PID算法来控制,以后的文章中会专门叙述)。

因此,在检测到两者转速不一样时,需要动态调整其中一个或两个轮子的PWM的点空比(简单点的就以一个轮为基准,调整另外一个轮子即可;如果以一个固定的标准的话,需要调整两个轮子的PWM占空比)。

程序第一步:设置GPIO,略(输出PWM的管脚用Mode_AF_PP即可)程序第二步:设置定时器,(保证产生两路PWM即可,我用的是TIM4)void TIM4_Configuration(void){TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;//时间基初始化TIM_TimeBaseInitStructure.TIM_Period=144; //18K/144=125Hz,这个是电机PWM的频率TIM_TimeBaseInitStructure.TIM_Prescaler=4000; //72000000/4000=18KTIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitStructure.TIM_RepetitionCounter=0x0000;TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);//输出比较模式设置,用于4路PWM输出TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; //输出PWMTIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; //使能正向通道TIM_OCInitStructure.TIM_OutputNState=TIM_OutputState_Disable; //失能反向通道TIM_OCInitStructure.TIM_Pulse=PWM_L; //左轮DIR的占空比TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low; //输出极性为低电平TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCPolarity_High;//互补输出极性为高电平TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;TIM_OC1Init(TIM4,&TIM_OCInitStructure); //PWM_L初始化TIM_OC1PreloadConfig(TIM4,TIM_OCPreload_Disable); //改变点空比后,立即产生效应TIM_OCInitStructure.TIM_Pulse=PWM_R; //左轮PWM的占空比TIM_OC2Init(TIM4,&TIM_OCInitStructure); //PWM_R初始化TIM_OC2PreloadConfig(TIM4,TIM_OCPreload_Disable); //改变点空比后,立即产生效应//使能定时器4TIM_Cmd(TIM4,ENABLE);TIM_CtrlPWMOutputs(TIM4,ENABLE);}程序第三步:在SysTick中断中,读取两个轮子的速(具体的方法是:每0.1秒读一次,并以此人作为速度的依据),并比较,如果以右轮为基准,则调整左轮的PWM占空比。

智能小车-电机使用

智能小车-电机使用

L298N模块介绍L298N是专用驱动集成电路,属于H桥集成电路,与L293D的差别是其输出电流增大,功率增强。

其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,(二相、三相、四相)步进电机,伺服电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。

当驱动直流电机时,可以直接控制两路电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。

本模块具有体积小,控制方便的特点。

采用此模块定会使您的电机控制自如,可以应对需要大功率直流电机的题目。

直流电机使用说明:板上的EN1与EN2为高电平时有效,只有当EN1与EN2为高电平时,电机才旋转,否则电机不转,这里的电平指的是TTL电平。

EN1为IN1和IN2的使能端,EN2为IN3和IN4的使能端。

当EN1=1,IN1=1 INT2=0时电机1正转,EN1=1,IN1=0 IN2=1电机1反转。

同理,当EN2=1,IN3=1 IN4=0电机2正转,EN2=1,IN3=0 IN4=1电机2反转。

A-、B-接电机1,C-、D-接电机2。

步进电机使用说明:板上的EN1与EN2为高电平时有效,这里的电平指的是TTL电平。

EN1为IN1和IN2的使能端,EN2为IN3和IN4的使能端。

步进电机控制逻辑如下所示,其中A-、B-、C-、D-为步进电机的四个线圈,(以四相步进电机为例)。

L298N是SGS公司的产品,内部包含二个H桥的高电压大电流桥式驱动器,接收标准TTL逻辑电平信号,可驱动46伏、2安培以下的电机,工作温度范围从-25度到130度。

其内部的一个H桥原理图如图1所示。

EnA是控制使能端,控制OUTl和OUT2之间电机的停转, IN1、IN2脚接入控制电平,控制OUTl和OUT2之间电机的转向。

当使能端EnA有效,IN1为低电平IN2为高电平时,三极管2,3导通,1,4截止,电机反转。

电动小车中无刷直流电机的控制系统

电动小车中无刷直流电机的控制系统

摘要电动小车最重要的配件是电机,一辆电动小车的电机基本决定了这辆车的性能和档次。

目前电动小车所使用的电机大都是高效稀土永磁电机,其中主要又分高速有刷+齿轮减速电机、低速有刷电机和低速无刷电机三种。

本文针对无刷电机在现在电动小车中的应用,介绍了一种无刷电机的控制方法。

根据电动小车要求启动快、制动快、工作过程要求转速稳定等特点,设计了带有转速、电流双闭环的调速系统,以PI调节器为转速调节器,电流调节器也用PI调节器,以TL494为PWM脉冲产生芯片,经过综合逻辑电路加上位置反馈信号,由IR2130驱动电机的功率开关。

主要内容包括PWM生成电路和功率开关器件、综合逻辑电路的选择,以及驱动电路保护电路的设计等。

关键词:电动小车;无刷直流电机;PWM调速AbstractThe most important part of an Electric trolley is motor.It basicly decides its performance and level. At present,Electric trolleys are mostly using efficient rare earth permanent magnet as their motors, which also could be divided into three types as High speed brush+gear reduction motors,low speed brush motors and low speedIVbrushless motors. This paper aim at the Brushless DC Motor be applied in Electric trolleys, introduce a new control method of BLDC. Based on Electric trolleys’ characteristic, such as start-up rapidness, brake rapidness, work process rotate speed level off and so on, design one system with speed and current adjuster, the speed adjuster is PID and the current adjuster is PI , use the TL494 chip generate PWM pulse , pass the synthesis logic circuit and the feedback of rotor’s location through IR2130 drive the power switch . Mostly content consist of PWM generate circuit , synthesis logic circuit, power switch and drive circuit and so on .Key words: Electric trolley;brushless DC motor;modulate velocity by PWM目录摘要.......................................................................................................................... I V Abstract ........................................................................................................................ I V 目录 (V)2电动小车及电机的工作特点 (2)2.1电动小车的工作特点分析及电机选择 (2)2.2无刷直流电机的介绍、结构及工作原理 (2)V2.2.1直流无刷电机的介绍 (2)2.2.2直流无刷电机的结构原理框图 (3)2.2.3 直流无刷电机的控制原理 (3)2.3 控制方案 (5)3控制系统设计 (6)3.1调节器选择及动态参数设计 (6)3.1.1电流调节器的设计 (6)3.1.2转速调节器的设计 (9)3.2位置检测 (11)3.2.1位置间接检测原理 (12)3.2.2位置检测电路 (13)3.3转速检测 (14)3.4 转速调节器 (16)4 系统电路图 (17)4.1 PWM生成电路及电流调节器 (17)4.2综合逻辑电路 (19)4.3驱动电路 (20)4.4 各相导通信号产生电路 (23)4.5 系统整体电路图 (24)4.6系统的工作原理 (27)5 结论和展望 (28)致谢 (29)参考文献 (30)附录 (31)VI电动小车中无刷直流电机的控制系统1 绪论从1995年清华大学研制的第一台轻型电动车问世,到现在林林总总的电动车系列产品,过去的十五年中,中国电动小车事业从无到有,再发展成为目前全球最大的轻型电动车产业。

智能小车单片机控制直流电机方案与设计_苏神保

智能小车单片机控制直流电机方案与设计_苏神保
Abstract:Control electric motor motion,for example vergence,speed,the angle controlling,be that the monolithic machine applies to electromechanical a model in controlling.Originally,design that the monolithic machine is core with AT89C52,compose with 4×4 matrix keyboards to be speed and direction import opening reaching the electric motor controlling direct -current staying.Before the PWM technology having designed middle,having adopted control to electric motor go along,by achieving accurate tune is fast purpose to the calculation taking up the empty space ratio.
2.2 系统的软件设计
本系统编程部分工作采用 KELI-C51 语言 完成 ,
采用模块化的设计方法,与各子程序做为实现各部分
功能和过程的入口,完成键盘输入、按键识别和功能、
PWM 脉宽控制和 LED 显示等部分的设计。
表 2 单片机资源分配
P0 P2 P1.0/P1.1
显示模块接口 键盘模块接口 PWM 电机驱动接口
输入 低电 平 ,IN2 输入 信 号分 别实 现 电动 机 的正 转 与

智能小车设计控制方案

智能小车设计控制方案

单片机控制小车电机_Chain智能小车设计控制方案【【Chain智能小车设计控制方案】】:【1】、修改遥控小车的电路部分,将单片机控制左右电机的输出信号经过光电隔离后再连接到电机。

【2】、学习STC单片机控制遥控小车的一种方法:4个pin口控制2个直流电机的分别正转和反转。

【控制原理】每个直流电机有2个接线:1号端和2号端。

当1号端接+12V、2号端接-12V 时,电机正转;当1号端接-12V、2号端接+12V时,电机反转。

【控制方法】1、单片机的pin1.0和pin1.1控制直流电机1(左轮直流电机),pin1.2和pin1.3控制直流电机2(右轮直流电机)。

2、每个单片机的pin脚控制一个光耦开关,相应光耦控制一个继电器,继电器输出的公共端接一个电机的一个接线端,继电器的常开触点和常闭触点分别接+12V和-12V。

3、pin1.0=1和pin1.1=0时,继电器1线圈得电常开触点同公共端接通(即电机1的1号端接通+12V)、继电器2线圈失电常闭触点同公共端接通(即电机1的2号端接通-12V),从而1号电机正转。

pin1.2=0和pin1.3=1时,继电器3线圈失电常闭触点同公共端接通(即电机2的1号端接通-12V)、继电器4线圈得电常开触点同公共端接通(即电机2的2号端接通+12V),从而2号电机反转。

可见,此种情况下,小车进行右转弯。

4、pin1.0=0和pin1.1=1时,继电器1线圈失电常闭触点同公共端接通(即电机1的1号端接通-12V)、继电器2线圈得电常开触点同公共端接通(即电机1的2号端接通+12V),从而1号电机反转。

pin1.2=1和pin1.3=0时,继电器3线圈得电常开触点同公共端接通(即电机2的1号端接通+12V)、继电器4线圈失电常闭触点同公共端接通(即电机2的2号端接通-12V),从而2号电机正转。

可见,此种情况下,小车进行左转弯。

5、pin1.0=1和pin1.1=0时,继电器1线圈得电常开触点同公共端接通(即电机1的1号端接通+12V)、继电器2线圈失电常闭触点同公共端接通(即电机1的2号端接通-12V),从而1号电机正转。

直流电机的小车运动控制设计方案

直流电机的小车运动控制设计方案

基于直流电机的小车运动控制设计目录摘要3前言4第1章系统概述5第2章直流电机工作原理6第2.1节直流电机的结构6第2.2节直流电机的分类6第2.3节直流电动机的工作原理7第2.4节直流电机的可逆运行原理7第3章脉冲宽度调制(PWM>控制技术9第3.1节脉冲宽度调制基本原理9第3.2节脉冲宽度调制具体过程10第3.3节脉冲宽度调制的优点10第3.4节脉冲宽度调制控制方法11第3.5节脉冲宽度调制相关应用领域11第4章硬件设计12第4.1节供电电源模块12第4.2节控制器模块12第4.3节电机驱动模块15第4.4节测速模块17第4.5节显示模块17第5章软件设计19第5.1节主程序设计19第5.2节直流电机驱动算法19第5.3节测速算法21第5.4节数码管显示算法21总结23参考文献24致谢25附录26摘要本文主要介绍了基于直流电机的小车运动控制设计。

该车以玩具小车为车体,直流电机及其控制电路为整个系统的驱动部分,AT89S51单片机为整个系统的控制核心,采用ST188反射式光电传感器来检测小车的运行速度,并通过一个4位一体的数码管显示出来,使用驱动芯片74HC245来驱动数码管的显示;整个系统使用5V的直流电源供电,直流电机驱动采用PWM控制技术,可以灵活方便地对车速进行控制。

关键词:直流电机,单片机,小车[Abstract] : In this paper, the car based DC motor motion control design , the toy car as the car body , DC motor and control circuit for the driving part of the whole system , AT89S51 microcontroller core for the control of the entire system , using ST188 reflective photoelectric sensor to detect the car's speed , and through a4-in-one digital display up , use the driver IC 74HC245 to control the digital tube display . the system uses the 5V DC voltage power supply,DC motor-driven use PWM control technology, the flexibility to easily control the speed .Key words: DC motor , MCU , car前言随着电子技术、计算机技术和制造技术的飞速发展,数码相机、DVD、洗衣机、汽车等消费类产品越来越呈现光机电一体化、智能化、小型化等趋势。

一个双直流电机的智能小车

一个双直流电机的智能小车
P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
(2)电机驱动电路
a.L298芯片驱动:(引脚图3—3和电路图3—4)
1.
设计一个双直流电机的智能小车。采用AT89C51单片机为控制核心,在最小系统的基础上,通过对遥控控制按键的检测,控制步进电机的转动,使智能小车可以在遥控信号的控制下,实现合理的行走。
(1)智能小车可实现无线遥控的功能;
(2)智能小车可实现左、右转弯控制;
(3)智能小车行走前进、后退控制;
2.
2.1
图2—1电路框图
3.
3.1
本设计通过小车这个载体再结合由AT89C51为核心的控制板可通过单片机电路、电机驱动电路、无线遥控电路等实现基本功能。总原理图如图3—1
图3—1
(1)单片机电路
a.最小应用系统电路如图3—2
图3—2
b.单片机最小系统电路介绍
51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
本次我制作的基于AT89C51单片机的智能遥控小车是一辆能够用焊制的遥控器遥控小车进行前进、后退以及左右转弯的智能小车。小车使用编解码芯片(pt2262-ir/pt2272-M4)焊制的无线遥控系统控制小车。 概括来说,本实验就是用遥控器接收控制信号,用单片机控制直流电机输出相应的电平控制车辆的前行或者后退,用PWM输出端口控制小车的转向,进而实现小车的智能遥控功
图3—3
图3—4

直流伺服电机在智能玩具小车中的编程应用

直流伺服电机在智能玩具小车中的编程应用

图3 使 电机l n针 全速旋转 的控制 ; l- l,  ̄J
脉 冲序 列 :
单片机 编程 ,使 之输 出符 合 电机 运 转规律 的控 制波 形 ,本系 统所 使用
m 。 :) im Vr r v] d s ’ ;: d ( O 5 v ; : 7





起 来似 乎一个 电机要 先动 作 ,而 另

4 2对伺服电机进行零点标定n . 在 上 述系 统运 行 的过 程 中 ,可
上 面 给 出 了伺 服 电机在 停 止 ,
个 电机 稍微 有 点滞 后 ,并且 由此
全速 正转和 全速 反转三 种旋 转状态 能发现伺 服 电机 的实 际运转情 况 并 引起 的低 电平 持续 时间 也不再 是时 的控 制信号波 形 ,在 1 3 s 15 s 非完全与控制程序相符,这是因为还 序 图规定的2m ,不过这点小误差在 .m 一.m 一 0s 17 s . m 时间范围内改脉冲 宽度 ,还可 未对直流伺服 电机进行零点标定。


2 ms … 一 … 0 … … 一,













的直流 伺服 电机采 用 的是 P R L A AA L X
公司 生产 的连 续旋转 伺服 电机 ,它
…。 。 i
的脉 冲序列
运 钎茎 磊 图 基 控 函 流 图 5 本 制 数 程
/ 1. / 子 l 界 一1 5 2 2 3电 0 0 l | 2 —
2硬 件 设 计 .
智能玩 具控 制器 的系统 总 体设
计方案采用 “ C + M U 感知系统+ 执行机

电动小车中无刷直流电机的控制系统毕业设计

电动小车中无刷直流电机的控制系统毕业设计

电动小车中无刷直流电机的控制系统毕业设计目录摘要.......................................................................................... 错误!未定义书签。

Abstract ........................................................................................ 错误!未定义书签。

目录. (1)2电动小车及电机的工作特点 (3)2.1电动小车的工作特点分析及电机选择 (3)2.2无刷直流电机的介绍、结构及工作原理 (3)2.2.1直流无刷电机的介绍 (3)2.2.2直流无刷电机的结构原理框图 (4)2.2.3 直流无刷电机的控制原理 (4)2.3 控制方案 (6)3控制系统设计 (7)3.1调节器选择及动态参数设计 (7)3.1.1电流调节器的设计 (7)3.1.2转速调节器的设计 (10)3.2位置检测 (12)3.2.1位置间接检测原理 (13)3.2.2位置检测电路 (14)3.3转速检测 (15)3.4 转速调节器 (17)4 系统电路图 (19)4.1 PWM生成电路及电流调节器 (19)4.2综合逻辑电路 (21)4.3驱动电路 (22)4.4 各相导通信号产生电路 (25)4.5 系统整体电路图 (26)4.6系统的工作原理 (28)5 结论和展望 (29)致谢 (30)参考文献 (31)附录 (32)1 绪论从1995年清华大学研制的第一台轻型电动车问世,到现在林林总总的电动车系列产品,过去的十五年中,中国电动小车事业从无到有,再发展成为目前全球最大的轻型电动车产业。

短短十数载,已经成就了让全球仰慕的电动车产业规模,国人应当自豪!电动小车行业的发展,业内普遍认为已经历了三个发展阶段:初级阶段、初级生产规模化阶段、超速发展阶段。

电动汽车的电动机控制技术

电动汽车的电动机控制技术

电动汽车的电动机控制技术随着环境保护意识的提升和汽车行业的发展,电动汽车作为一种清洁、高效的交通工具正在受到越来越多的关注。

而电动汽车的核心部件之一,电动机控制技术的发展也成为电动汽车技术研究的热点之一。

本文将对电动汽车的电动机控制技术进行探究。

一、电动汽车的电动机控制技术的作用电动汽车的电动机控制技术是实现电动汽车的动力输出和行驶控制的关键技术之一。

它通过对电动机的控制,实现电动汽车的启动、加速、减速和停车等动力输出行为的精确控制。

同时,电动机控制技术还可以对电动汽车的能量转换效率进行优化,提高电池的寿命和电动汽车续航里程。

二、电动汽车的电动机控制技术的基本原理1. 直流电机控制技术直流电机控制技术是电动汽车最早采用的一种控制技术。

它通过调节直流电机的电流或电压,来控制电动汽车的动力输出和行驶速度。

直流电机控制技术简单可靠,但效率较低,且调速性能较差。

2. 交流电机控制技术交流电机控制技术是当前电动汽车采用较为广泛的控制技术。

它通过矢量控制、直接转矩控制等方法,实现对交流电机的精确控制,提高电动汽车的动力性能和运行效率。

交流电机控制技术具有响应速度快、效率高、调速性能好等优点,适用于不同场景下的电动汽车控制需求。

三、电动汽车的电动机控制技术的发展趋势1. 高性能电机控制技术随着电动汽车市场的竞争日益激烈,对电动机控制技术的要求也越来越高。

未来的发展趋势是开发更高性能的电机控制技术,如瞬态响应更快、效率更高、工作温度更宽等特点,满足电动汽车在动力输出和续航里程方面的需求。

2. 智能化电机控制技术智能化是未来电动汽车技术发展的重要方向之一。

在电机控制技术方面,智能化可以实现对电动机的精确控制和能量管理,并结合车载电脑、传感器等技术,实现车辆的智能化驾驶和自动化控制。

3. 能量回馈与储存技术电动汽车在行驶和制动过程中产生的能量,可以通过能量回馈与储存技术进行回收和利用。

在电动机控制技术方面,如何实现对能量回馈和储存的精确控制,将是未来的研究重点。

智能小车-电机驱动及控制

智能小车-电机驱动及控制

电动小车的电机驱动及控制一个电动小车整体的运行性能,首先取决于它的电池系统和电机驱动系统。

电动小车的驱动系统一般由控制器、功率变换器及电动机三个主要部分组成。

电动小车的驱动不但要求电机驱动系统具有高转矩重量比、宽调速范围、高可靠性,而且电机的转矩-转速特性受电源功率的影响,这就要求驱动具有尽可能宽的高效率区。

我们所使用的电机一般为直流电机,主要用到永磁直流电机、伺服电机及步进电机三种。

直流电机的控制很简单,性能出众,直流电源也容易实现。

本文即主要介绍这种直流电机的驱动及控制。

1.H型桥式驱动电路直流电机驱动电路使用最广泛的就是H型全桥式电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。

它的基本原理图如图1所示。

全桥式驱动电路的4只开关管都工作在斩波状态,S1、S2为一组,S3、S4为另一组,两组的状态互补,一组导通则另一组必须关断。

当S1、S2导通时,S3、S4关断,电机两端加正向电压,可以实现电机的正转或反转制动;当S3、S4导通时,S1、S2关断,电机两端为反向电压,电机反转或正转制动。

在小车动作的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在S1、S2导通且S3、S4关断,到S1、S2关断且S3、S4导通,这两种状态之间转换。

在这种情况下,理论上要求两组控制信号完全互补,但是,由于实际的开关器件都存在开通和关断时间,绝对的互补控制逻辑必然导致上下桥臂直通短路,比如在上桥臂关断的过程中,下桥臂导通了。

这个过程可用图2说明。

因此,为了避免直通短路且保证各个开关管动作之间的协同性和同步性,两组控制信号在理论上要求互为倒相的逻辑关系,而实际上却必须相差一个足够的死区时间,这个矫正过程既可以通过硬件实现,即在上下桥臂的两组控制信号之间增加延时,也可以通过软件实现(具体方法参看后文)。

驱动电流不仅可以通过主开关管流通,而且还可以通过续流二极管流通。

智能小车的直流电机控制之欧阳学创编

智能小车的直流电机控制之欧阳学创编

智能小车的直流电机控制【实验目的】了解以单片机为核心的直流电机控制系统掌握此系统中直流电机驱动与调速原理熟悉ICCAVR 软件编译环境,会编写控制程序【实验器材】智能小车一部,下载线一根【实验原理】直流电机驱动控制系统示意图:在本实验中所分析的是以单片机ATMEGA8515L 为核心的直流电机控制系统。

ATMEGA8515L 芯片的引脚图如下:功放驱动电路采用基于双极性H-桥型脉宽调整方式PWM 的集成电路L293D。

L293D是单块集成电路,高电压,高电流,四通道驱动,设计用来接受DTL 或者TTL 逻辑电平,驱动感性负载(比如继电器,直流和步近马达),和开关电源晶体管。

其引脚图如下:ATMEGA8515L 利用I/O 口(PD5,PE2,PD4,PD6)向驱动电路输出控制电平,这些I/O口作为单片机控制指令的输出,连接到驱动电路中L293D 的相应管脚上。

其真值表如下:对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。

不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端PE2 和PD5 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。

此实验中用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。

(2)硬件电路自动产生PWM 信号,不占用CPU 处理的时间。

这就要用到ATMEGA8515L 的在PWM 模式下的计数器1,具体内容可参考相关书籍。

【实验步骤】(1)连接好电路,把数据线,下载线连接好,打开电源(2)进入ICCAVR 编译环境,调试程序直至没有错误,编译环境简介请参见附录一(3)下载,烧录进单片机,观察实验结果(4)反复修改调试程序,逐渐增强其功能(5)写好实验报告,实验心得体会【程序示例】1、小车前进一段——>左转一圈——>右转一圈——>前进一段——>后退一段——>停下//ICC-AVR application builder : 2005-5-19 19:12:13// Target : M8515// Crystal: 4.0000Mhz#include <iom8515v.h>#include <macros.h>unsigned int time;unsigned int yan;void port_init(void){PORTA = 0x00;DDRA = 0xFF;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00;DDRC = 0x00;PORTD = 0x00;DDRD = 0xFF;PORTE = 0x00;DDRE = 0xFF;}//call this routine to initialize all peripherals void init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();MCUCR = 0x00;EMCUCR =0x00;GICR = 0x00;TIMSK = 0x00;SEI(); //re-enable interrupts//all peripherals are now initialized}void delay(unsigned int yan){while(yan>0)yan--;}void runforth(void){while(time<1000){PORTE=0x04; PORTD=0x70;delay(2000);time++;}time=0;}void zuozhuanwan(void) {while(time<1000){PORTE=0x00; PORTD=0X70;delay(2000);time++;}time=0;}void youzhuanwan(void) {while(time<1000){PORTE=0x04;PORTD=0x50; delay(2000);time++;}time=0;}void houtui(void) {while(time<1000) {PORTE=0x04; PORTD=0x20; delay(2000);time++;}time=0;}void stop(void) {PORTE=0x00; PORTD=0x00;}void main(void){ init_devices();time=0;runforth();zuozhuanwan();youzhuanwan();runforth();houtui();stop();}2、调速程序以下是用两定时器来控制加在两方向控制口的方波占空比,以此来对电机进行调速,而同学们可以利用对两始能端高低电平进行不同延时来实现调速功能。

有关智能小车电机驱动原理

有关智能小车电机驱动原理

第一节智能小车电机驱动原理一、驱动板概括驱动板由大功率驱动芯片L298为主,加上L1117稳压芯片为整个电路板供给稳固的5V电压。

驱动板能同时驱动两个直流电机。

经过对六个口的控制就能够分别实现对电机正反转、加减速的控制。

达成向前、向后、左转和右转等各样组合运动。

每个电机用三个口控制,一个使能端(EN)或PWM输入端,控制电机的转动与停止,也能用于PWM控制调速。

也就说,对这个输入端输入必定频次的脉冲,当为高电平常,电机转动,为低电平常,电机停止转动。

必定频次的脉冲,电机一段时间内转动一段时间内停止转动,但因为直流电机的惯性特征,它不会立刻停下来,只需频次高于某个值,就不会感觉到电机的阻滞现象,反而是一种很连续的运动。

只需改变一个周期内高低电平的时间比率,就能够改变电机的速度。

此外两个输入端是为了控制方向,分别为In1和In2。

In1为高电平,In2为低电平,电机按一个方向转,In1为低电平,In2 为高电平,电机向相反方向转,假如他们同时为高电平或低电平,那么电机不转。

二、驱动板电路原理那我们第一剖析一下L298驱动板,L298驱动板原理图如图1。

该驱动板需要用电源供电,但L298N的逻辑参照电平为典型的TTL电平。

用了一个L1117稳压芯片供给稳固的5V输出电压和逻辑参照电压,D9、D10、D11和D12是发光二极管,指示运动方向,与它们连结的电阻都是限流电阻。

R5和R8都是下拉电阻,让EnA和EnB口要么是高电平,要么是低电平,防止出现电平杂乱,提升对输入信号的抗扰乱能力。

输出端都接有电容,加上二极管均衡电路。

他们都是为了保护L298N,电机是感性负载,当给电机忽然通电与断电,因为电流的瞬变,电机两头会产生刹时高压和大电流。

假如没有保护举措,L298N就可能会被烧毁。

三、恒压恒流桥式2A驱动芯片L298NL298N驱动芯片是由SGS企业的产品,比较常有的15脚Multiwatt封装,内部有4通道逻辑驱动电路。

基于直流电机控制的智能寻迹小车

基于直流电机控制的智能寻迹小车

基于直流电机控制的智能寻迹小车
李星;杨秀媛;李银银
【期刊名称】《传感器世界》
【年(卷),期】2018(24)1
【摘要】设计了基于STC12C5A单片机的智能寻迹小车.利用小车前侧及左右两侧的光电传感器检测跑道上的黑线,以STC12C5A单片机为控制芯片控制电动机及时调整转向并利用PWM进行调速,从而实现小车沿跑道行驶以及超车的功能.其中寻迹信息采集部分以反射式光电传感器和比较器组成,将采集到的数据处理后送至单片机.利用单片机输出的PWM波经L298N实现对电机转速的控制,从而实现小车的智能化.该小车具有自动寻迹、起始点检测以及自动声光报警等功能.基于稳定的硬件电路设计以及精确可靠的软件算法,小车能够实现预期功能.
【总页数】5页(P13-17)
【作者】李星;杨秀媛;李银银
【作者单位】北京信息科技大学,北京 100192;北京信息科技大学,北京 100192;北京信息科技大学,北京 100192
【正文语种】中文
【中图分类】TP29
【相关文献】
1.基于 ARM_Cortex_M3 的智能小车直流电机控制系统设计 [J], 苟德清;王子慧;张殿可;朱恩康;
2.基于飞思卡尔单片机的智能寻迹小车 [J], 赵必武;黄佳源
3.基于语音控制的自主寻迹与避障智能小车设计 [J], 张伟
4.基于K66单片机的智能寻迹小车系统设计与实现 [J], 孙桐;郑天昱;陈龙
5.基于电子信息技术智能寻迹小车系统的测试与应用 [J], 焦茗
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能小车的直流电机控制作者:本站来源:转载发布时间:2009-3-6 20:21:41 [收藏] [评论]智能小车的直流电机控制【实验目的】了解以单片机为核心的直流电机控制系统掌握此系统中直流电机驱动与调速原理熟悉ICCAVR 软件编译环境,会编写控制程序【实验器材】智能小车一部,下载线一根【实验原理】直流电机驱动控制系统示意图:在本实验中所分析的是以单片机ATMEGA8515L 为核心的直流电机控制系统。

ATMEGA8515L 芯片的引脚图如下:功放驱动电路采用基于双极性H-桥型脉宽调整方式PWM 的集成电路L293D。

L293D是单块集成电路,高电压,高电流,四通道驱动,设计用来接受DTL 或者TTL 逻辑电平,驱动感性负载(比如继电器,直流和步近马达),和开关电源晶体管。

其引脚图如下:ATMEGA8515L 利用I/O 口(PD5,PE2,PD4,PD6)向驱动电路输出控制电平,这些I/O 口作为单片机控制指令的输出,连接到驱动电路中L293D 的相应管脚上。

其真值表如下:对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。

不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端PE2 和PD5 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。

此实验中用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。

(2)硬件电路自动产生PWM 信号,不占用CPU 处理的时间。

这就要用到ATMEGA8515L 的在PWM 模式下的计数器1,具体内容可参考相关书籍。

【实验步骤】(1)连接好电路,把数据线,下载线连接好,打开电源(2)进入ICCAVR 编译环境,调试程序直至没有错误,编译环境简介请参见附录一(3)下载,烧录进单片机,观察实验结果(4)反复修改调试程序,逐渐增强其功能(5)写好实验报告,实验心得体会【程序示例】1、小车前进一段——>左转一圈——>右转一圈——>前进一段——>后退一段——>停下//ICC-AVR application builder : 2005-5-19 19:12:13// Target : M8515// Crystal: 4.0000Mhz#include <iom8515v.h>#include <macros.h>unsigned int time;unsigned int yan;void port_init(void){PORTA = 0x00;DDRA = 0xFF;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00;DDRC = 0x00;PORTD = 0x00;DDRD = 0xFF;PORTE = 0x00;DDRE = 0xFF;}//call this routine to initialize all peripheralsvoid init_devices(void)//stop errant interrupts until set up CLI(); //disable all interruptsport_init();MCUCR = 0x00;EMCUCR =0x00;GICR = 0x00;TIMSK = 0x00;SEI(); //re-enable interrupts//all peripherals are now initialized}void delay(unsigned int yan){while(yan>0)yan--;}void runforth(void){while(time<1000){PORTE=0x04;PORTD=0x70;delay(2000);time++;}time=0;}void zuozhuanwan(void){while(time<1000){PORTE=0x00;PORTD=0X70;delay(2000);time++;}time=0;}void youzhuanwan(void){while(time<1000){PORTE=0x04;PORTD=0x50;delay(2000);time++;time=0;}void houtui(void){while(time<1000){PORTE=0x04;PORTD=0x20;delay(2000);time++;}time=0;}void stop(void){PORTE=0x00;PORTD=0x00;}void main(void){ init_devices();time=0;runforth();zuozhuanwan();youzhuanwan();runforth();houtui();stop();}2、调速程序以下是用两定时器来控制加在两方向控制口的方波占空比,以此来对电机进行调速,而同学们可以利用对两始能端高低电平进行不同延时来实现调速功能。

//ICC-AVR application builder : 2005-5-18 16:45:27// Target : M8515// Crystal: 4.0000Mhz#include <iom8515v.h>#include <macros.h>unsigned char a;unsigned char p;unsigned char m;unsigned char n;void port_init(void){PORTA = 0x00;DDRA = 0x00;DDRB = 0x00;PORTC = 0x00;DDRC = 0x00;PORTD = 0x00;DDRD = 0x70;PORTE = 0x00;DDRE = 0x04;}//TIMER0 initialize - prescale:64// WGM: Normal// desired value: 40Hz// actual value: Out of rangevoid timer0_init(void){TCCR0 = 0x00; //stop timerTCNT0 = 0xfa /*INVALID SETTING*/; //set count valueTCCR0 = 0x03; //start timer}#pragma interrupt_handler timer0_ovf_isr:8void timer0_ovf_isr(void){TCNT0 = 0xfa /*INVALID SETTING*/; //reload counter valueif(m==a){PORTD=0x70;TCCR1B=0x03;TCCR0=0x00;n=1;}else{m++;}}//TIMER1 initialize - prescale:64// WGM: 0) Normal, TOP=0xFFFF// desired value: 40Hz// actual value: 40.013Hz (0.0%)void timer1_init(void){TCCR1B = 0x00; //stopTCNT1H = 0xff; //setupTCNT1L = 0xfa;OCR1AH = 0x06;OCR1AL = 0x1A;OCR1BH = 0x06;OCR1BL = 0x1A;TCCR1A = 0x00;}#pragma interrupt_handler timer1_ovf_isr:7 void timer1_ovf_isr(void){TCNT1H = 0xff; //reload counter high value TCNT1L = 0xfa; //reload counter low valueif(n==250-a){PORTD=0x20;TCCR0=0x03;TCCR1B=0x00;m=1;if(p==0){if(a==125){p=1;}else{a++;}}else{{if(a==1){p=0;}else{a--;}}}}else{n++;}}//call this routine to initialize all peripherals void init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();timer0_init();timer1_init();MCUCR = 0x00;EMCUCR = 0x00;GICR = 0x00;TIMSK = 0x82;SEI(); //re-enable interrupts//all peripherals are now initialized}void main(void){a=0;p=0;m=1;n=1;init_devices();while(1){PORTE=0x04;}}。

相关文档
最新文档