资料介绍
描述
在许多物联网场景中,可能需要自动化来物理移动某些东西。为此,您需要使用某种类型的电机。在此示例中,我们将使用L293DNE芯片和运行 Windows IoT Core 操作系统的 Raspberry Pi 2控制单个直流电机。
l293d.pdf
所需材料
- 运行 Windows IoT Core 的 Raspberry Pi 2
- 带带状电缆的 Pi Cobbler(可选)
- L293DNE芯片
- 直流电机(6v电机)
- 一个 4xAA 电池组(为电机供电)
- 面包板
- 各种MM跳线
硬件设置
单直流电机控制接线图
数据表中的 L293D 引脚输出图
接线细节
- Cobbler 5v 到面包板电源轨 #1
- Cobbler GND 到面包板接地轨 #1
- 面包板接地轨 #1 到对面的面包板接地轨 #2
- L293D 引脚 4、5、12、13 到面包板接地轨
- L293D 引脚 16 (VCC1) 到面包板电源轨
- Cobbler 引脚 21 到 L293D 引脚 1 (1,2EN)
- Cobbler 引脚 20 到 L293D 引脚 2 (1A)
- Cobbler 引脚 16 到 L293D 引脚 7 (2A)
- 电池组正极(红线)到面包板电源轨 #2
- 电池组接地(黑线)到面包板接地轨 #2
- L293D 引脚 8 (VCC2) 到面包板电源轨 #2
- 一根电机线(可互换)到 L293D 引脚 3 (1Y)
- 一根电机线(可互换)到 L293D 引脚 6 (2Y)
直流电机控制接线
LD293D集成电路
该项目对实现直流电机的双向控制进行了简单的考察。有多种方法可以实现此解决方案,这只是其中一种。L293D 芯片能够控制两个电机,但在本例中,我们将仅使用 IC 的一侧来控制一个电机。该 IC 依靠 5V 逻辑工作,通过引脚 16 或 VCC1 馈送到芯片。直流电机需要的安培数比 Raspberry Pi 所能输出的要大,因此我们通过引脚 8 或 VCC2 使用外部电池为它提供不同的电源。为了控制电机,其使能引脚必须设置为高电平,在我们的例子中,我们使用电机控制 IC 的左侧,因此将是引脚 1 (1,2 EN)。微控制器输入(1A 或引脚 2 和 2A 或引脚 7)用于控制电机旋转的方向,
数据表中的直流电机控制表
软件
在此解决方案中,创建了一个新的空白通用 Windows 应用程序并将其命名为 PiDCMotorControl。添加了对 UWP 的 Windows IoT 扩展的引用。为了创建 UI,将 MainPage.xaml 清单替换为以下内容:
用户界面定义:
x:Class="PiDCMotorControl.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:PiDCMotorControl"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
"50" />
"50" />
"50" />
"50" />
"50" />
Grid.RowDefinitions>
<Grid.ColumnDefinitions>
"200" />
"200" />
Grid.ColumnDefinitions>
FontSize="30" Grid.Row="1" Grid.ColumnSpan="3">Motor Control
<Button Name="btnIgnitionOn" Margin="5" Background="Green" Foreground="White" Grid.Row="2"
Click="btnIgnitionOn_Click">Ignition ONButton>
<Button Name="btnIgnitionOff" Margin="5" Background="Red" Foreground="White" IsEnabled="False"
Grid.Row="2" Grid.Column="1" Click="btnIgnitionOff_Click">Ignition OffButton>
<Button Name="btnForward" Margin="5" Background="LightBlue" Foreground="DarkBlue" IsEnabled="False"
Grid.Row="3" Click="btnForward_Click">ForwardButton>
<Button Name="btnReverse" Margin="5" Background="Orange" Foreground="OrangeRed" IsEnabled="False"
Grid.Row="3" Grid.Column="1" Click="btnReverse_Click">ReverseButton>
<Button Name="btnStop" Click="btnStop_Click" Background="Salmon" Foreground="Sienna" IsEnabled="True"
Grid.Row="4" Margin="5">StopButton>
Grid>
这将创建一个屏幕,其中包含一系列用于控制电机的按钮。点火按钮将 LD293D 电机使能引脚设置为高电平,点火关闭按钮将其设置为低电平。还包括用于向前和向后移动电机的按钮。停止按钮可用于停止电机(无需关闭“点火装置”)。
直流电机控制用户界面
接下来,我们将用以下内容替换屏幕实现列表 (MainPage.xaml.cs):
直流电机控制实现:
using Windows.Devices.Gpio;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace PiDCMotorControl
{
///
/// Basic Bi-Directional Control of a single DC Motor
///
public sealed partial class MainPage : Page
{
private int _pinEn1_2 = 21;
private int _pin1A = 20;
private int _pin2A = 16;
private GpioController _controller;
private GpioPin _motorEnable;
private GpioPin _motorControl1A;
private GpioPin _motorControl2A;
public MainPage()
{
this.InitializeComponent();
_controller = GpioController.GetDefault();
_motorEnable = _controller.OpenPin(_pinEn1_2);
_motorControl1A = _controller.OpenPin(_pin1A);
_motorControl2A = _controller.OpenPin(_pin2A);
_motorEnable.SetDriveMode(GpioPinDriveMode.Output);
_motorControl1A.SetDriveMode(GpioPinDriveMode.Output);
_motorControl2A.SetDriveMode(GpioPinDriveMode.Output);
}
private void _turnOnIgnition()
{
_motorEnable.Write(GpioPinValue.High);
}
private void _forwardMotor()
{
_motorControl1A.Write(GpioPinValue.High);
_motorControl2A.Write(GpioPinValue.Low);
}
private void _reverseMotor()
{
_motorControl1A.Write(GpioPinValue.Low);
_motorControl2A.Write(GpioPinValue.High);
}
private void _stopMotor()
{
_motorControl1A.Write(GpioPinValue.Low);
_motorControl2A.Write(GpioPinValue.Low);
}
private void _turnOffIgnition()
{
_motorEnable.Write(GpioPinValue.Low);
_motorControl1A.Write(GpioPinValue.Low);
_motorControl2A.Write(GpioPinValue.Low);
}
private void btnIgnitionOn_Click(object sender, RoutedEventArgs e)
{
btnIgnitionOn.IsEnabled = false;
btnIgnitionOff.IsEnabled = true;
btnForward.IsEnabled = true;
btnReverse.IsEnabled = true;
_turnOnIgnition();
}
private void btnIgnitionOff_Click(object sender, RoutedEventArgs e)
{
btnIgnitionOn.IsEnabled = true;
btnIgnitionOff.IsEnabled = false;
btnForward.IsEnabled = false;
btnReverse.IsEnabled = false;
_turnOffIgnition();
}
private void btnForward_Click(object sender, RoutedEventArgs e)
{
btnForward.IsEnabled = false;
btnReverse.IsEnabled = true;
_forwardMotor();
}
private void btnReverse_Click(object sender, RoutedEventArgs e)
{
btnReverse.IsEnabled = false;
btnForward.IsEnabled = true;
_reverseMotor();
}
private void btnStop_Click(object sender, RoutedEventArgs e)
{
_stopMotor();
}
}
}
当应用程序部署到树莓派上时,您可以通过操作屏幕上的按钮来控制电机。
- 博士直流电机控制表资料下载 4次下载
- 直流电机驱动设计
- 直流电机调速系统的仿真
- 直流电机的原理图
- 直流电机PWM调速与控制设计报告
- 直流电机PWM控制
- 无刷直流电机运行原理与基本控制
- 直流电机控制原理及C程序
- PID控制PWM调节直流电机速度
- 直流电机PID控制
- 基于PID控制的直流电机调速系统.
- 基于PID控制的直流电机调速系统
- 直流电机的控制 36次下载
- 直流电机调速电路的设计 43次下载
- 直流电机PWM控制 51次下载
- 直流电机的转速与线圈的关系 154次阅读
- 直流电机正反转的控制方式 2696次阅读
- 永磁无刷直流电机的控制方法 873次阅读
- 直流电机控制器电路图分享 5628次阅读
- 如何使用L298N和Arduino板控制直流电机 1w次阅读
- 跑步机直流电机和交流电机的区别 1.7w次阅读
- 直流电机控制器原理图 2.7w次阅读
- 什么是无刷直流电机(BLDC)以及它的应用 5.1w次阅读
- 解析什么是无刷直流电机(BLDC) 2.2w次阅读
- 浅析直流电机PWM控制原理及应用 2w次阅读
- 基于直流电机H桥的驱动和控制原理设计并实现一款较大功率的直流电机 2.4w次阅读
- 直流电机的电势平衡方程与直流电机的损耗和功率平衡方程 1w次阅读
- 直流电机的基本构成与直流电机驱动电路的设计图解 1.7w次阅读
- 直流电机的主要分类以及直流电机的励磁方式 1.5w次阅读
- 直流电机几种驱动电路设计思路 10.7w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多