搜索代码

15A 400W MOSFET AOD4184A用于控制电机或负载

15A 400W MOSFET AOD4184A用于控制电机或负载

本项目演示如何使用一个15A、400W的MOSFET模块(基于AOD4184A MOSFET)来控制各种负载,如电动机和灯光。这是一项对许多应用非常有价值的技能,可以实现精确的电源控制。MOSFET的高电流能力使其适用于广泛的项目。

AOD4184A-_mosfet_module-main

实际应用:

  • 在机器人或自动化项目中控制直流电动机的速度。
  • 为LED照明创建调光电路。
  • 为电器构建高功率开关电路。
  • 为小型车辆设计电机控制器。

硬件/组件

核心组件是一个15A、400W的MOSFET模块,具有两个并联的AOD4184A MOSFET(在视频中显示于00:05)。您还需要一个Arduino板、一个电源、连接线和您希望控制的负载(电机、灯等)。对于高电流应用,强烈建议使用散热器(在视频中显示于03:40)。

15A 400W MOSFET AOD4184A to control a motor or load
15A 400W MOSFET AOD4184A to control a motor or load
AOD4184A引脚分配

接线指南

该模块有清晰标记的接线端子:输入(V), 输出,和接地(视频中的 01:42)。将电源的正极连接到 V,负极接地。你的负载连接到输出端子。Arduino通过一个数字引脚控制MOSFET模块的门(视频中在08:26)。

mosfet_AOD4184A_module_wiring

代码解释

Arduino代码使用脉宽调制(PWM)来控制MOSFET。可配置的参数包括:

  • motorPin指定连接到MOSFET模块闸门的Arduino引脚(默认:引脚9)。
  • mSpeed一个控制电机速度的整数变量(0-255)。
  • mStep确定增量/减量步骤 дляmSpeed(默认: 15)。调整此值以微调速度控制(视频时间为 05:54)。

int motorPin =9; // pin to connect to motor module
int mSpeed = 0; // variable to hold speed value
int mStep = 15; // increment/decrement step for PWM motor speed

代码包含防止的逻辑mSpeed超出 0-255 范围(见视频:07:26)。为了测试更高的电流(5A、10A、15A、20A),简化版本的代码保持输出引脚为 HIGH,以维持恒定的开启状态(见视频:13:43)。


void loop() {
  digitalWrite(loadPin, HIGH);
  while(1); // wait forever
}

现场项目/演示

该视频演示了使用PWM控制一个51W的灯泡(在视频的10:40)和一个直流电机(在视频的11:18)。该项目还包括对电子负载在5A、10A、15A和20A下的测试(在视频的13:10),展示了模块的高电流处理能力。视频中还显示了在不同电流下MOSFET的电压降测量(在视频的16:06),验证了AOD4184A的低导通电阻。

AOD4184A-_MOSFET模块-主-15A

章节

  • [00:00] 介绍与项目概览
  • 硬件概述和模块详细信息
  • [05:01] MOSFET 数据表说明
  • [05:47] 代码解释
  • [08:26] 接线说明
  • [10:40] 使用51W灯进行演示
  • [11:18] 使用直流电动机的演示
  • 高电流测试(5A,10A,15A,20A)
  • 电压下降测量

图像

15A 400W MOSFET AOD4184A 用于控制电机或负载
15A 400W MOSFET AOD4184A 用于控制电机或负载
15A 400W MOSFET AOD4184A 用于控制电机或负载
15A 400W MOSFET AOD4184A 用于控制电机或负载
mosfet_AOD4184A_module_wiring
mosfet_AOD4184A_module_wiring
AOD4184A-_mosfet_module-main
AOD4184A-_mosfet_module-main
AOD4184A-_mosfet_module-main-15A
AOD4184A-_mosfet_module-main-15A
AOD4184A_pinout
AOD4184A_pinout
134-Code example using a resistor
语言: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining why a resistor is needed when using a push button
 * with an Arduino to connect the pin to Ground (GND)
 * 
 * Written by Ahmad Shamshiri on July 18, 2018 at 17:36 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instructional video for this code: https://youtu.be/tCJ2Q-CT6Q8
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int motorPin =9;// pin to connect to motor module
int mSpeed = 0;// variable to hold speed value
int mStep = 15;// increment/decrement step for PWM motor speed
  
void setup() {
  // Robojax.com demo
  pinMode(motorPin,OUTPUT);// set mtorPin as output
  Serial.begin(9600);// initialize serial motor
  Serial.println("Robojax Demo");
  

}

void loop() {
  // Robojax.com tutorial

analogWrite(motorPin, mSpeed);// send mSpeed value to motor
    Serial.print("Speed: ");
    Serial.println(mSpeed);// print mSpeed value on Serial monitor (click on Tools->Serial Monitor)
  mSpeed = mSpeed + mStep;
  // See the video for details.
  if (mSpeed <= 0 || mSpeed >= 255) {
    mStep = -mStep;
  }  
  
delay(200);

}
135-Testing MOSFET AOD4184A using 5A, 10A, 15A, 20A, and 25A loads
语言: C++
/*
 * This is an Arduino Sketch for a tutorial video 
 * explaining the 15A MOSFET AOD4184A used as a switch 
 * This sketch is used to test the MOSFET with a load at 5A, 10A, 15A, 25A
 * 
 * Written by Ahmad Shamshiri on July 21, 2018 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/tCJ2Q-CT6Q8 
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int loadPin =9;// load pin

  
void setup() {
  // Robojax.com demo
  pinMode(loadPin,OUTPUT);
  Serial.begin(9600);
  Serial.println("Robojax Demo"); 

}

void loop() {
  // Robojax.com tutorial

  digitalWrite(loadPin, HIGH);
 while(1);// wait forever


}

|||您可能需要的东西

资源与参考

尚无可用资源。

文件📁

Fritzing 文件

其他文件