Created
November 12, 2018 08:41
-
-
Save tommyip/681ee83a5d41758c44386f8f07d56188 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
ELEC1100 Lab06 | |
To program the car turning left at split | |
*/ | |
#define pinSTOP A6 | |
#define pinLQ3 3 //pin D3 | |
#define pinLQ2 4 //pin D4 | |
#define pinLQ1 5 //pin D5 | |
#define pinLQ0 6 //pin D6 | |
#define pinRQ3 7 //pin D7 | |
#define pinRQ2 8 //pin D8 | |
#define pinRQ1 9 //pin D9 | |
#define pinRQ0 10 //pin D10 | |
#define pinLdir 11 //pin D11 | |
#define pinRdir 12 //pin D12 | |
int speed_ = 0; | |
boolean running_ = true; | |
// the setup function runs once when you press reset or power the board | |
void setup() { | |
pinMode(pinSTOP, INPUT); | |
pinMode(pinLQ3, OUTPUT); | |
pinMode(pinLQ2, OUTPUT); | |
pinMode(pinLQ1, OUTPUT); | |
pinMode(pinLQ0, OUTPUT); | |
pinMode(pinRQ3, OUTPUT); | |
pinMode(pinRQ2, OUTPUT); | |
pinMode(pinRQ1, OUTPUT); | |
pinMode(pinRQ0, OUTPUT); | |
pinMode(pinLdir, OUTPUT); | |
pinMode(pinRdir, OUTPUT); | |
// initialize output pins. | |
digitalWrite(pinLQ3, HIGH); | |
digitalWrite(pinLQ2, HIGH); | |
digitalWrite(pinLQ1, HIGH); | |
digitalWrite(pinLQ0, HIGH); | |
digitalWrite(pinRQ3, HIGH); | |
digitalWrite(pinRQ2, HIGH); | |
digitalWrite(pinRQ1, HIGH); | |
digitalWrite(pinRQ0, HIGH); | |
digitalWrite(pinLdir, HIGH); // HIGH: move forward | |
digitalWrite(pinRdir, HIGH); // LOW: move backward | |
} | |
boolean intToBit(int n, int bit_) { | |
return (n >> bit_) & 1; | |
} | |
// the loop function runs over and over again forever | |
void loop() { | |
if (digitalRead(pinSTOP) == LOW) { | |
running_ = false; | |
} | |
if (!running_) return; | |
/* | |
if (speed_ > 15) speed_ = 0; | |
digitalWrite(pinLQ3, intToBit(speed_, 3)); | |
digitalWrite(pinLQ2, intToBit(speed_, 2)); | |
digitalWrite(pinLQ1, intToBit(speed_, 1)); | |
digitalWrite(pinLQ0, intToBit(speed_, 0)); | |
digitalWrite(pinRQ3, intToBit(speed_, 3)); | |
digitalWrite(pinRQ2, intToBit(speed_, 2)); | |
digitalWrite(pinRQ1, intToBit(speed_, 1)); | |
digitalWrite(pinRQ0, intToBit(speed_, 0)); | |
speed_ += 1; | |
delay(1000); | |
*/ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment