Difference between revisions of "Sumobotsclass"
Jump to navigation
Jump to search
Line 12: | Line 12: | ||
void setup() { // put your setup code here, to run once: | void setup() { // put your setup code here, to run once: | ||
//motor control outputs | //motor control outputs | ||
− | + | pinMode(motor1dir, OUTPUT); | |
− | + | pinMode(motor1speed, OUTPUT); | |
− | + | pinMode(motor2dir, OUTPUT); | |
− | + | pinMode(motor2speed, OUTPUT); | |
// AV outputs | // 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); | ||
+ | } | ||
− | + | void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED | |
− | + | int i = 0; | |
− | + | <nowiki>for ( i = 0; i < howManyTimes; i++) {</nowiki> | |
− | + | digitalWrite(whatPin, HIGH); | |
− | + | delay(milliSecs/2); | |
− | + | digitalWrite(whatPin, LOW); | |
− | + | delay(milliSecs/2); | |
− | + | } | |
− | + | }// end blink | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | void blink(int whatPin, int howManyTimes, int milliSecs) { | ||
− | |||
− | int i = 0; | ||
− | |||
− | <nowiki>for ( i = 0; i < howManyTimes; i++) {</nowiki> | ||
− | |||
− | digitalWrite(whatPin, HIGH); | ||
− | |||
− | delay(milliSecs/2); | ||
− | |||
− | digitalWrite(whatPin, LOW); | ||
− | |||
− | delay(milliSecs/2); | ||
− | |||
− | } | ||
− | |||
− | }// end blink | ||
---- | ---- |
Revision as of 11:14, 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); }
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