//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);
}