Logic level motor to use with arduino

I wonder if this IRF520 mosfet module could work well with arduino to control 12V dc motor?

if not - what about IRLZ44 or FQP30N06L ?

I cannot accurately answer that question. The module you reference will not fully turn on with a 5V signal. You also did not state which Arduino we are talking about. Look at the curves on the appropriate data sheet and see what the Vgs curve shows you.

Request for Information to Assist with Your Problem:

I find your question interesting, but I have a problem understanding your setup. After reading your description, I still have no idea what your actual configuration looks like. To help you better, please provide the following:

  1. Annotated Schematic: Post a clear, annotated schematic of your setup showing all connections, including power, ground, and any power supplies. I do not work with Fritzing diagrams or unclear pictures. However, a readable photo of a hand-drawn schematic is perfectly fine.

  2. Technical Details: Provide links to the technical information for all hardware components used in your setup. There are many different and sometimes incompatible devices that look similar but behave differently, so it's crucial that we have accurate information. Avoid linking to marketplace sites like Amazon that often lack detailed specifications.

  3. Why This Matters: All you want is to make everything work together correctly, and all we want is to help you achieve that. By providing the correct details, we can offer more targeted and effective assistance.

Helpful Resources:

Please share these details so we can guide you toward the right solution. We're here to help!

There's plenty of information on the subject on the WWW if you want to get acquainted.

I guess by control, you mean more than on/off and possibly speed as well.

I'm no expert, but PWM (Pulse Width Modulation) might be useful and I sometimes use a MOSFET driver chip as well which sits between the Arduino and the MOSFET.

It shouldn't be a problem getting it to work.

No it would not

The IRLZ44N or FQP30N06L maybe OK with a 5V Arduino but it depends on the current required by the motor.

How much current does the motor need?

it is just for few examples. I will probably use those 1V-6V DC motors: link

That's OK.
IRLZ44N or the FQP30N06L will work

No.
The IRF520 fet on these modules is not logic level and shouldn't be used with any Arduino.
There are other modules with smd fets, which are compatible.
Leo..

Do you need an example circuit?

so Why they advertise it as it it.. :frowning:

also I have seen this video: https://www.youtube.com/watch?v=93jO8_POtVY

this should work I guess..

Yes that will work.

Absolute total garbage.
Does not show it actually working because it does not.

This as well but I guess it could work with one small motor ok but not with more then one/ higher loads motors..?

Maybe, maybe not. Depends how lucky you. If get one that has a low Vgs(th) and the motor current is also low it might work without overheating

Do you know on any mosfet board simillar to the one I shared (But one that is acctually feets to work with logic levels?)

This one will work with 5V control signals.

1 Like

There must be a warehouse full of those fets that need to be sold.
Or the manufacturing rights have expired so every cheap factory can clone them.
The youtube video is just a promotion, full of inaccuracies.

Google the datasheet and check the (in)capabilities for yourself.
Leo..

1 Like

I bought this module - and while working great with solenoid and with mini vibration motor, for some reason I could not make it works with small DC motors.

code I am using:

const int NUM_PWM_MOTORS = 2;
const int pwm_motor_pins[] = { 5, 6 };
const char pwm_motor_ids[] = { 'U', 'V' };

void setup() {

  for (int i = 0; i < NUM_PWM_MOTORS; i++) {
    pinMode(pwm_motor_pins[i], OUTPUT);
    analogWrite(pwm_motor_pins[i], 0);  // ensure OFF at boot
  }
  Serial.setTimeout(10);  //window time to receive data from Serial
  Serial.begin(115200);   // start serial communication at 115200 baud (bits per second)
}

void loop() {
  motorsControl();
}
void motorsControl() {
  if (Serial.available() > 0) {
    char id = Serial.read();
    int state = Serial.parseInt();
    for (int i = 0; i < NUM_PWM_MOTORS; i++) {
      if (id == pwm_motor_ids[i]) {
        analogWrite(pwm_motor_pins[i], state);
        Serial.print(id);
        Serial.print(" ");
        Serial.println(state);
      }
    }
  }
}


And just to be clear - same exact code and setup works with mini vibration motor. I’m using 5V phone charge as the motor power input

Have you tried state = 255 ?

Which Arduino are you using?

Yes. I try both state = 255 and state = 0. I got the motor works for like 1 sec then stopped. I’m using Arduino Uno

Is the UNO program still running or did it also stop?