// connect motor controller pins to Arduino digital pins // motor two int enB = 5; int in3 = 7; int in4 = 6; void setup() { // set all the motor control pins to outputs pinMode(enB, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); } void demoOne() { // this function will run the motor in both directions at a fixed speed // turn on motor B digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // set speed to 200 out of possible range 0~255 analogWrite(enB, 200); delay(2000); // now change motor directions digitalWrite(in3, LOW); digitalWrite(in4, HIGH); delay(2000); // now turn off motors digitalWrite(in3, LOW); digitalWrite(in4, LOW); } void demoTwo() { // this function will run the motor across the range of possible speeds, // note that maximum speed is determined by the motor itself and the // operating voltage the PWM values sent by analogWrite() are fractions // of the maximum speed possible by your hardware // turn on motors digitalWrite(in3, LOW); digitalWrite(in4, HIGH); // accelerate from zero to maximum speed for (int i = 0; i < 256; i++) { analogWrite(enB, i); delay(20); } // decelerate from maximum speed to zero for (int i = 255; i > 0; --i) { analogWrite(enB, i); delay(20); } // now turn off motors digitalWrite(in3, LOW); digitalWrite(in4, LOW); } void loop() { demoOne(); delay(1000); demoTwo(); delay(1000); }