資料介紹
描述
在許多物聯(lián)網(wǎng)場景中,可能需要自動(dòng)化來物理移動(dòng)某些東西。為此,您需要使用某種類型的電機(jī)。在此示例中,我們將使用L293DNE芯片和運(yùn)行 Windows IoT Core 操作系統(tǒng)的 Raspberry Pi 2控制單個(gè)直流電機(jī)。
l293d.pdf
所需材料
- 運(yùn)行 Windows IoT Core 的 Raspberry Pi 2
- 帶帶狀電纜的 Pi Cobbler(可選)
- L293DNE芯片
- 直流電機(jī)(6v電機(jī))
- 一個(gè) 4xAA 電池組(為電機(jī)供電)
- 面包板
- 各種MM跳線
硬件設(shè)置
單直流電機(jī)控制接線圖
![poYBAGOiXpCAdyJtAAGLomQWjI4098.png](https://file.elecfans.com/web2/M00/84/F8/poYBAGOiXpCAdyJtAAGLomQWjI4098.png)
數(shù)據(jù)表中的 L293D 引腳輸出圖
![poYBAGOiXpqAGFiwAAC11jnUIMY084.jpg](https://file.elecfans.com/web2/M00/84/F9/poYBAGOiXpqAGFiwAAC11jnUIMY084.jpg)
接線細(xì)節(jié)
- Cobbler 5v 到面包板電源軌 #1
- Cobbler GND 到面包板接地軌 #1
- 面包板接地軌 #1 到對(duì)面的面包板接地軌 #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
- 一根電機(jī)線(可互換)到 L293D 引腳 3 (1Y)
- 一根電機(jī)線(可互換)到 L293D 引腳 6 (2Y)
直流電機(jī)控制接線
![poYBAGOiXqOAXxPlAAFOIhr2SCA100.jpg](https://file.elecfans.com/web2/M00/84/F9/poYBAGOiXqOAXxPlAAFOIhr2SCA100.jpg)
LD293D集成電路
該項(xiàng)目對(duì)實(shí)現(xiàn)直流電機(jī)的雙向控制進(jìn)行了簡單的考察。有多種方法可以實(shí)現(xiàn)此解決方案,這只是其中一種。L293D 芯片能夠控制兩個(gè)電機(jī),但在本例中,我們將僅使用 IC 的一側(cè)來控制一個(gè)電機(jī)。該 IC 依靠 5V 邏輯工作,通過引腳 16 或 VCC1 饋送到芯片。直流電機(jī)需要的安培數(shù)比 Raspberry Pi 所能輸出的要大,因此我們通過引腳 8 或 VCC2 使用外部電池為它提供不同的電源。為了控制電機(jī),其使能引腳必須設(shè)置為高電平,在我們的例子中,我們使用電機(jī)控制 IC 的左側(cè),因此將是引腳 1 (1,2 EN)。微控制器輸入(1A 或引腳 2 和 2A 或引腳 7)用于控制電機(jī)旋轉(zhuǎn)的方向,
數(shù)據(jù)表中的直流電機(jī)控制表
![poYBAGOiXqeATTI6AACdYXr96cs159.jpg](https://file.elecfans.com/web2/M00/84/F9/poYBAGOiXqeATTI6AACdYXr96cs159.jpg)
軟件
在此解決方案中,創(chuàng)建了一個(gè)新的空白通用 Windows 應(yīng)用程序并將其命名為 PiDCMotorControl。添加了對(duì) UWP 的 Windows IoT 擴(kuò)展的引用。為了創(chuàng)建 UI,將 MainPage.xaml 清單替換為以下內(nèi)容:
用戶界面定義:
????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>
這將創(chuàng)建一個(gè)屏幕,其中包含一系列用于控制電機(jī)的按鈕。點(diǎn)火按鈕將 LD293D 電機(jī)使能引腳設(shè)置為高電平,點(diǎn)火關(guān)閉按鈕將其設(shè)置為低電平。還包括用于向前和向后移動(dòng)電機(jī)的按鈕。停止按鈕可用于停止電機(jī)(無需關(guān)閉“點(diǎn)火裝置”)。
直流電機(jī)控制用戶界面
![pYYBAGOiXqmAEo-SAAB_vQBEV-g302.jpg](https://file.elecfans.com/web2/M00/85/81/pYYBAGOiXqmAEo-SAAB_vQBEV-g302.jpg)
接下來,我們將用以下內(nèi)容替換屏幕實(shí)現(xiàn)列表 (MainPage.xaml.cs):
直流電機(jī)控制實(shí)現(xiàn):
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();
????????}
????}
}
當(dāng)應(yīng)用程序部署到樹莓派上時(shí),您可以通過操作屏幕上的按鈕來控制電機(jī)。
![poYBAGOiXpCAdyJtAAGLomQWjI4098.png](https://file.elecfans.com/web2/M00/84/F8/poYBAGOiXpCAdyJtAAGLomQWjI4098.png)
- 博士直流電機(jī)控制表資料下載 4次下載
- 直流電機(jī)驅(qū)動(dòng)設(shè)計(jì)
- 直流電機(jī)調(diào)速系統(tǒng)的仿真
- 直流電機(jī)的原理圖
- 直流電機(jī)PWM調(diào)速與控制設(shè)計(jì)報(bào)告
- 直流電機(jī)PWM控制
- 無刷直流電機(jī)運(yùn)行原理與基本控制
- 直流電機(jī)控制原理及C程序
- PID控制PWM調(diào)節(jié)直流電機(jī)速度
- 直流電機(jī)PID控制
- 基于PID控制的直流電機(jī)調(diào)速系統(tǒng).
- 基于PID控制的直流電機(jī)調(diào)速系統(tǒng)
- 直流電機(jī)的控制 36次下載
- 直流電機(jī)調(diào)速電路的設(shè)計(jì) 43次下載
- 直流電機(jī)PWM控制 52次下載
- 直流電機(jī)是什么?具有什么特點(diǎn)? 760次閱讀
- 直流電機(jī)的轉(zhuǎn)速與線圈的關(guān)系 1173次閱讀
- 直流電機(jī)正反轉(zhuǎn)的控制方式 5163次閱讀
- 永磁無刷直流電機(jī)的控制方法 1494次閱讀
- 直流電機(jī)控制器電路圖分享 8432次閱讀
- 如何使用L298N和Arduino板控制直流電機(jī) 1w次閱讀
- 直流電機(jī)控制器原理圖 2.8w次閱讀
- 什么是無刷直流電機(jī)(BLDC)以及它的應(yīng)用 5.2w次閱讀
- 解析什么是無刷直流電機(jī)(BLDC) 2.3w次閱讀
- 淺析直流電機(jī)PWM控制原理及應(yīng)用 2w次閱讀
- 基于直流電機(jī)H橋的驅(qū)動(dòng)和控制原理設(shè)計(jì)并實(shí)現(xiàn)一款較大功率的直流電機(jī) 2.4w次閱讀
- 直流電機(jī)的電勢(shì)平衡方程與直流電機(jī)的損耗和功率平衡方程 1.1w次閱讀
- 直流電機(jī)的基本構(gòu)成與直流電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)圖解 1.7w次閱讀
- 直流電機(jī)的主要分類以及直流電機(jī)的勵(lì)磁方式 1.5w次閱讀
- 直流電機(jī)幾種驅(qū)動(dòng)電路設(shè)計(jì)思路 10.8w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論