Motor safety

Hi
I need help with a safety system for a sensible motor. I do not know how to do that correctly and hope you can guide me.
I have a system with a big motor that is very very slow (1 round every 20seconds). The problem is, that it moves a metal rod which can get stuck. After some minutes the motor overheats and gets destroyed. The motor itself is started randomly (also at night) over the whole day.

What I want: to recognize whether the motor is rotating (everything ok) or stuck (and system is shutting down)

I thought to do it with an optical sensor and an plastic ring around the motor. So the motor rotates this plastic ring(plate). On the ring are some black points, and I count these points with an optical sensor with an Interrupt? Is that a secure way to do it? Would you recommend me a different way?

I have no experience with that (especially interrupts) and do not want to learn disadvantages of this system the hard way (by buying a new motor for 200EUR)

Thank you very much.

PS: The motor has to turn randomly over the whole day. It has to be that slow and there is no chance in building the metal parts so that they do not stuck (with reasonably effort).

The QRD1113 reflective sensor may be what you need. It will work for what you mentioned (sensing black and white stripes). Interrupts are for things that happen quickly. Polling the sensor pin will, in a tight loop() function, do what you need without the complications of interrupts.

I agree you shouldn't need interrupts with a slow-moving motor. But, you do have to check both states of the sensor to be sure the motor is moving. Just set-up a timer (look at the Blink Without Delay Example) and reset the timer every time the state changes... If the time runs out the motor is stuck.

millis() rolls-over every 40-something days, so make sure to deal with that.

I thought to do it with an optical sensor and an plastic ring around the motor. So the motor rotates this plastic ring(plate). On the ring are some black points, and I count these points with an optical sensor with an Interrupt?

That could work, or metal tab triggering an optical interrupter switch... You could also use Hall effect sensor with a magnet on the shaft. I'd say it's mostly a question of what you can attach to the shaft mechanically, and then the electronics can follow.

After some minutes the motor overheats and gets destroyed.

A thermal sensor might be a good idea. You could use a thermal sensor along with the rotational sensor or instead of the rotational sensor.

If you want to be super-safe, you could use separate Arduino's with separate power supplies and separate relays for the rotational & thermal systems, so if one Arduino fails the other will still work. The Arduino is reliable (if everything is constructed "right"), but redundant protection is always more reliable.

Use a fuse or current sensor to detect overcurrent when stalled, which is what actually causes the damage. Note that brushed D.C. motors briefly draw the stall current when starting up, so you will need to use a slow-blow fuse or build in a timer as well.

Ok, that sounds all great. millis() can be used, the 40 days limit is no problem. Thermal sensor is a great idea. So maybe I will try next week to use all 3 parts (optical, thermal, fuse).
Thank you all.