In this paper, a cascade controller is designed for controlling the speed of a direct current motor, which includes a combination of a model predictive controller and a sliding mode controller. The main goal is to precisely control the speed and angle of the motor shaft by adjusting the input voltage, taking into account the voltage limitations. We design a model predictive sliding mode controller in such a way that in the inner loop, the model predictive controller controls the voltage to follow the reference current, and in the outer loop, the sliding mode controller generates the reference current to follow the desired speed. The sliding mode controller, with its resistance to external disturbances, reduces their effects and the uncertainties of modeling. By extracting the reference current based on the speed tracking error and the presence of uncertainty, the optimal terminal voltage of the motor is predicted in the inner loop, leading to the tracking of the desired rotational speed by the motor. This paper also proves the stability of the system in the presence of the motor terminal input voltage constraint, and the simulation results confirm the effectiveness of the proposed controller in dealing with uncertainty and external disturbances.