Issue with starting of mini vibration motors

I have a large project That involve 9 solenoids and 4 small mini vibration motors

Arduino is used to pass the data from another software to control those solenoids and mini vibration motors.

here is the schematics that is used to drive the mini vibration motors:

VCC1 is +5V @2A
GND1 is arduino Ground.
GND2 is psu ground

the issue I'm facing is that in some of the time the motor won't start after a time it was ON then OFF. if that happen I plunk it on some hard material and it back to work but I need it to work immediately when I send it the number '255' - it should work at max power.

Any idea why the motor have hard time to start working after going OFF ?

Thanks for any help

It looks like those two diodes are reducing the voltage driving the gate of the FET to only 3.6V. That is in the region where it just will not turn fully on.

The threshold voltage, a point below which the FET is guaranteed to be off, is 2.5V, so at a voltage of 3.6V the FET is just beginning to turn on.

Why did you put those two diodes in the Vcc line?

Also you are using an opto isolator but having a common ground between that and the external motor drive. Thus not isolating the driver side of the circuit like you think you are.

I put those two diode to reduce the voltage across the mini vibration motors as is rated to 3.3V~ .

If I will add a wire to bypass the two diode it will work better?
or - shall I use higher power supply such as 9V or it will be too much for those motors?

GND1 is connected to arduino ground while GND2 is connected to the PSU that provide power to the motor. That is means they are isolated aren't they?

In which case put those two diodes after the fuse and connect R9 to Vcc.

like this?

Yes that is it.

From what I remember this mosfet should be LOW level mosfet (?)

assuming I am not able to change the mosfet as I already soldered it to stripboard - is there any way to make it work?

I'm sorry you are right I missed the 'L' at the end

so the reason my motor is not functions as it should is because the VG is too low? (3.6V~)

It is very possible. However the circuit you show in post #5 may not work depending on what is connected to P21

post 1 is the fully schematics ( pin 3 and 4 of the pc 817 are the connectors for p21)

With the schematic shown in post #5 with a PC817 the Vg will only be around 4V.
You need to remove R39 and make R40 around 5K. That should get you closer to 5V but depends on the following?

What is connected to GPIO1?
Are you trying to use PWM?

You do mean make R39 zero ohms, then change R40 to 5K?

That was a voltage divider otherwise.

So then 5K would be no different to 10K.

a7

To be absolutely clear, remove R39 and connect P21 pin1 to Vcc1
Hows's that?

I thought zero ohms was clear enough, but yeah sure.

"Remove" means, well you know what it means, and that was perfectly clear too.

And TBC, 10 or 5 K isn't going to make any difference. I know I don't have any 5K resistors, so. :expressionless:

a7

so you think my issue is the 2k2 resistor between VCC1 and the pc817 lug 4? (p21 pin 1)

That depends.
First answer the questions of post #13

a pwm output that sends numbers between 0 and 255

Yes. This works fine except then the issue this thread is about

Is it 3.3V or 5V?
How much current can it source?

Is it an Uno, ESP etc?

It is one of them, as it was part of a voltage divider, in effect. That cut the gate voltage down unnecessarily.

a7