Sumobotsclass: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 29: | Line 29: | ||
void loop() { // put your main code here, to run repeatedly: | |||
qtr.read(sensors); | |||
analogWrite(motor2speed,255); //go all out | |||
analogWrite(motor1speed,255); | |||
digitalWrite(motor1dir, HIGH); //go forward | |||
digitalWrite(motor2dir, HIGH); | |||
delay(3000); | |||
digitalWrite(motor1dir, LOW); //go backwards | |||
digitalWrite(motor2dir, LOW); | |||
delay(3000); | |||
digitalWrite(motor1dir, HIGH); //go right | |||
digitalWrite(motor2dir, LOW); | |||
delay(3000); | |||
digitalWrite(motor1dir, LOW); //go right | |||
digitalWrite(motor2dir, HIGH); | |||
delay(3000); | |||
analogWrite(motor1speed,0); //stop | |||
analogWrite(motor2speed,0); | |||
} | delay(3000); | ||
//Don't forget to enable the serial port in setup | |||
Serial.print(analogRead(irSensorPin)); | |||
Serial.print(" r= "); | |||
<nowiki>Serial.print(sensors[0]);//right</nowiki> | |||
Serial.print(" l= "); | |||
<nowiki>Serial.println(sensors[1]);//left </nowiki> | |||
} | |||
void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED | void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED | ||
| Line 59: | Line 68: | ||
} | } | ||
}// end blink | }// end blink | ||
---- | ---- | ||
Revision as of 10:20, 23 October 2011
Motor control code
#include <PololuQTRSensors.h> //we're using the pololuQTR sensor library so we must attach it.
#define motor1dir 8 //direction motor 2
#define motor1speed 9 //pwm control motor 1
#define motor2dir 11 //direction motor 2
#define motor2speed 10 //pwm control motor 2
#define ledpin 13 //led pin
PololuQTRSensorsRC qtr((unsigned char[]) {19,18}, 2, 2000, 255); //declares two line sensors on pins 18 and 19 this corresponds to analog pins 4 and 5
unsigned int sensors[2];
void setup() { // put your setup code here, to run once:
//motor control outputs
pinMode(motor1dir, OUTPUT);
pinMode(motor1speed, OUTPUT);
pinMode(motor2dir, OUTPUT);
pinMode(motor2speed, OUTPUT);
// AV outputs
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(irSensorPin, INPUT);
delay (3000); //wait for everything and for the match to start
// blink the LED 3 times. This should happen only once.
// if you see the LED blink three times, it means that
// the module reset itself,. probably because the motor
// caused a brownout or a short.
blink(ledPin, 3, 100);
} //end setup
void loop() { // put your main code here, to run repeatedly:
qtr.read(sensors);
analogWrite(motor2speed,255); //go all out analogWrite(motor1speed,255); digitalWrite(motor1dir, HIGH); //go forward digitalWrite(motor2dir, HIGH); delay(3000); digitalWrite(motor1dir, LOW); //go backwards digitalWrite(motor2dir, LOW); delay(3000); digitalWrite(motor1dir, HIGH); //go right digitalWrite(motor2dir, LOW); delay(3000); digitalWrite(motor1dir, LOW); //go right digitalWrite(motor2dir, HIGH); delay(3000); analogWrite(motor1speed,0); //stop analogWrite(motor2speed,0); delay(3000);
//Don't forget to enable the serial port in setup
Serial.print(analogRead(irSensorPin));
Serial.print(" r= ");
Serial.print(sensors[0]);//right
Serial.print(" l= ");
Serial.println(sensors[1]);//left
}
void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED
int i = 0;
for ( i = 0; i < howManyTimes; i++) {
digitalWrite(whatPin, HIGH);
delay(milliSecs/2);
digitalWrite(whatPin, LOW);
delay(milliSecs/2);
}
}// end blink
Need a Mechapad or some Protoboard and Patience
