/* Using analogWrite to control a motor speed. Uses pwm to create an effective varying voltage. */ /* 3 and 5 are PWM capable on most arduino boards */ int motorFwdPin = 3; int motorRevPin = 5; void setup() { pinMode(motorFwdPin, OUTPUT); pinMode(motorRevPin, OUTPUT); } void loop() { //speed up for (int i = 0; i < 255; i+=64) { analogWrite(motorFwdPin, i); delay(1000); } // last one since we never reach full speed analogWrite(motorFwdPin, 255); delay (5000); //slow down for (int i = 255; i > 0; i-=64) { analogWrite(motorFwdPin, i); delay(1000); } // set to 0 for stop analogWrite(motorFwdPin, 0); }