Tuesday, January 7, 2025

Дуу, servo, gerel bluetooth car code

 #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);

  }
 

No comments:

Post a Comment