Stepper motors are classified based on their windings and stepping sequence. There are two main types: permanent magnet stepper motors which use permanent magnets and electromagnetic fields, and variable reluctance stepper motors which have no permanent magnets. Stepper motors operate by energizing windings in a sequence to rotate the motor a number of steps. To interface and control a stepper motor, a microcontroller can be used to supply voltage signals to the motor windings in a programmed sequence to rotate the motor.