开发机器人项目必备!电机驱动器IC的使用及NodeMCU电机屏蔽制作
- 时间:
- 浏览:88
- 来源:中国微特电机网
我们知道微控制器板的 GPIO 引脚有那限制,没法提取电机所需电流量,所以就得用电机驱动器这用电机驱动器的事可有不少门道!下面给大家好好聊一下用 NodeMCU 构建电机驱动器屏蔽的事!
电机驱动的需求缘由
在电机控制中,微控制器板常用那可不少,可问题就来了!微控制器板的 GPIO 引脚那电流供应能力实在局限。就比如说,那些小型精巧的项目里要用的电机,普通微控制器板 GPIO 引脚根本没法满足电机工作时候所需的较大电流量。所以得想办法,使用电机驱动器 IC 那就是解决这个棘手问题的好法子。
在电子实验众多场景里,大家能碰到这种情况,当想驱动直流电机时,电流却不够,那这电机可没法正常欢快地运转。有鉴于此arduino 电机驱动扩展板 l293d,用上电机驱动器那就是顺应需求必不可少
构建方案选择
要构建电机驱动器电路,那有两种可行方案。一方面可以发挥自己动手能力,用一些如电阻、电容这些零散但关键的电子元件,一个一个地去组合、搭建电路。不过这个过程可能费点事,得熟悉各个元件特性和相互连接关系。
还有种几乎现成的便利解决方案,就是电机驱动器屏蔽。像 NodeMCU Motor Driver Shield 这种,它把很多已经集成好的零部件归拢在一块。它就好比一个提前打造好的“小基地”,只要连接好,就等待大展身手发挥驱动电机的强大功能。现在很多电子爱好者或者搞项目的朋友就喜欢选这种现成解决方案,时间宝贵,省事
电机驱动器扩展板构成
NodeMCU 电机驱动器扩展板这小东西看着不起眼,实际可是里面大有乾坤!它以强大的 L293D 电机驱动器 IC 为核心 “指挥官”,能驱动电机稳定且高效地运转。还有那个 6 针开关,就像整个设备的 “交通指挥灯”,能自如地打开或者关闭电源;还有那个负责调压大任的 LM7805 稳压器arduino 电机驱动扩展板 l293d,它能把电压稳稳地调节到 5V,确保设备工作环境电压适宜。另外,它设计很周到,还预留了一些额外针脚。这些额外针脚就像是给未来可能拓展的精彩机会留的 “小窗口”,可以方便连接传感器、继电器等等各类设备,便于功能灵活扩展。
有了这样合理且巧妙的设计,在复杂多变的电子项目里就能从容自如地应对
电路图解析
NodeMCU 电机驱动器屏蔽电路图反映了这个关键部分内部构造关系。L293D 电机驱动器 IC 站 “C 位”,把控全局。那个 6 针开关负责电源的通断切换,是电源状态 “守门人”;LM7805 稳压器调节着重要的 5V 电压。数字引脚可是连接电机关键枢纽。D3 和 D4 连接到左电机,它们发送和接收的信号掌控着左电机行为 “步调”。D5 和 D6 连接到右电机,引导着右电机运动节奏。
多余插头引脚也不是闲置 “摆设”,它们像是等待 “召集令” 的备用力量,可以随时连接外部传感器、继电器或者其他各式各样设备,给之后个性化设备添加预留了广阔空间。
制造 PCB
常量 int inputPin1 = D3; 常量 int inputPin2 = D4; 常量 int inputPin3 = D5; 常量 int inputPin4 = D6;
制造 PCB 得选款合适软件设计,市面上 PCB 软件多样。这些软件可以让你绘制 PCB 蓝图。在软件里能用从 “层” 窗口选不同层面 “探索旅程”,不管是顶层、底层等不同层次,就像挖掘埋在地下宝贝一样,都可以一一查看并精准设计每个部位。
像 Pi Motor Driver HAT PCB 的 3D 模型视图直观能看到顶层和底层。它就像一个虚拟的实物图能看到电路板构造,帮助你在进入真正制造阶段时少走弯路,把制造失误可能性大大降低
无效设置() { pinMode(inputPin1, OUTPUT); pinMode(输入Pin2,输出); pinMode(inputPin3, OUTPUT); pinMode(inputPin4, OUTPUT); }
驱动代码说明
咱们说给 NodeMCU 编程让它控制电机。先从定义连接电机引脚的地方开始。这是设置起点,决定了电机初始的信号接收情况。把电机 A、B 输入和特定 NodeMCU 数字引脚相连,就相当于确定电机 “通讯线路”。
在 setup() 函数里所有控制引脚设成输出就像给电机 “开闸放水”:设置了信号能顺利传达渠道。在 loop() 函数内,每隔两秒就改变电机运行方向。它就好比是个定时指挥家,指挥电机一会向前一会向后一会向左一会向右。完成 PCB 组装又上传代码最后把相应器件装上去,一旦一切正常,直流电机就会跟着指令有韵律地动起来,像随着音乐起舞人偶!
大家说这 NodeMCU 电机驱动项目是不是很有趣又富有挑战?
{ //向前 数字写入(输入引脚1,高); 数字写入(输入引脚2,低); 数字写入(输入引脚3,高); 数字写入(输入引脚4,低); 延迟(2000); //剩下 数字写入(输入引脚1,低); 数字写入(输入引脚2,低); 数字写入(输入引脚3,高); 数字写入(输入引脚4,低); 延迟(2000); //正确的 数字写入(输入引脚1,高); 数字写入(输入引脚2,低); 数字写入(inputPin3,低); 数字写入(输入引脚4,低); 延迟(2000); //撤销 数字写入(输入引脚1,低); 数字写入(输入引脚2,高); 数字写入(inputPin3,低); digitalWrite(inputPin4, HIGH); 延迟(2000); //停止 数字写入(输入引脚1,低); 数字写入(输入引脚2,低); 数字写入(inputPin3,低); 数字写入(输入引脚4,低); 延迟(2000); }
猜你喜欢