/* ECEN2830 motor speed control example (left wheel only) */ // define pins const int pinON = 6; // connect pin 6 to ON/OFF switch, active HIGH const int pinCW_Left = 7; // connect pin 7 to clock-wise PMOS gate const int pinCC_Left = 8; // connect pin 8 to counter-clock-wise PMOS gate const int pinSpeed_Left = 9; // connect pin 9 to speed reference // setup pins and initial values void setup() { pinMode(pinON,INPUT); pinMode(pinCW_Left,OUTPUT); pinMode(pinCC_Left,OUTPUT); pinMode(pinSpeed_Left,OUTPUT); pinMode(13,OUTPUT); // on-board LED digitalWrite(pinCW_Left,LOW); // stop clockwise digitalWrite(pinCC_Left,LOW); // stop counter-clockwise analogWrite(pinSpeed_Left,100); // set speed reference, duty-cycle = 100/255 } void loop() { digitalWrite(13,LOW); // turn LED off do {} while (digitalRead(pinON) == LOW); // wait for ON switch digitalWrite(13,HIGH); // turn LED on delay(1000); // wait 1 second digitalWrite(pinCW_Left,HIGH); // go clockwise delay(3000); // for 3 seconds digitalWrite(pinCW_Left,LOW); // stop }