This is my first project regarding all things controlled by arduinos, so I apologize in advance for obvious choices that don't seem obvious to me yet. I'm building a miniature garage for my nephew, who has a fascination bordering on obsession with garages and garagedoor motors.
My initial idea is to have a garagedoor opened and closed using a 3 position toggle switch. After having done some research into the types of motors I should use, i'm still confused on which would be ideal for my purposes.
A low rpm high torque dc motor spinning a worm gear seems like a strong choice. I want to have it function similar to a linear actuator minus the cost. Then there's stepper motors and servos which also seem like a good choice. though i'm uncertain of the torque requirements lifting the door itself.
If you are building a small garage - for example at 1:72 scale, or even 1:12 scale a servo might be the simplest way to open and close the door.
If you use a small DC motor you will also need a motor driver between it and the Arduino as the Arduino cannot provide the current needed by a motor - not even for a very small motor.
In my experience a garage door opener moves about 6 inches per second and uses a fractional horsepower DC motor like 1/8th HP or 1/4 HP. It uses limit switches for feedback so it only knows where it is at full-up and full-down although you can stop it wherever it happens to be. To move in both directions you will need an H-Bridge driver that can handle the current draw.
How do you want to convert the rotary motion to linear motion? Some use a long threaded rod and nut but it might be hard to get threaded rod in the length you want. Some use a bicycle-type chain and that may be the easiest solution.