//This is the version with speed control, //use pins 4,5,9,10 (pwm) (on teensy 2.0) //motor drive pins int m1FW=4; int m1RV=5; int m2FW=9; int m2RV=10; //kill all function halt void halt(); //directional function prototypes void fw(); void rv(); void left(); void right(); //run time==dtime int dtime=1000; //used for turning //sped control unsigned int sped= 96; void setup() { Serial.begin(9600); pinMode(m1FW, OUTPUT); pinMode(m1RV, OUTPUT); pinMode(m2FW, OUTPUT); pinMode(m2RV, OUTPUT); } // lets make a fire! void loop() { char inByte = ' '; if(Serial.available()){ // only send data back if data has been sent char inByte = Serial.read(); // read the incoming data Serial.println(inByte); switch (inByte) { //wasd ws=y ad=x case 'w': halt(); fw(); break; case 'a': halt(); left(); break; case 's': halt(); rv(); break; case 'd': halt(); right(); break; case 'b': halt(); break; default: halt(); break; } } } void left(){ halt(); analogWrite(m1FW, sped); analogWrite(m2RV, sped); delay(dtime); // wait for a second halt(); } void right(){ halt(); analogWrite(m1RV,sped); analogWrite(m2FW,sped); delay(dtime); // wait for a second halt(); } void rv(){ analogWrite(m1RV,sped); analogWrite(m2RV,sped); } void fw(){ analogWrite(m1FW,sped); analogWrite(m2FW,sped); } void halt(){ //stop all that sht analogWrite(m1FW, 0); analogWrite(m1RV, 0); analogWrite(m2FW, 0); analogWrite(m2RV, 0); }