电机驱动板讲解

电机驱动板讲解
电机驱动板讲解

Understanding the Adafruit Motor Shie...

Understanding the Adafruit Motor Shield Library

I've recently been working on a small robotics project using the Arduino platform with the Adafruit motor shield. I'm an experienced applications programmer but a complete novice at electronics and embedded programming, so I find it challenging to understand how the hardware design and the code relate to each other. I've been going through the motor shield schematic and the code library to try to understand them both in detail, and I thought it might be helpful to other beginning Arduinists if I were to write up what I've figured out so far. At least for now I will focus on DC motor control because that's what I've been working on and have learned the most about.

Basic DC Motor Control

Let's set aside speed control for a moment and first walk through how the motors are turned on and off.

The Motor Drivers and Shift Register

The motor shield can control up to four DC motors using two L293D dual H-bridge motor driver ICs. You can read the datasheet for details, but the main thing to know is that each IC has four digital inputs and can control two motors bidirectionally. The inputs are in pairs, and each pair controls a motor. For example, if pin 2 is set high and pin 7 is set low, motor 1 is turned on. If the inputs are reversed, the motor is again on but its direction of rotation is reversed, and if both are set low then the motor is off. There are other possible configurations but this is the one supported by the motor shield.

So obviously the thing to do is wire eight pins from the Arduino to the eight inputs on the two ICs, right? That's what I imagined at first, but it's WRONG!! Pins are a scarce resource, and the motor shield design makes an extra effort to conserve them. The inputs to the motor drivers are actually wired to the outputs of a

74HCT595N 8-bit shift register. This IC lets you feed in bits serially, but it then presents them as parallel outputs. It's controlled by four digital inputs, so effectively it lets you control eight inputs to the motor drivers (thus four motors) using four pins of the Arduino.

At this point we can start to look at code. Here are some constants defined in AFMotor.h:

#define MOTOR1_A 2

#define MOTOR1_B 3

#define MOTOR2_A 1

#define MOTOR2_B 4

#define MOTOR4_A 0

#define MOTOR4_B 6

#define MOTOR3_A 5

#define MOTOR3_B 7Clearly, MOTOR1_A and MOTOR1_B have to do with controlling motor 1 bidirectionally, MOTOR2_A and MOTOR2_B are related to motor 2, etc. But what do the values mean? It turns out these are the bit numbers in the output of the shift register, as you can see in this detail of the schematic:

The pins labeled QA through QH are the parallel output pins, and you can think of them as bits 0 through 7. (The numbers immediately to the right of the IC are pin numbers rather than bit numbers, although they mostly coincide. QA is bit zero. The datasheet calls them Q0 through Q7 so I'm not sure why the schematic uses a different convention).

As you can see, Motor 1 is controlled by bits 2 and 3, Motor 2 by bits 1 and 4, etc. Motors 3 and 4 are actually reversed between the code and the schematic, but I'm pretty sure that's just a bug.

The pins shown on the left are the four input pins plus the supply voltage. It takes some study of the datasheet to understand the inputs, so here's a brief description of each:

?DIR_EN -- the enable input, active low; it has a pull-up resistor to disable the outputs until an AFMotorController is created in the code, as we'll see.

?DIR_SER -- the data input.

?DIR_CLK -- A rising edge on this input causes the data bit to be shifted in and all bits shifted internally. 串行数据输入,内部数据移位

?DIR_LATCH -- A rising edge causes the internally-stored data bits to be presented to the parallel outputs. This allows an entire byte to be shifted in

without causing transient changes in the parallel outputs.

Almost ready to look at more code! But first a brief digression.

Ports

Arduino tutorials like Ladyada's teach you how to read and write pins one at a time using digitalRead and digitalWrite, but it turns out there's also a way to read and write them in groups, called "ports". You should definitely read this explanation, but here are the salient points:

?PORTD maps to digital pins 0 to 7, but you shouldn't use bits 0 and 1.

?PORTB maps to digital pins 8 to 13; the two high-order bits are not used.

?There are three C macros corresponding to each port:

o DDRB/DDRD -- these are bitmasks that control whether each pin in the port is an input or output. 1 means output. Assigning a value to one of these is like calling pinMode once for each pin in the port.

o PORTB/PORTD -- if you read one of these, it's like doing a digitalRead on each pin in the port. If you assign to one of them, it's like doing a digitalWrite on each pin. o PINB/PIND -- like PORTB/PORTD but read-only.

When I say setting DDRB is like calling pinMode a bunch of times, I mean it has the same end result. However, it sets the mode on all the pins all at once so it's

inherently faster than multiple calls to pinMode. The same remark applies to

PORTB/PORTD as opposed to digitalRead and digitalWrite.

Defining the Shift Register Inputs

Okay, finally we can understand this fragment from AFMotor.h:

#define LATCH 4

#define LATCH_DDR DDRB

#define LATCH_PORT PORTB

#define CLK_PORT PORTD

#define CLK_DDR DDRD

#define CLK 4

#define ENABLE_PORT PORTD

#define ENABLE_DDR DDRD

#define ENABLE 7

#define SER 0

#define SER_DDR DDRB

#define SER_PORT PORTB

Clearly these four groups of #defines correspond one-to-one with the inputs to the shift register, and specifically they define the relationship between Arduino pins and

correctly:

J1 corresponds to digital pins 0-7, and J3 to pins 8-14 (which you can verify on the Arduino schematic), so it looks like the schematic and the code line up.

AFMotorController

The mechanics of pushing values out to the shift register are encapsulated in a C++ class named AFMotorController. There is an instance of this class declared in AFMotor.cpp; this instance is used by the classes AF_DCMotor and AF_Stepper. AFMotorController declares two member functions: enable() and latch_tx(). The latch_tx() function is responsible for updating the outputs of the shift register with the bits of the global variable latch_state, which is declared as:

static uint8_t latch_state;

Here's the body of latch_tx() with pseudocode comments added by me: void AFMotorController::latch_tx(void) {

uint8_t i;

LATCH_PORT &= ~_BV(LATCH); // - Set DIR_LATCH low

SER_PORT &= ~_BV(SER); // - Set DIR_SER low

for (i=0; i<8; i++) { // - For each bit of latch_state:

CLK_PORT &= ~_BV(CLK); // - Set DIR_CLK low

if (latch_state & _BV(7-i)) // - If the current bit of

// latch_state is set:

SER_PORT |= _BV(SER); // - Set DIR_SER high

else // else:

SER_PORT &= ~_BV(SER); // - Set DIR_SER low

CLK_PORT |= _BV(CLK); // - Set DIR_CLK high; the

// rising edge shifts DIR_SER

// into the shift register

}

LATCH_PORT |= _BV(LATCH); // - Set DIR_LATCH high; the

// rising edge sends the stored

// bits to the parallel outputs

}This function looks rather cryptic at first glance, but the key is that _BV(i) is a macro which evaluates to a byte having only the i th bit set. It's defined in

avr/str_defs.h as:

#define _BV(bit) (1 << (bit))Knowing that, you can easily work out how the following two statements set a single bit of SER_PORT to high and low respectively. The same idiom is used everywhere in this code so it's worthwhile to think through it if you're not used to doing bit manipulations.

SER_PORT |= _BV(SER);

SER_PORT &= ~_BV(SER);

The enable() function initializes the ports, then clears and enables the shift register outputs. Until the outputs are enabled, they are in the high impedance state, i.e. effectively turned off. This function is simple, so here it is verbatim (including original comments):

void AFMotorController::enable(void) {

// setup the latch

LATCH_DDR |= _BV(LATCH);

ENABLE_DDR |= _BV(ENABLE);

CLK_DDR |= _BV(CLK);

SER_DDR |= _BV(SER);

latch_state = 0;

latch_tx(); // "reset"

ENABLE_PORT &= ~_BV(ENABLE); // enable the chip outputs!

}

AF_DCMotor

As described in the motor shield library documentation, you control a motor by instantiating an AF_DCMotor object with the appropriate motor number (1 through 4), then use the run() function to turn the motor on and off. AF_DCMotor also has a

setSpeed() function, but we'll return to that in the next section when we look at speed control.

Here's the run() function with a few comments from me. This function breaks naturally into two sections; one in which we figure out which shift register outputs need to be set, and one in which we set them.

void AF_DCMotor::run(uint8_t cmd) {

uint8_t a, b;

/* Section 1: choose two shift register outputs based on which

* motor this instance is associated with. motornum is the

* motor number that was passed to this instance's constructor.

*/

switch (motornum) {

case 1:

a = MOTOR1_A;

b = MOTOR1_B; break;

case 2:

a = MOTOR2_A;

b = MOTOR2_B; break;

case 3:

a = MOTOR3_A;

b = MOTOR3_B; break;

case 4:

a = MOTOR4_A;

b = MOTOR4_B; break;

default:

return;

}

/* Section 2: set the selected shift register outputs to high/low, * low/high, or low/low depending on the command. This is done

* by updating the appropriate bits of latch_state and then

* calling tx_latch() to send latch_state to the chip.

*/

switch (cmd) {

case FORWARD: // high/low

latch_state |= _BV(a);

latch_state &= ~_BV(b);

https://www.360docs.net/doc/606580433.html,tch_tx();

break;

case BACKWARD: // low/high

latch_state &= ~_BV(a);

latch_state |= _BV(b);

https://www.360docs.net/doc/606580433.html,tch_tx();

break;

case RELEASE: // low/low

latch_state &= ~_BV(a);

latch_state &= ~_BV(b);

https://www.360docs.net/doc/606580433.html,tch_tx();

break;

}

}

Speed Control

The speed of the DC motors is controlled using pulse-width-modulation (PWM). The idea of PWM is to control the power to a motor using a high-frequency square wave. When the square wave signal is on the motor is powered, and when the signal is low the power is turned off. The speed of the motor is controlled by the fraction of time the controlling signal is on. The Arduino can generate square waves for PWM on pins 3, 5, 6, 9, 10, 11.

The wiring of the PWM pins for speed control is straightforward. On the motor driver ICs, in addition to the two control inputs for each motor, there is an enable input. If it is set low then the motor is not powered regardless of the state of the other two pins. Four of the PWM pins are wired directly to the four enable inputs on the two motor drivers. This detail from the schematic shows two PWM inputs to the driver for motors 1 and 2.

While the wiring is easy to understand, the code requires some explanation. It directly accesses internal registers of the ATmega processor, and the only detailed documentation I could find was in the datasheet. So let's dive in.

The ATmega processor has three timer/counter modules that can be used to generate a PWM signal. They are numbered 0, 1, and 2, and I'll refer to them as TC0, TC1, TC2. Conveniently the motor shield schematic uses the same numbering, so in the above figure you can see that TC2 is being used to control motors 1 and 2. Basically, the way the TC modules work is that a clock increments a counter on each clock cycle. Each TC has two associated comparison registers and two associated output pins; a pin can be set low or high depending on a comparison between the counter and the corresponding comparison register.

The modules can be configured in various operating modes, but in the "Fast PWM" mode that is used by the library, the output pin is set high each time the counter

sets back to zero and set low when the counter reaches the comparison value, which therefore acts as the speed setting. TC0 and TC2 each have an 8-bit counter, which is why the speed range for the motors is 0-255.

Each TC module is controlled by two registers. TC2 is controlled by registers TCCR2A and TCCR2B, which have the following bit layouts:

The comparison registers are identified as OCR2A and OCR2B. The avr headers define assignable macros with names identical to the register names as given in the datasheet. With this background, the following code becomes fairly clear. This is a brief excerpt of the AF_DCMotor constructor, which is initializing speed control for motor 1:

// use PWM from timer2A

TCCR2A |= _BV(COM2A1) | _BV(WGM20) | _BV(WGM21); // fast PWM, turn on oc0

TCCR2B = freq & 0x7;

OCR2A = 0;

DDRB |= _BV(3);

break;

This can really only be understood in full detail by looking at the tables in the datasheet, which I don't want to reproduce here. However, here is a brief description of what these specific bit settings mean:

?WGM20 = 1, WGM21 = 1: selects the "fast PWM" mode described above.

?COM2A1 = 1, COM2A0 = 0: in fast PWM mode, causes the output to be set low when the comparison value is reached.

?OCR2A = 0: initializes the comparison value (i.e. the speed setting) to zero.

?Three low-order bits of TCCR2B; chooses the frequency of the PWM signal.

?DDRB bit 3 set high: sets the pin mode for the pin corresponding to output 2A.

This is pin 11. This correspondence is defined by the ATmega chip itself and can't be changed.

TC0 has analogous control registers, just with "2" replaced by "0" in the names. Finally, here's the body of the setSpeed() function. All it does is set the comparison register for the appropriate motor:

void AF_DCMotor::setSpeed(uint8_t speed) {

switch (motornum) {

case 1:

OCR2A = speed; break;

case 2:

OCR2B = speed; break;

case 3:

OCR0A = speed; break;

case 4:

OCR0B = speed; break;

}

}

One thing I had hoped to understand out of all this but haven't completely figured out is why no frequency control is supported for motors 3 and 4. TC0 has the same 3 bits for controlling the frequency that TC2 has, so it should be possible. It may have to do with the fact that TC0 and TC1 share the same prescaler, and TC1 is used to control the servos; but I'm not sure.

Conclusion

Hope this helps.

Michael Koehrsen

5/26/2009

电机驱动板及说明

L298直流电机/步进电机驱动板【实物图片】 驱动板尺寸:65mmX50mmX30mm 安装尺寸:49.2mmX45mm 孔径:直径3.5mm [主要功能特点] 关键芯片:L298N 双H 桥直流/步进电机驱动芯片 L298N 芯片工作电压:DC 4.5~5.5V。 电机驱动电源电压DC 5--35V。 电源输入正常时有LED 灯指示。 最大输出电流2A(瞬间峰值电流3A),最大输出功率25W。 输出正常时电机运转有LED 灯指示。 具有二极管续流保护。 可单独控制2台直流电机或1台两相4 线(或6 线)步进电机。 可以采用并联接法控制一台高达3A 的直流电机。

可实现电机正反转。 直流电机转速可通过PWM 方式实现调速。 可以给单片机等控制器提供5V电源 接口说明: J1:电机驱动电源输入接口 范围DC 5V—35V。V+接正,GND接地,注意不要接反电源极性。 J2:驱动器和控制端的接口 控制直流电机时IN1、IN2 和ENA 为一组,它们控制的电机A 接在J3 的A+和A-,如果电机A 不调速,则ENA 悬空即可;如果电机A调速,则ENA 接一路PWM 输出口;IN3、IN4 和ENB 为一组,它们控制的电机B 接在J3 的B+和B-,如果电机B 不调速,则ENB 悬空即可;如果电机B 调速,则ENB 接另一路PWM 输出口;控制步进电机时IN1、IN2、IN3和IN4接4根IO 线,A-、A+接步进电机一相;B-、B+接步进电机另一相。ENA、ENB 悬空即可。如果是6线步进电机,可以把两相的公共线一起接在 J1 的V+即可。 J3:输出电机接口 接直流电机时,A+和A-为一路电机;B+和B-为另一路电机。接步进电机时,A+、A-、B+和B-步进电机的4 根相线接口,如果是6线步进电机,可以把两相的公共线一起接在 J1 的V+即可。

无刷直流电机驱动器说明书

无刷直流电机驱动器说 明书 -CAL-FENGHAI.-(YICAI)-Company One1

无刷驱动器DBLS-02 一概述: 本控制驱动器为闭环速度型控制器,采用最近型IGBT和MOS功率器,利用直流无刷电机的霍尔信号进行倍频后进行闭环速度控制,控制环节设有PID速度调节器,系统控制稳定可靠,尤其是在低速下总能达到最大转矩,速度控制范围150~10000rpm。 二产品特征: 1、 PID速度、电流双环调节器 2、高性能低价格 3、 20KHZ斩波频率 4、电气刹车功能,使电机反应迅速 5、过载倍数大于2,在低速下转矩总能达到最大 6、具有过压、欠压、过流、过温、霍尔信号非法等故障报警功能 三电气指标 标准输入电压:24VDC~48VDC,最大电压不超过60VDC。 最大输入过载保护电流:15A、30A两款 连续输出电流:15A加速时间常数出厂值:秒其他可定制 四端子接口说明 : 1、电源输入端: 引角序号引角名中文定义 1V+直流+24~48VDC输入 2GND GND输入 引角序号引角名中文定义 1MA电机A相

2MB电机B相 3MC电机C相 4GND地线 5HA霍尔信号A相输入端 6HB霍尔信号B相输入端 7HC霍尔信号C相输入端 8+5V霍尔信号的电源线 GND:信号地F/R:正、反转控制,接GND反转,不接正转,正反转切换时,应先关断ENEN:使能控制:EN接地,电机转(联机状态),EN不接,电机不转(脱机状态)BK:刹车控制:当不接地正常工作,当接地时,电机电气刹车,当负载惯量较大时,应采用脉宽信号方式,通过调整脉宽幅值来控制刹车效果。SV ADJ:外部速度衰减:可以衰减从0~100%,当外部速度指令接时,通过该电位器可以调速试机PG:电机速度脉冲输出:当极对数为P时,每转输出6P个脉冲(OC门输入)ALM:报警输出:当电路处于报警状态时,输出低电平(OC门输出)+5V:调速电压输出,可用电位器在SV和GND形成连续可调内置电位器:调节电机速度增益,可以从0~100%范围内调速。 五驱动器与无刷电机接线图

直流电机驱动电路设计

直流电机驱动电路设计 一、直流电机驱动电路的设计目标 在直流电机驱动电路的设计中,主要考虑一下几点: 1. 功能:电机是单向还是双向转动?需不需要调速?对于单向的电机驱动,只要用一个大功率三极管或场效应管或继电 器直接带动电机即可,当电机需要双向转动时,可以使用由4个功率元件组成的H桥电路或者使用一个双刀双掷的继电器。 如果不需要调速,只要使用继电器即可;但如果需要调速,可以使用三极管,场效应管等开关元件实现PWM(脉冲宽度调制)调速。 2. 性能:对于PWM调速的电机驱动电路,主要有以下性能指标。 1)输出电流和电压范围,它决定着电路能驱动多大功率的电机。 2)效率,高的效率不仅意味着节省电源,也会减少驱动电路的发热。要提高电路的效率,可以从保证功率器件的开关工作状态和防止共态导通(H桥或推挽电路可能出现的一个问题,即两个功率器件同时导通使电源短路)入手。 3)对控制输入端的影响。功率电路对其输入端应有良好的信号隔离,防止有高电压大电流进入主控电路,这可以用高的输入阻抗或者光电耦合器实现隔离。 4)对电源的影响。共态导通可以引起电源电压的瞬间下降造成高频电源污染;大的电流可能导致地线电位浮动。 5)可靠性。电机驱动电路应该尽可能做到,无论加上何种控制信号,何种无源负载,电路都是安全的。 二、三极管-电阻作栅极驱动

1.输入与电平转换部分: 输入信号线由DATA引入,1脚是地线,其余是信号线。注意1脚对地连接了一个2K欧的电阻。当驱动板与单片机分别供电时,这个电阻可以提供信号电流回流的通路。当驱动板与单片机共用一组电源时,这个电阻可以防止大电流沿着连线流入单片机主板的地线造成干扰。或者说,相当于把驱动板的地线与单片机的地线隔开,实现“一点接地”。 高速运放KF347(也可以用TL084)的作用是比较器,把输入逻辑信号同来自指示灯和一个二极管的2.7V基准电压比较,转换成接近功率电源电压幅度的方波信号。KF347的输入电压范围不能接近负电源电压,否则会出错。因此在运放输入端增加了防止电压范围溢出的二极管。输入端的两个电阻一个用来限流,一个用来在输入悬空时把输入端拉到低电平。 不能用LM339或其他任何开路输出的比较器代替运放,因为开路输出的高电平状态输出阻抗在1千欧以上,压降较大,后面一级的三极管将无法截止。 2.栅极驱动部分: 后面三极管和电阻,稳压管组成的电路进一步放大信号,驱动场效应管的栅极并利用场效应管本身的栅极电容(大约 1000pF)进行延时,防止H桥上下两臂的场效应管同时导通(“共态导通”)造成电源短路。 当运放输出端为低电平(约为1V至2V,不能完全达到零)时,下面的三极管截止,场效应管导通。上面的三极管导通,场效应管截止,输出为高电平。当运放输出端为高电平(约为VCC-(1V至2V),不能完全达到VCC)时,下面的三极管导通,场效

我国驱动电机类型及其发展现状

我国驱动电机类型及其发展现状 1.驱动电机类型及其发展 驱动电机是电动汽车的关键部件,直接影响整车的动力性及经济性。驱动电机主要包括直流电机和交流电机。目前电动汽车广泛使用交流电机,主要包括:异步电机、开关磁阻电机和永磁电机(包括无刷直流电机和永磁同步电机)。各类型电机主要特点见表1. 车用电机的发展趋势如下:(1)电机本体永磁化:永磁电机具有高转矩密度、高功率密度、高效率、高可靠性等优点。我国具有世界最为丰富的稀土资源,因此高性能永磁电机是我国车用驱动电机的重要发展方向。 (2)电机控制数字化:专用芯片及数字信号处理器的出现,促进了电机控制器的数字化,提高了电机系统的控制精度,有效减小了系统体积。 (3)电机系统集成化:通过机电集成(电机与发动机集成或电机与变速箱集成)和控制器集成,有利于减小驱动系统的重量和体积,可有效降低系统制造成本。 2.国外发展情况根据国外资料介绍 近年来美、欧开发的电动客车多采用交流异步电机,国外典型产品技术参数请见表 2.为了降低车重,电机壳体大多采用铸铝材料,电机恒功率范围较宽,最高转速可达基速的2~2.5倍。 日本近年来问世的电动汽车大多采用永磁同步电机。产品功率等级覆盖3~123kW,电机恒功率范围很宽,最高转速可达基速的5倍。日本近几年开发的电动汽车驱动电机概况见表3. 3.我国发展现状 (1)交流异步电机驱动系统我国已建立了具有自主知识产权异步电机驱动系统的开发平台,形成了小批量生产的开发、制造、试验及服务体系;产品性能基本满足整车需求,大功率异步电机系统已广泛应用于各类电动客车;通过示范运行和小规模市场化应用,产品可靠性得到了初步验证。 (2)开关磁阻电机驱动系统已形成优化设计和自主研发能力,通过合理设计电机结构、改进控制技术,产品性能基本满足整车需求;部分公司已具备年产2000套的生产能力,能满足小批量配套需求,目前部分产品已配套整车示范运行,效果良好。 (3)无刷直流电机驱动系统国内企业通过合理设计及改进控制技术,有效提高了无刷直流电机产品性能,基本满足电动汽车需求;已初步具有机电一体化设计能力。 (4)永磁同步电机驱动系统已形成了一定的研发和生产能力,开发了不同系列产品,可应用于各类电动汽车;产品部分技术指标接近国际先进水平,但总体水平与国外仍有一定差距;基本具备永磁同步电机集成化设计能力;多数公司仍处于小规模试制生产,少数公司已投资建立车用驱动电机系统专用生产线。 (5)永磁电机材料永磁电机的主要材料有钕铁硼磁钢、硅钢等。部分公司掌握了电机转子磁体先装配后充磁的整体充磁技术。国内研制的钕铁硼永磁体最高工作温度可达280℃,但技术水平仍与德国和日本有较大差距。 硅钢是制造电机铁芯的重要磁性材料,其成本占电机本体的20%左右,其厚度对铁耗有较大影响,日本已生产出0.27mm硅钢片用于车用电机,我国仅开发出0.35mm硅钢片。 (6)电机控制器关键部件电机控制器用位置/转速传感器多为旋转变压器,目前基本采用进口产品,我国部分公司已具备旋转变压器的研发生产能力,但产品精度、可靠性与国外仍有差距。IGBT基本依赖进口,价格昂贵,国产车用IGBT尚处于研究阶段。 4.我国驱动电机及其控制器存在的主要问题 (1)电机原材料、控制器核心部件研发能力较弱,依赖进口,如硅钢片、电机高速轴承、位置/转速传感器、IGBT模块等。进口产品成本高,影响电机系统产业化。 (2)我国车用电机的机电集成水平与国外差距较大。控制器集成度较低,体积、重量相对偏大。 (3)我国车用电机系统尚处于起步阶段,制造工艺水平落后,缺乏自动化生产线,造成产品可靠性、

步进电机驱动器说明书

L297 L298步进电机驱动控制板说明书 一、板子跳线器说明: 1、靠近光偶的短路冒打在CLK-555方向时有板上的555提供时钟给驱动器;打在CLK-CP U时右用户CPU提供时钟给驱动器。 2、JT5打在右边:297的HALF/FULL(全速/半速)脚接GND了默认为FULL模式了;JT5打在左边:297的HALF/FULL脚空了电机模式用户自己控制。 3、JT6打在右边:297的CW/CCW脚(方向)接GND了默认为顺时针转动模式了;JT6打在左边:297的CW/CCW脚空了电机正反转模式用户自己控制。 二、按键说明: 板子使用全新的L297作为控制芯片 L298作为驱动芯片板载NE555时钟电路为L297提供CLK因此该版在不需要外部控制的情况下就可以工作板载3个控制按键EN - 使能 CW - 反向旋转 HF - 半速旋转 通过按键就可以直接控制电机的正反转、全速/半速和使能。 三、基本功能描述: 通过光藕隔离之后将CLK CW HF EN四个基本控制端引出单片机等可以非常方便的控制电路的工作这个板子改进的地方比较多也方便研究使用。板子使用1N5822快速二极管作为续流器件其速度要远远快于整流桥的 L298和电机能够提供更完善的有效的保护。模块供电+ 5V(L297和L298控制供电) +12V(根据电机最低4V最高16V)给电机供电。 电机输出接口包括: +12V 四相输出 GND(请根据您的电机连接)。 控制输入接口包括: GND CLK EN CW HF。 需要特别说明的是:为了测试方便在板子上设置了NE555构成的一个低频时钟源(使用时跳线冒打在CLK-555处),当您使用外部的时钟信号控制电机的转速时必须跳线冒打在CLK -CPU处否则外部时钟是不会传到L297里面。 四、接口说明: 1、板子左上方小二接口(JT1) VCC接+5V、GND接电源地,次处为芯片L297和555芯片的工作电压;

L297+L298步进电机驱动控制板说明书

L297+L298步进电机驱动控制板说明书 一、板子跳线器说明:所有跳线都在左边,则由单片机控制。 1、靠近光偶的短路冒打在CLK-555方向时有板上的555提供时钟给驱动器;打在CLK-CP U时右用户CPU提供时钟给驱动器。 2、JT5打在右边:297的HALF/FULL(全速/半速)脚接GND了默认为FULL模式了;JT5打在左边:297的HALF/FULL脚空了电机模式用户自己控制。 3、JT6打在右边:297的CW/CCW脚(方向)接GND了默认为顺时针转动模式了;JT6打在左边:297的CW/CCW脚空了电机正反转模式用户自己控制。 二、按键说明: 板子使用全新的L297作为控制芯片 L298作为驱动芯片板载NE555时钟电路为L297提供CLK因此该版在不需要外部控制的情况下就可以工作板载3个控制按键EN - 使能 CW - 反向旋转 HF - 半速旋转 通过按键就可以直接控制电机的正反转、全速/半速和使能。 三、基本功能描述: 通过光藕隔离之后将CLK CW HF EN四个基本控制端引出单片机等可以非常方便的控制电路的工作这个板子改进的地方比较多也方便研究使用。板子使用1N5822快速二极管作为续流器件其速度要远远快于整流桥的 L298和电机能够提供更完善的有效的保护。模块供电+ 5V(L297和L298控制供电) +12V(根据电机最低4V最高16V)给电机供电。 电机输出接口包括: +12V 四相输出 GND(请根据您的电机连接)。 控制输入接口包括: GND CLK EN CW HF。 EN:高电平停止,低电平使能。 RET:高电平停止,低电平使能。 C/CW:高电平逆时针,低电平顺时针。 H/HD:高电平全速,低电平半速。 CLK:时钟脉冲。 需要特别说明的是:为了测试方便在板子上设置了NE555构成的一个低频时钟源(使用时跳线冒打在CLK-555处),当您使用外部的时钟信号控制电机的转速时必须跳线冒打在CLK -CPU处否则外部时钟是不会传到L297里面。

直流电机驱动电路设计

应用越来越广泛的直流电机,驱动电路设计 Source:电子元件技术| Publishing Date:2009-03-20 中心论题: ?在直流电机驱动电路的设计中,主要考虑功能和性能等方面的因素 ?分别介绍几种不同的栅极驱动电路并比较其性能优缺点 ?介绍PWM调速的实现算法及硬件电路 ?介绍步进电机的驱动方案 解决方案: ?根据实际电路情况以及要求仔细选择驱动电路 ?使用循环位移算法及模拟电路实现PWM调速 ?对每个电机的相应时刻设定相应的分频比值,同时用一个变量进行计数可实现步进电机的分频调速 直流电机驱动电路的设计目标 在直流电机驱动电路的设计中,主要考虑一下几点: 功能:电机是单向还是双向转动?需不需要调速?对于单向的电机驱动,只要用一个大功率三极管或场效应管或继电器直接带动电机即可,当电机需要双向转动时,可以使用由4个功率元件组成的H桥电路或者使用一个双刀双掷的继电器。如果不需要调速,只要使用继电器即可;但如果需要调速,可以使用三极管,场效应管等开关元件实现PWM(脉冲宽度调制)调速。 性能:对于PWM调速的电机驱动电路,主要有以下性能指标。 1。输出电流和电压围,它决定着电路能驱动多大功率的电机。 2。效率,高的效率不仅意味着节省电源,也会减少驱动电路的发热。要提高电路的效率,可以从保证功率器件的开关工作状态和防止共态导通(H桥或推挽电路可能出现的一个问题,即两个功率器件同时导通使电源短路)入手。 3。对控制输入端的影响。功率电路对其输入端应有良好的信号隔离,防止有高电压大电流进入主控电路,这可以用高的输入阻抗或者光电耦合器实现隔离。

4。对电源的影响。共态导通可以引起电源电压的瞬间下降造成高频电源污染;大的电流可能导致地线电位浮动。 5。可靠性。电机驱动电路应该尽可能做到,无论加上何种控制信号,何种无源负载,电路都是安全的。 三极管-电阻作栅极驱动 1.输入与电平转换部分: 输入信号线由DATA引入,1脚是地线,其余是信号线。注意1脚对地连接了一个2K欧的电阻。当驱动板与单片机分别供电时,这个电阻可以提供信号电流回流的通路。当驱动板与单片机共用一组电源时,这个电阻可以防止大电流沿着连线流入单片机主板的地线造成干扰。或者说,相当于把驱动板的地线与单片机的地线隔开,实现“一点接地”。 高速运放KF347(也可以用TL084)的作用是比较器,把输入逻辑信号同来自指示灯和一个二极管的2。7V 基准电压比较,转换成接近功率电源电压幅度的方波信号。KF347的输入电压围不能接近负电源电压,否则会出错。因此在运放输入端增加了防止电压围溢出的二极管。输入端的两个电阻一个用来限流,一个用来在输入悬空时把输入端拉到低电平。

L298N电机驱动器使用说明书

L298N电机驱动器使用说明书 注意:本说明书中添加超链接的按CTRL并点击连接,即可看到内容。

实例一:步进电机的控制实例 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。 一、步进电机最大特点是: 1、它是通过输入脉冲信号来进行控制的。 2、电机的总转动角度由输入脉冲数决定。 3、电机的转速由脉冲信号频率决定。 二、步进电机的驱动电路 根据控制信号工作,控制信号由单片机产生。(或者其他信号源)

三、基本原理作用如下: 两相四拍工作模式时序图: (1)控制换相顺序 1、通电换相这一过程称为脉冲分配。 例如: 1、两相四线步进电机的四拍工作方式,其各相通电顺序为(A-B-A ’-B ’)通电控制脉冲必须严格按照这一顺序分别控制A,B 相的通断。) 2、两相四线步进电机的四拍工作方式,其各相通电顺序为: (A -AB -B -BA ’-A ’-A ’B ’-B ’-B ’依次循环。(出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用八拍工作方式)

(2)控制步进电机的转向 如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。如:正转通电顺序是:(A-B-A’-B’依次循环。)则反转的通电顺序是:(B‘-A’-B-A依次循环。) 参考下例: (3)控制步进电机的速度 如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。参考下例: (4)四相电机的控制程序

三相直流无刷电机驱动程序

1.检测霍尔传感器的值可以判断出转子的位置,再使能相应的上下桥臂,则能驱动电机运动;若要让电机持续转动,则必须再次检测传感器值及使能相应的上下桥臂。这里采用的是将霍尔传感器输出的三根线相边的IO口配置成外部中断,并且为边沿触发,在中断函数中加入传感器检测与上下桥臂切换程序,如此电机就能持续运转了。 2.上桥臂的控制采用IO口置高低电平来控制上桥臂的通断,下桥臂则使用单片机内部集成的三路PWM波来控制,通过控制PWM波的占空比,可以实现对电机的调速了。实际测得,占空比与电机的速度成正比例关系,在PWM波频率为20KHz时,占空比增加1%,速度增加60rpm,并在占空比为53%时达到额定转速3000rpm(空载)。 3.速度测量则采用如下公式: 电机每转一圈,霍尔值改变6次x5个周期=30次,记录边沿触发的中断次数N/30=电机转过的圈数,设运转时间为t(s)则电机转速v=N/30/t*60 rpm。即动转时间为2s时,霍尔值改变次数即为速度值,单位rpm。 4.调速:给定速度,由电机驱动板自动由当前速度平滑过渡到给定速度。实际测试发现,速度变化量很大时,电机会有突然加速或减速时的冲击;因此,调速应有一个缓冲的过程。即加速或减速应以小步进缓慢增加或减少占空比来让速度渐渐达到最终值。 #include "stm32f10x.h" #include "driver_motor.h" #define PWM_PERIOD_T 400 #define U_Up_On GPIOB->BSRR = GPIO_Pin_13 #define U_Up_Off GPIOB->BRR = GPIO_Pin_13 #define U_Dn_On GPIOA->BSRR = GPIO_Pin_8 #define U_Dn_Off GPIOA->BRR = GPIO_Pin_8 #define V_Up_On GPIOB->BSRR = GPIO_Pin_14 #define V_Up_Off GPIOB->BRR = GPIO_Pin_14 #define V_Dn_On GPIOA->BSRR = GPIO_Pin_9 #define V_Dn_Off GPIOA->BRR = GPIO_Pin_9 #define W_Up_On GPIOB->BSRR = GPIO_Pin_15 #define W_Up_Off GPIOB->BRR = GPIO_Pin_15 #define W_Dn_On GPIOA->BSRR = GPIO_Pin_10 #define W_Dn_Off GPIOA->BRR = GPIO_Pin_10 #define SU_HOR GPIOA->IDR & GPIO_Pin_15 #define SV_HOR GPIOA->IDR & GPIO_Pin_12 #define SW_HOR GPIOA->IDR & GPIO_Pin_11 //u8 Motor_Dir=0; //u8 Motor_EN=0;

《驱动电机及控制技术》教学大纲

《驱动电机及控制技术》教学大纲 一、授课对象 本课程适用于汽车服务系新能源汽车制造与装配专业(中、高级)班三年制 二、课程学时 总学时108课时,6课时/周,1学期授完。 三、课程的任务和目的 本课程是中等职业学校电子技术应用与维修专业教材,是一门机电类专业课程。其任务是:使学生掌握常用电动机的结构及其控制方法,培养学生对常用电动机的维护、保养与检修的技能和解决实际问题的能力;对学生进行职业意识培养和职业道德教育,提高学生的综合素质与职业能力,增强学生适应职业变化的能力,为学生职业生涯的发展奠定基础。 本课程目的是:使学生能掌握电动类、制冷类日用电器中主要使用的三种电动机——单相异步电动机、直流电动机和单相串励电动机的结构、原理及应用,以及电动类、制冷空调类电器专用电动机的结构及其控制方法。熟悉对上述电动机进行维护、保养与检修。结合生产生活实际,培养学生对所学专业知识的兴趣和爱好,养成自主学习与探究学习的良好习惯,从而能够解决专业技术实际问题,养成良好的工作方法、工作作风和职业道德。 四、课程内容和要求 第一章:直流电动机8课时 1.教学内容: 第一节:直流电动机的结构和分类 第二节:直流电动机的工作原理与运行特性 第三节:直流电动机的起动、反转和调速。 2.教学要求与建议:了解直流电动机的基本结构和分类,掌握直流电动机的基本工作原理,理解直流电动机的起动、反转、调速的原理和方法,初步了解直流电动机常见故障的检修方法。 第二章:单相异步电动机10课时 1.教学内容: 第一节:异步电动机的结构和工作原理 第二节:单相异步电动机的分类 第三节:单相异步电动机的反转和调速 2.教学要求与建议:了解单相异步电动机的基本结构,掌握单相异步电动机的基本工作原理,理解异步电动机的分类和起动方式,了解单相异步电动机的反转、调速的原理和方法,初步了解单相异步电动机常见故障及其检修方法。 第三章:单相串励电动机12课时 1、教学内容 第一节:单相串励电动机的结构和运转原理 第二节:单相串励电动机的运行特性 第三节:单相串励电动机的反转和调速 2、教学要求与建议:理解单相串励电动机的基本结构和工作原理,了解单相串励电动机的主要特点和应用。 第四章:三相异步电动机16课时 1.教学内容: 第一节:三相异步电动机的结构和工作原理

单相电机驱动器说明书

Manual of 2-phase hybrid stepper motor driver DM542 Introduction: DM542 is a type of two-phase hybrid stepping motor driver, The drive voltage of which is from 18VDC to 50VDC. It is designed for use with 2-phase hybrid stepper motor of all kinds with 42mm to 86mm outside diameter and less than 4.0A phase current. This circuit that it adopts is similar to the circuit of servo control which enables the motor run smoothly almost without noise and vibration. Hording torque when DM542 run under high speed is also significantly higher than the other two-phase driver, what’s m ore, the positioning accuracy is also higher. It is widely used in middle and big size numerical control devices such as curving machine, CNC machine, Computer embroider machine, packing machines and so on. Features: ●High performance, low price ●Average current control, 2-phase sinusoidal output current drive ●Supply voltage from 18VDC to 50VDC ●Opto-isolated signal I/O ●Overvoltage, under voltage, overcorrect, phase short circuit protection ●15 channels subdivision and automatic idle-current reduction ●8 channels output phase current setting ●Offline command input terminal ●Motor torque is related with speed, but not related with step/revolution ●High start speed ●High hording torque under high speed Electrical specification: 1.

较大功率直流电机驱动电路的方案与对策

1 引言 直流电机具有优良的调速特性,调速平滑、方便、调速范围广,过载能力强,可以实现频繁的无级快速启动、制动和反转,能满足生产过程中自动化系统各种不同的特殊运行要求,因此在工业控制领域,直流电机得到了广泛的应用。 许多半导体公司推出了直流电机专用驱动芯片,但这些芯片多数只适合小功率直流电机,对于大功率直流电机的驱动,其集成芯片价格昂贵。基于此,本文详细分析和探讨了较大功率直流电机驱动电路设计中可能出现的各种问题,有针对性设计和实现了一款基于25D60-24A 的直流电机驱动电路。该电路驱动功率大,抗干扰能力强,具有广泛的应用前景。 2 H 桥功率驱动电路的设计 在直流电机中,可以采用GTR 集电极输出型和射极输出性驱动电路实现电机的驱动,但是它们都属于不可逆变速控制,其电流不能反向,无制动能力,也不能反向驱动,电机只能单方向旋转,因此这种驱动电路受到了很大的限制。对于可逆变速控制, H 桥型互补对称式驱动电路使用最为广泛。可逆驱动允许电流反向,可以实现直流电机的四象限运行,有效实现电机的正、反转控制。而电机速度的控制主要有三种,调节电枢电压、减弱励磁磁通、改变电枢回路电阻。三种方法各有优缺点,改变电枢回路电阻只能实现有级调速,减弱磁通虽然能实现平滑调速,但这种方法的调速范围不大,一般都是配合变压调速使用。因此在直流调速系统中,都是以变压调速为主,通过PWM(Pulse Width Mo dulation)信号占空比的调节改变电枢电压的大小,从而实现电机的平滑调速。 2.1 H 桥驱动原理 要控制电机的正反转,需要给电机提供正反向电压,这就需要四路开关去控制电机两个输入端的电压。当开关S1 和S4 闭合时,电流从电机左端流向电机的右端,电机沿一个方向旋转;当开关S2 和S3 闭合时,电流从电机右端流向电机左端,电机沿另一个方向旋转, H 桥驱动原理等效电路图如图1 所示。

电动汽车用驱动电机系统的现状及发展趋势

电动汽车用驱动电机系统的现状及发展趋势 中国汽车技术研究中心窦汝振李磊宋建锋 摘要:介绍了我国电动汽车用驱动电机系统的研发现状,以及车用系统与普通工业用系统间的差异,指出了发展趋势。 1 引言 我国汽车工业的发展面临着来自能源安全、环境保护和气候变化等可持续发展要求的多重挑战。随着近几年汽车保有量的快速增加,汽车能源消耗增长呈现加速趋势,进一步加剧了我国石油供需矛盾。在当前石油资源日益紧张,价格不断攀升的国际形势下,发展电动汽车特别是混合动力汽车是缓解我国石油资源短缺现状的有效途径,也是增强我国汽车工业核心竞争力的重大战略举措。 经过“八五”、“九五”规划的实施,特别是“十五”国家863电动汽车重大专项,我国已实现了官、产、学、研的资源整合,具有了电动汽车用驱动电机系统自主研发能力。在国家“三纵三横”总体布局中(如附图所示),驱动电机及其控制系统被列为“三横”中的共性技术之一。 附图国家“十五”电动汽车重大专项布局示意 2 电动汽车用驱动电机系统的特点及分类 电动汽车对驱动电机系统的要求至少包括: (1)基速以下输出大转矩,以适应车辆的启动、加速、负荷爬坡、频繁起停等复杂工况; (2)基速以上为恒功率运行,以适应最高车速、超车等要求; (3)全转速运行范围内的效率最优化,以提高车辆的续驶里程; (4)结构坚固、体积小、重量轻、良好的环境适应性和高可靠性; (5)低成本及大批量生产能力。 电动汽车最早采用了直流电机系统,特点是成本低、控制简单,但重量大,需要定期维护。随电力电子技术、自动控制技术、计算机控制技术的发展,包括异步电机及永磁电机在内的交流电机系统体现出比直流电机系统更加优越的性能,目前已逐步取代了直流电机控制系统。特别是借助于设计方法、开发工具及永磁材料的不断进步,用于驱动的永磁同步电动机得到了飞速发展。 电动汽车中常用的交流电机主要有异步、永磁、开关磁阻三大类型,其特点如表1所示。

2H42B步进电机驱动器说明书

2H42B 细分步进电机驱动器使用手册 V ersion 2.0 版权所有不得翻印 【使用前请仔细阅读本手册,以免损坏驱动器】 东莞市一能机电技术有限公司 DONGGUAN ICAN-TECH CO.,LTD 地址:东莞市万江区新和工业区瑞联振兴工业园B栋4楼 https://www.360docs.net/doc/606580433.html,/ Email:tech@https://www.360docs.net/doc/606580433.html,

2H42B 步进电机驱动器 一、 2H42B 步进电机驱动器产品简介 1.1概述 2H42B 步进电机驱动器是一款高性价比的细分两相步进电机驱动器。最大可提供2.0A 的电流输出。由于采用了双极性恒流斩波控制技术,与市面上同类型步进电机驱动器相比,其对步进电机噪声和发热均有明显改善。适用于尺寸为28,35,39,42等各类2相或4相混合式步进电机,具有体积小,使用简单方便等特点。 1.2特点 ◆低噪声,高速大转矩特性 ◆光电隔离差分信号输入,响应频率最高200K ◆供电电压12VDC-36VDC ◆细分精度1,2,4,8,16,32,64,128, ◆输出电流峰值可达2.0A 倍细分可选 ◆静止时电流自动减半 ◆外形尺寸小(96*60*24mm ) ◆可选择脉冲上升沿或下降沿触发 ◆电流设定方便,八档可选 ◆可驱动4、6、8线二相、四相步进电机 ◆具有过流,过温保护功能 1.3应用领域 适用于各类型自动化设备或仪器,如雕刻机、打标机、切割机、激光照排、绘图仪、数控 机床、机械手,包装机械,纺织机械等,极具性价比和竞争力。 二、 2H42B 步进电机驱动器 电气、机械和环境指标 1 网址:www https://www.360docs.net/doc/606580433.html, 2.2 2H42B 步进电机驱动器使用环境及参数 图1.安装尺寸图 2.4加强散热方式 1) 2H42B 步进电机驱动器的可靠工作温度通常在60℃以内,电机工作温度为80℃以内; 2) 建议使用时选择自动半流方式 (即电机停止时电流自动减至60% ),以减少电机和驱动器的发热; 3) 安装步进电机驱动器时请采用立式侧面安装,使散热面向易于空气对流的方向,必要时在机箱内靠近驱动器处应安装排气风扇,进行强制散热,从而保证驱动器在可靠工作温度范围内工作。 2 网址: www https://www.360docs.net/doc/606580433.html,

电机驱动器说明

使用说明 两相四线步进电机控制方式使用说明 使用直流/步进两用驱动器可以驱动一台步进电机。A,B端分别用短

接帽接通5V电源点。M1和M2四个接线端子分别接步进电机的两个绕组。要实现步进电机的旋转,输入信号端IN1,IN2,IN3,IN4依次接入低电平。(正转接入低电平的顺序是IN1→IN2→IN3→IN4,反转接入低电平的顺序是IN4→IN3→IN2→IN1)。改变脉冲的速度即可改变电机的转动速度,脉冲越快电机的转速也就越快。脉冲速度超过了电机的反应速度就容易造成电机失步。(果接入信号正常,电机发生抖动现象,证明电机接线一相接反。须调节电机接线顺序。) 四相六线步进电机控制方式使用说明 使用直流/步进两用驱动器可以驱动一台四相六线步进电机和控制一台两相四线步进电机的程序是一样的。(只是接线方式有一点不同,

四相六线步进电机需要将其中的两个公共端接电源即可。如上图接法。)M1和M2四个接线端子分别接步进电机的两个绕组。要实现步进电机的旋转,输入信号端IN1,IN2,IN3,IN4依次接入低电平。(正转接入低电平的顺序是IN1→IN2→IN3→IN4,反转接入低电平的顺序是IN4→IN3→IN2→IN1)。改变脉冲的速度即可改变电机的转动速度,脉冲越快电机的转速也就越快。脉冲速度超过了电机的反应速度就容易造成电机失步。(果接入信号正常,电机发生抖动现象,证明电机接线一相接反。须调节电机接线顺序。) 下面是一个我们用C语言,使用AT89S52单片机编写的一个简单的使电机连续运行的程序及接线图:

附录: 步进电机控制原理

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。 步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下: (1)控制换相顺序 通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。 (2)控制步进电机的转向 如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。 (3)控制步进电机的速度

A电机驱动模块使用手册

A4950电机驱动模块使用手册 一、模块特性 ◆2路电机驱动输出,单板典型最大电流2A; ◆驱动板工作电压范围:7.6V~30V; ◆推荐驱动频率范围:500Hz~30KHz; ◆板子尺寸:23mm*18.3mm; ◆排针间距20mm; 二、模块使用说明 模块接口说明: 1.VM:驱动模块的电源,根据电机的参数输入,实测范围7.6~40V(模块上面有2个VM,可以只接一个,建议都接) 2.VCC:接5V输入,不要输入 3.3V,要不然会影响性能。(模块上面有2个VCC,可以只接一个,建议都接) 3.GND是接地引脚。(模块上面有2个GND,可以只接一个,建议都接) 控制示例(在以上的3个引脚都接好的情况下): 任务1:A电机正转,占空比50% 方案:电机A的2个线分别接AOUT1、AOUT2。AIN1接低电平(也就是占空比0%),AIN2接50%的PWM。 因为AIN1和AIN2之间存在压差,所以电机可以以50%的速度转动,压差越大,转速越快。 任务2:B电机反转,占空比20% 方案:电机B的2个线分别接BOUT1、BOUT2。BIN1接高电平(也就是占空比100%),BIN2接20%的PWM。 如果您的PWM频率比较高,比如10khz,那需要2个PWM引脚才能控制正反装,如果使用Arduino默认是500HZ的频率的PWM,可以使用一个IO和一个PWM引脚控制正反转,但是效果没有2个PWM引脚好 很多同学看了上述的教程还不太理解,实际上说白了就是AIN1AIN2的信号的压差控制AOUT1AOUT2的输出,如果两个输入引脚一个是高电平(占空比100%)一个是低电平(占空比0%),那输出就是最大速度。两个引脚控制的PWM频率应该是一样的,比如都是10khz。 三、模块使用注意事项 ◆产品放置时,因为焊接元器件个别高度凸出,因此不要有其它重物压在上面,以防压坏电路板上的贴片元件,进而影响板子性能; ◆电路板存放温度不要超过55°,湿度小于60%; ◆板子放置不要靠近潮湿地方,以防板子受潮影响使用,如果板子受潮,请将板子至于通风干燥地方进行干燥处理,如空调下,利用空调热风进行干燥; ◆由于板子的引脚是裸露设计,请不要用手触摸相关引脚,以防静电损坏芯片引脚,影响板子性能。 ◆电路板使用前,必须检查所接电源是否在说明书规定的范围内,以防电压太高击穿关键芯片,影响板子性能; ◆电路板使用时,注意不要将电源接反。

MOS管驱动直流电机要点

直流电机驱动课程设计 题目:MOS I电机驱动设计 Word专业资料

摘要 直流电动机具有优良的调速特性,调速平滑,方便,调速围广,过载能力大, 能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;能满足生产过程 中自动化系统各种不同的特殊运行要 求。 本文介绍了直流电机驱动控制装置(H 桥驱动)的设计与制作,系统采用分立

元件搭建H 桥驱动电路,PWM 调速信号由单片机提供,信号与H 桥驱动电路之间采用光电耦合器隔离,电机的驱动运转控制由PLC 可编程逻辑控制器实现。 关键词:直流电动机,H 桥驱动,PWM

目录 一、直流电机概述 (4) 二、直流电机驱动控制 (6) 三、直流电机驱动硬件设计 (8) 四、直流电机驱动软件设计 (9) 五、程序代码..................................................... 1..2 六、参考文献..................................................... 1..8

一、概述 19 世纪70 年代前后相继诞生了直流电动机和交流电动机,从此人类社会进入了以电动机为动力设备的时代。以电动机作为动力机械,为人类社会的发展和进步、工业生产的现代化起到了巨大的推动作用。在用电系统中,电动机作为主要的动力设备而广泛地应用于工农业生产、国防、科技及社会生活等各个方面。电动机负荷约占总发电量的70 %,成为用电量最多的电气设备。对电动机的控制可分为简单控制和复杂控制两种。简单控制对电动机进行启动、制动、正反转控制和顺序控制。这类控制可通过继电器、可编程控制器和开关元件

步进电机驱动器说明书

TB6600升级版 两相步进驱动器 使用说明书 [使用前请仔细阅读本手册,以免损坏驱动器]

目录 一、产品简介 (3) 概述 (3) 特点 (3) 二、接口和接线介绍 (3) 信号输入端 (3) 电机绕组连接 (3) 电源电压连接 (4) 状态指示 (4) 接线方式 (4) 接线要求 (5) 三、电流、细分拨码开关设定 (5) 细分设定 (5) 工作(动态)电流设定 (6) 四、机械和环境指标 (6) 使用环境及参数 (6) 机械安装图 (7) 五、电机适配 (7) 电机适配 (7) 电机接线 (8) 供电电压和输出电流的选择 (8) 五、常见问题 (9) 应用中常见问题和处理方法 (9) 六、保修条款 (10)

一、产品简介 ◆概述 TB6600升级版驱动器是一款专业的两相混合式步进电机驱动器,可适配国内外各种品牌,电流在4.0A及以下,外径39,42,57mm的四线,六线,八线两相混合式步进电机。适合各种小中型自动化设备和仪器,例如:雕刻机、打标机、切割机、激光照排、绘图仪、数控机床、拿放装置等。在用户期望低成本、大电流运行的设备中效果特性。 ◆特点 ※信号输入:单端,脉冲/方向 ※细分可选:1/2/4/8/16/32细分 ※输出电流:0.5A-4.0A ※输入电压:9-42VDC ※静止时电流自动减半 ※可驱动4,6,8线两相、四相步进电机 ※光耦隔离信号输入,抗干扰能力强 ※具有过热、过流、欠压锁定、输入电压防反接保护等功能 ※体积小巧,方便安装 ※外部信号3.3-24V通用,无需串联电阻 二、接口和接线介绍 ◆信号输入端 PUL+ PUL-脉冲输入信号。默认脉冲上升沿有效。为了可靠响应脉冲信号,脉冲宽度应大于1.2us。 DIR+ DIR-方向输入信号,高/低电平信号,为保证电机可靠换向,方向信号应先于脉冲信号至少5us建立。电机的初始运行方向与电机绕组接线有关,互换任一相绕组(如A+、A-交换)可以改变电机初始运行方向。 ENA+ ENA-使能输入信号(脱机信号),用于使能或禁止驱动器输出。使能时,驱动器将切断电机各相的电流使电机处于自由状态,不响应步进脉冲。当不需用此功能时,使能信号端悬空即可。 ◆电机绕组连接 A+,A-电机A相绕组。 B+,B-电机B相绕组。

相关文档
最新文档