2021年2月14日日曜日

ArduionChallenge AriiTankIRNano












//AriiTankIRNano
//by Kim Grossa

#include <CytronMotorDriver.h>
#include <IRremote.h>
#include <Servo.h>

//Maker Drive
CytronMD motor1(PWM_PWM, 3, 9);   // PWM 1A = Pin 3, PWM 1B = Pin 9.
CytronMD motor2(PWM_PWM, 10, 11); // PWM 2A = Pin 10, PWM 2B = Pin 11.

//IR
int IRpin=7;
IRrecv irrecv(IRpin);
decode_results results;

//servo
int ServoSpeed=1500;
Servo myServo;

void setup()
{
  //DC motor
  motor1.setSpeed(0);  
  motor2.setSpeed(0);

  //IR
  irrecv.enableIRIn();
  Serial.begin(9600);

  //servo 360degree
  myServo.attach(8,1000,2000);

}

void loop() 
{
    if(irrecv.decode(&results))
  {
    irrecv.resume();
    
    if(results.value==0xFF18E7)
    { 
      goForward();
    }
    
    if(results.value==0xFF38C7)
    {
      center();
    }

    if(results.value==0xFF9867)
    {
      center2();
    }

    if(results.value==0xFF4AB5)
    {
      goBack();
    }
    
    if(results.value==0xFF10EF)
    {
      turnLeft();
    }

    if(results.value==0xFF6897)
    {
      turnLeft2();
    }
    
    if(results.value==0xFF5AA5)
    {
      turnRight();
    }

    if(results.value==0xFFB04F)
    {
      turnRight2();
    }
  }   
}

    void center()
  {
    motor1.setSpeed(0);
    motor2.setSpeed(0);  
  }

   void center2()
  {
    //Serial.println("I am center2"); 
    myServo.write(90);     
  }
    
  void turnLeft()
  {    
    motor1.setSpeed(255);  
    motor2.setSpeed(0);
  }

    void turnLeft2()
  {
    //Serial.println("I am turnLeft2");
    myServo.write(180);
  }

  void turnRight()
  {
    motor1.setSpeed(0);  
    motor2.setSpeed(255);
  }

   void turnRight2()
  {
    //Serial.println("I am turnRight2");
    myServo.write(0); 
  }

   void goForward()
  {
    motor1.setSpeed(255);  
    motor2.setSpeed(255);
  }

  void goBack()
  {
    motor1.setSpeed(-255);  
    motor2.setSpeed(-255); 
  }


 

0 件のコメント:

コメントを投稿