problema alimentatore motore dc

Buongiorno, vi scrivo perchè ho bisogno di aiuto!
Ho costruito un circuito per comandare 4 motori dc (variando la velocità in base alla lettura di un potenziometro).
ovviamente ho messo un transistor 2n2222 con resistenza da 330 ohm (il valore più vicino a quello corretto, ma non avevo altre r) su 4 pin che comando in PWM. Tutto funziona,in base alla variabile di output i motori cambiano velocità.
il problema è che con tutti e 4 i motori attaccati la velocità di rotazione diminuisce paurosamente.
alcuni dati:
alimentazione dei motori (per il momento, poi sarà a batteria)uso un carica batterie 5 v 2.1 A
i motori possono andare sia a 5 che a 3 v con una I di 0.4 A.

A volte i valori di targa di un alimentatore non sono veritieri.
Mi sa che è inferiore ai 2,1 A.

Sto utilizzando trasformatore Iphone. comunque per essere più chiaro spiego brevemente cosa devo fare:
da una parte ho fatto un circuito che legge i valori di due joystick e le trasmette tramite modulo NRF all'altro circuito.
il secondo varia la potenza dei motori in base ai dati ricevuti. poi tramite un accellerometro gy 521 capisce in che posizione è messo e modifica la potenza dei singoli motori per mantenersi fermo. Ovviamente i 4 motori hanno un elica e dovrebbe alzarsi.
le batterie a lipo sono tutte 3.7 v come posso alimentare il tutto??

il programma è concluso e sicuramente avrà bisogno di modifiche per la fase di compensazione ma ora devo dare potenza ai motori!