#include <AFMotor.h>
#include <Servo.h>
//initial motors pin
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
Servo servoBase;
char command;
void setup()
{
pinMode(2, OUTPUT);//Gerel
pinMode(7, OUTPUT);//Buzzer duu gargah
servoBase.attach(3);//Servo
servoBase.write(0);
Serial.begin(9600); //Set the baud rate to your Bluetooth module.
}
void loop(){
if(Serial.available() > 0){
command = Serial.read();
Stop(); //initialize with motors stoped
//Change pin mode only if new command is different from previous.
//Serial.println(command);
switch(command){
case 'F':
forward();
break;
case 'B':
back();
break;
case 'L':
left();
break;
case 'R':
right();
break;
case 'w':
Ugerel_untar();
break;
case 'W':
Ugerel();
break;
case 'X':
Servo();
break;
case 'x':
Servo1();
break;
case 'V':
Duu();
break;
case 'v':
Duu1();
break;
}
}
}
void forward()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor clockwise
}
void back()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(BACKWARD); //rotate the motor anti-clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(BACKWARD); //rotate the motor anti-clockwise
}
void left()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(BACKWARD); //rotate the motor anti-clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(FORWARD); //rotate the motor anti-clockwise
}
void right()
{
motor1.setSpeed(255); //Define maximum velocity
motor1.run(FORWARD); //rotate the motor clockwise
motor2.setSpeed(255); //Define maximum velocity
motor2.run(BACKWARD); //rotate the motor clockwise
}
void Stop()
{
motor1.setSpeed(0); //Define minimum velocity
motor1.run(RELEASE); //stop the motor when release the button
motor2.setSpeed(0); //Define minimum velocity
motor2.run(RELEASE); //rotate the motor clockwise
}
void Ugerel()
{
digitalWrite(2, HIGH);
}
void Ugerel_untar()
{
digitalWrite(2, LOW);
}
void Servo()
{
for(int i=0; i<=180; i=i+180)
{
servoBase.write(i);
delay(1000);
}
}
void Servo1()
{
servoBase.write(0);
}
void Duu()
{
tone(7, 450, 1000);
delay(2000);
tone(7, 0, 500);
delay(500);
}
void Duu1()
{
digitalWrite(7, LOW);
}