Der Motor soll mit maximal 4V betrieben werden, also duty cycle nicht bis 255.
Der Zusammenhang zwischen Spannung und Drehzahl ist nicht linear. Deshalb ggf. Pausen zwischen verschiedenen Erhöhungen einlegen.
Allerdings beschleunigt und bremst der Motor nicht langsam.
Das verstehe ich nicht.
Wie gesagt nur 6 Ausgänge am Arduino UNO sind PWM Ausgänge die mit analorWrite() gesteuert werden können. Allee anderen sind, auch wenn Du analogWrite() verwendest nur an oder aus.
Achtung Die For schleifen sind Blockierend. Du kannst immer nur einen Motor beschleunigen oder bremsen.
Wenn es mehrere gleichzeitig sein sollen dann mußt Du ohne FOR und mit millis() machen.