yantravid
Published © Apache-2.0

Smartwatch Controller for Arduino Car

Control Arduino HC-05 Car with Wear Os Smartwatch

IntermediateFull instructions provided2,961
Smartwatch Controller for Arduino Car

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Dual H-Bridge motor drivers L293D
Texas Instruments Dual H-Bridge motor drivers L293D
×1
Resistor 221 ohm
Resistor 221 ohm
×1
Custom PCB
Custom PCB
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Custom PCB for Arduino Car

Schematics

Code

Arduino Car Code

C/C++
int MSP1 = 3;
int front = 9;
int back = 10;
int left = 11;
int right = 12;
int MSP2 = 5;


String data, dataT;

void setup() {
  Serial.begin(9600);
  Serial.setTimeout(3);
  
  pinMode(front,OUTPUT);
  pinMode(back,OUTPUT);
  pinMode(left,OUTPUT);
  pinMode(right,OUTPUT);
  pinMode(MSP1,OUTPUT);
  pinMode(MSP2,OUTPUT);
}

void loop() {

  if ( Serial.available()) {
    data = Serial.readStringUntil('\r\n');

    // Convert from String Object to String.
    char buf[30];
    data.toCharArray(buf, sizeof(buf));
    char *p = buf;
    char *dataC;
    while ((dataC = strtok_r(p, ":", &p)) != NULL) // delimiter is the semicolon
    { dataT = String(dataC);
      Serial.println(dataT);
    }

  //front
    if(dataT=="y0"){
      digitalWrite(front,LOW);
      digitalWrite(back,LOW);
    }
    else if(dataT=="y1"){
      analogWrite(MSP1,75); frontM(); 
    }
    else if(dataT=="y2"){
      analogWrite(MSP1,135); frontM();
    }
    else if(dataT=="y3"){
      analogWrite(MSP1,195); frontM();
    }
    else if(dataT=="y4"){
      analogWrite(MSP1,255); frontM();
    }
    if(dataT=="y-1"){
      analogWrite(MSP1,75); backM();
    }
    else if(dataT=="y-2"){
      analogWrite(MSP1,135); backM();
    }
    else if(dataT=="y-3"){
      analogWrite(MSP1,195); backM();
    }
    else if(dataT=="y-4"){
      analogWrite(MSP1,255); backM();
    }
    if(dataT=="x0"){
      Serial.println("off");
      digitalWrite(left,LOW);digitalWrite(right,LOW);
    }
    else if(dataT=="x2"){
      leftM();
    }
    else if(dataT=="x-2"){
      rightM();
    }

  }//if ends
}//loop

void frontM(){
  digitalWrite(front,HIGH);
  digitalWrite(back,LOW);
}
void backM(){
  digitalWrite(back,HIGH);
  digitalWrite(front,LOW);
}
void leftM(){
  analogWrite(MSP2,255);
  digitalWrite(left,HIGH);
  digitalWrite(right,LOW);
}
void rightM(){
  analogWrite(MSP2,255);
  digitalWrite(right,HIGH);
  digitalWrite(left,LOW);  
}

Credits

yantravid
0 projects • 1 follower
Contact

Comments

Please log in or sign up to comment.