Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- SoftwareSerial bt(2,3); // rx, tx
- int sp = 255;
- #define pwma 5
- #define pwmb 9
- #define ain2 4 // Right motor AO1 +
- #define ain1 6 // Right motor AO2 -
- #define bin1 7 // Left motor BO1 +
- #define bin2 8 // Left motor BO2 -
- void setup() {
- pinMode(pwma, OUTPUT);
- pinMode(pwmb, OUTPUT);
- pinMode(ain2, OUTPUT);
- pinMode(ain1, OUTPUT);
- pinMode(bin1, OUTPUT);
- pinMode(bin2, OUTPUT);
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- bt.begin(9600);
- Serial.begin(9600);
- }
- void loop () {
- if (bt.available() > LOW) {
- char cmd = bt.read();
- Serial.println(cmd);
- switch (cmd) {
- case 'F':
- forward();
- break;
- case 'B':
- backward();
- break;
- case 'L':
- left();
- break;
- case 'R':
- right();
- break;
- case 'G':
- forwardLeft();
- break;
- case 'I':
- forwardRight();
- break;
- case 'H':
- backwardLeft();
- break;
- case 'J':
- backwardRight();
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case 'q':
- speedByter(cmd);
- break;
- default:
- stopByter();
- break;
- }
- }
- }
- void speedByter(char s) {
- if (s != 'q') {
- int ss = (int)s;
- sp = 255 / 100 * ss;
- } else {
- sp = 255;
- }
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- }
- void stopByter() {
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- digitalWrite(ain2, LOW);
- digitalWrite(ain1, LOW);
- digitalWrite(bin1, LOW);
- digitalWrite(bin2, LOW);
- }
- void forward() {
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- digitalWrite(ain2, HIGH);
- digitalWrite(ain1, LOW);
- digitalWrite(bin1, LOW);
- digitalWrite(bin2, HIGH);
- }
- void backward() {
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- digitalWrite(ain2, LOW);
- digitalWrite(ain1, HIGH);
- digitalWrite(bin1, HIGH);
- digitalWrite(bin2, LOW);
- }
- void left() {
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- digitalWrite(ain2, LOW);
- digitalWrite(ain1, HIGH);
- digitalWrite(bin1, LOW);
- digitalWrite(bin2, HIGH);
- }
- void right() {
- analogWrite(pwma, sp);
- analogWrite(pwmb, sp);
- digitalWrite(ain2, HIGH);
- digitalWrite(ain1, LOW);
- digitalWrite(bin1, HIGH);
- digitalWrite(bin2, LOW);
- }
- void forwardLeft() {
- analogWrite(pwma, sp / 3);
- digitalWrite(ain2, HIGH);
- digitalWrite(ain1, LOW);
- digitalWrite(bin1, LOW);
- digitalWrite(bin2, HIGH);
- }
- void forwardRight() {
- analogWrite(pwmb, sp / 3);
- digitalWrite(ain2, HIGH);
- digitalWrite(ain1, LOW);
- digitalWrite(bin1, LOW);
- digitalWrite(bin2, HIGH);
- }
- void backwardLeft() {
- analogWrite(pwmb, sp / 3);
- digitalWrite(ain2, LOW);
- digitalWrite(ain1, HIGH);
- digitalWrite(bin1, HIGH);
- digitalWrite(bin2, LOW);
- }
- void backwardRight() {
- analogWrite(pwma, sp / 3);
- digitalWrite(ain2, LOW);
- digitalWrite(ain1, HIGH);
- digitalWrite(bin1, HIGH);
- digitalWrite(bin2, LOW);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement