  In this paper we present a constructive method to control the bilinear Schr\"odinger equation via two controls. The method is based on adiabatic techniques and works if the spectrum of the Hamiltonian admits eigenvalue intersections, and if the latter are conical (as it happens generically). We provide sharp estimates of the relation between the error and the controllability time. 
Adiabatic control of the Schr\"odinger equation via conical   intersections of the eigenvalues