Last active
January 19, 2020 14:55
-
-
Save nomkhonwaan/249e2f4d0cdc53b08ce8b74e80ac21b2 to your computer and use it in GitHub Desktop.
ทำรถบังคับผ่าน-bluetooth-ด้วย-arduino-uno-r3-5e167a97981019ba2e7cb395
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
// The L293D output parameters for controlling DC motor. | |
// Each DC motor will be controled by 3 parameters which are | |
// PxA, PyA for sending high or low value and PxyEN for sending enable or disable value. | |
#define P1A 4 | |
#define P2A 5 | |
#define P12EN 8 | |
#define P3A 6 | |
#define P4A 7 | |
#define P34EN 9 | |
class Wheel { | |
public: | |
Wheel(int p1a, int p2a, int ena): p1a(p1a), p2a(p2a), ena(ena) {} | |
void setup() { | |
pinMode(p1a, OUTPUT); | |
pinMode(p2a, OUTPUT); | |
pinMode(ena, OUTPUT); | |
} | |
// For making wheel rotating clockwise direction | |
void rotateCW() { | |
digitalWrite(p1a, HIGH); | |
digitalWrite(p2a, LOW); | |
digitalWrite(ena, HIGH); | |
} | |
// For making wheel rotating counter-clockwise direction | |
void rotateCCW() { | |
digitalWrite(p1a, LOW); | |
digitalWrite(p2a, HIGH); | |
digitalWrite(ena, HIGH); | |
} | |
// For making wheel stop | |
void stop() { | |
digitalWrite(ena, LOW); | |
} | |
private: | |
int p1a; | |
int p2a; | |
int ena; | |
} left(P1A, P2A, P12EN), right(P3A, P4A, P34EN); | |
class Car { | |
public: | |
Car(Wheel left, Wheel right): left(left), right(right) {} | |
void goStraight() { | |
left.rotateCW(); | |
right.rotateCW(); | |
} | |
void turnLeft() { | |
} | |
void turnRight() { | |
} | |
void reverse() { | |
left.rotateCCW(); | |
right.rotateCCW(); | |
} | |
void stop() { | |
left.stop(); | |
right.stop(); | |
} | |
private: | |
Wheel left; | |
Wheel right; | |
} car(left, right); | |
void setup() { | |
left.setup(); | |
right.setup(); | |
} | |
void loop() { | |
car.goStraight(); | |
delay(1000); | |
car.reverse(); | |
delay(1000); | |
car.stop(); | |
} | |
// #include <SoftwareSerial.h> | |
// #define TX 2 | |
// #define RX 3 | |
// #define TOP 4 | |
// #define BOTTOM 5 | |
// #define LEFT 6 | |
// #define RIGHT 7 | |
// #define CMD_TOP 49 | |
// #define CMD_BOTTOM 48 | |
// #define CMD_LEFT 50 | |
// #define CMD_RIGHT 51 | |
// SoftwareSerial mySerial(TX, RX); | |
// void setup() { | |
// pinMode(TOP, OUTPUT); | |
// pinMode(BOTTOM, OUTPUT); | |
// pinMode(LEFT, OUTPUT); | |
// pinMode(RIGHT, OUTPUT); | |
// Serial.begin(9600); | |
// while (!Serial); | |
// mySerial.begin(9600); | |
// } | |
// int in; | |
// void loop() { | |
// if (Serial.available()) { | |
// mySerial.write(Serial.read()); | |
// } | |
// if (mySerial.available()) { | |
// in = mySerial.read(); | |
// switch (in) { | |
// case CMD_TOP: | |
// digitalWrite(TOP, HIGH); | |
// digitalWrite(BOTTOM, LOW); | |
// break; | |
// case CMD_BOTTOM: | |
// digitalWrite(BOTTOM, HIGH); | |
// digitalWrite(TOP, LOW); | |
// break; | |
// case CMD_LEFT: | |
// digitalWrite(LEFT, HIGH); | |
// digitalWrite(RIGHT, LOW); | |
// break; | |
// case CMD_RIGHT: | |
// digitalWrite(RIGHT, HIGH); | |
// digitalWrite(LEFT, LOW); | |
// break; | |
// default: | |
// digitalWrite(TOP, LOW); | |
// digitalWrite(BOTTOM, LOW); | |
// digitalWrite(LEFT, LOW); | |
// digitalWrite(RIGHT, LOW);q5ff | |
// } | |
// } | |
// delay(50); | |
// } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment