I asked this question 13 days ago electronics.stackexchange. DC motor has to stop always same spot. If we take the area where the motor starts to rotate as 0, the motor should always stop at 0 degrees, not 3 or 5 (until 1, 2 is okay I guess.)

They suggest me to use hall effect sensor. I run into this question in this link stackoverflow . OP says it is not working.

OP says: What I managed to do at this moment, is calibrate ESC through Arduino and also to brake immediately when the magnet reached the sensor after I kill the throttle. However, I cannot get the magnet to stop directly below the hall sensor.

I don't have any DC motor yet so I can't try but I will try it soon. What I want to ask is;

  • In second link, OP couldn't manage to get this work with hall effect and magnet. IS there another way ?

  • if I use switch for drive DC motor, I can instantly brake motor with connecting the positive and negative terminals of the motor. If I get feedback from hall sensor, maybe I can stop it with hard brake. So is it good idea to use relay for stopping dc motor when I get feedback from hall effect sensor ?

Here is a schematic:

enter image description here

  • \$\begingroup\$ Far too many questions that are quite frankly either too hand-wavy or pointing in different directions from each other. Focus down to a simpler question and don't try and cover everything in one go. Avoid asking questions that either solicit opinions or expect simple yes/no answers. \$\endgroup\$
    – Andy aka
    Mar 1, 2022 at 11:02
  • \$\begingroup\$ A brushless DC motor will always turn a bit further when you interrupt its power. That's due to physics; mass, momentum, etc. How much further it turns is due to its speed and "load" (i.e. the counter force of whatever the motor is turning) at the moment of power interruption. Only if you can guarantee that those parameters will always be the same, the motor will stop at the same point a bit further from the trigger point (i.e. your hall sensor/magnet combo). In some cases, that "bit further" is approaching zero. So, whether your approach works is completely application-dependent. \$\endgroup\$
    – orithena
    Mar 1, 2022 at 13:30
  • \$\begingroup\$ I'd just use a stepper motor; those are designed to stop at defined points, but require a bit more software complexity on your microcontroller. \$\endgroup\$
    – orithena
    Mar 1, 2022 at 13:33
  • \$\begingroup\$ I would just use a limit switch. Easier than a hall sensor \$\endgroup\$
    – Ryan
    Mar 1, 2022 at 14:12
  • \$\begingroup\$ @ Andy aka , orithena and Ryan thank you for your comments. Ryan, I need to control this project with microcontroller and system has to work by itself so I musn't press button or anything. Still can I do that with limit switch ? \$\endgroup\$ Mar 1, 2022 at 14:18