Skip to content

Instantly share code, notes, and snippets.

@nomkhonwaan
Last active January 19, 2020 14:55
Show Gist options
  • Save nomkhonwaan/249e2f4d0cdc53b08ce8b74e80ac21b2 to your computer and use it in GitHub Desktop.
Save nomkhonwaan/249e2f4d0cdc53b08ce8b74e80ac21b2 to your computer and use it in GitHub Desktop.
ทำรถบังคับผ่าน-bluetooth-ด้วย-arduino-uno-r3-5e167a97981019ba2e7cb395
// 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