86 arduino 电机yl_Arduino 直流电机程序示例

本文介绍如何使用Arduino通过PWM控制直流电机转速,并利用H桥实现电机的正反转。提供了详细的示例代码,包括基本的PWM控制、H桥控制以及结合PWM的H桥控制,以实现电机速度和方向的精确调节。
摘要由CSDN通过智能技术生成

概述

演示直流电机的控制。

示例程序

PWM控制直流电机

略过控制电机转停的示例啦,有需要就把这里的 PWM 换成数字口输出 HIGH 或 LOW 就行了。

// ----------------------------------------------------------------------------

// pwmMotor.ino

//

// Created 2015-06-11

// By seesea

//

// PWM 控制直流电机转速

// 其实就是之前的 PWM 控制 LED 的程序,完全一样,只是硬件上加上一个三极管用来驱动电机而已

//

// 11 脚接 NPN 三极管的基极,三极管集电极接电机一脚,电机另一脚接外接电源正极,三极管发射极接外接电源负,arduino 的 GND 也接到三极管发射极

// ----------------------------------------------------------------------------

const unsigned char motor = 11;

const unsigned char sensor = A0;

void setup()

{

pinMode(motor, OUTPUT);

pinMode(sensor, INPUT);

}

void loop()

{

// 用 map 函数进行范围的映射

analogWrite(motor, map(analogRead(sensor), 0, 1023, 0, 255));

}

上个接线图和效果图:

H桥控制直流电机

// ----------------------------------------------------------------------------

// hBridgeMotor.ino

//

// Created 2015-06-11

// By seesea

//

// H 桥控制直流电机演示

// 通过 H 桥控制直流电机的转动方向

// 先顺时针转一秒,再逆时针转一秒,停一秒,重复前述动作

//

// 根据 H 桥实际的电路进行接线。手头没有现成的芯片,用了四个三极管搭的粗糙的 H 桥原型来做的实验

// ----------------------------------------------------------------------------

const unsigned char pinMotorCW = 10; // 接控制电机顺时针转的 H 桥引脚

const unsigned char pinMotorCCW = 11; // 接控制电机逆时针转的 H 桥引脚

// 电机停转

void motorStop()

{

digitalWrite(pinMotorCW, LOW);

digitalWrite(pinMotorCCW, LOW);

}

// 电机顺时针转

void motorCW()

{

digitalWrite(pinMotorCW, HIGH);

digitalWrite(pinMotorCCW, LOW);

}

// 电机逆时针转

void motorCCW()

{

digitalWrite(pinMotorCW, LOW);

digitalWrite(pinMotorCCW, HIGH);

}

void setup()

{

pinMode(pinMotorCW, OUTPUT);

pinMode(pinMotorCCW, OUTPUT);

}

void loop()

{

motorCW();

delay(1000);

motorCCW();

delay(1000);

motorStop();

delay(1000);

}

手工搭的 H 桥,太乱了就看个效果吧,建议直接用现成的芯片。

PWM + H 桥控制直流电机

同时控制直流电机的方向及转速

// ----------------------------------------------------------------------------

// pwmHBridgeMotor.ino

//

// Created 2015-06-11

// By seesea

//

// PWM 通过 H 桥控制直流电机

// 既控制电机的转速,也控制电机的方向

// 控制电机顺时针逐渐转快,再逐渐转慢,然后逆时针由慢转快再转慢,又回到顺时针的转动循环

//

// 根据 H 桥实际的电路进行接线。手头没有现成的芯片,用了四个三极管搭的粗糙的 H 桥原型来做的实验

// ----------------------------------------------------------------------------

const unsigned char pinMotorCW = 10; // 接控制电机顺时针转的 H 桥引脚

const unsigned char pinMotorCCW = 11; // 接控制电机逆时针转的 H 桥引脚

// 电机停转

void motorStop()

{

digitalWrite(pinMotorCW, LOW);

digitalWrite(pinMotorCCW, LOW);

}

// 电机以参数设定的 pwm 值顺时针转

void motorCW(unsigned char pwm)

{

analogWrite(pinMotorCW, pwm);

digitalWrite(pinMotorCCW, LOW);

}

// 电机以参数设定的 pwm 值逆时针转

void motorCCW(unsigned char pwm)

{

digitalWrite(pinMotorCW, LOW);

analogWrite(pinMotorCCW, pwm);

}

void setup()

{

pinMode(pinMotorCW, OUTPUT);

pinMode(pinMotorCCW, OUTPUT);

}

void loop()

{

unsigned char i;

// 顺时针由慢到快

for (i = 0; i < 255; ++i) { motorCW(i); delay(10); } // 顺时针由快到慢 for (i = 255; i > 0; --i)

{

motorCW(i);

delay(10);

}

// 逆时针由慢到快

for (i = 0; i < 255; ++i) { motorCCW(i); delay(10); } // 逆时针由快到慢 for (i = 255; i > 0; --i)

{

motorCCW(i);

delay(10);

}

}

用三极管搭的简陋 H 桥就看个效果啦,建议直接用现成的芯片。

https://www.cnblogs.com/starsnow/p/4579547.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值