//Inicio: métodos do objeto Motor
class DCMotor
{
int spd = 255, pin1, pin2;
public:
void Pinagem(int valor1, int valor2)
{
// Pinout é o método para a declaração dos pinos que vão controlar o objeto motor
pin1 = valor1;
pin2 = valor2;
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
}
void Velocidade(int valor1)
{
// Velocidade é o método que irá ser responsável por regular a velocidade (tensão para os motores)
spd = valor1;
}
void Frente()
{
// Frente é o método para fazer o motor girar para frente
analogWrite(pin1, spd);
digitalWrite(pin2, LOW);
}
void Tras()
{
// Tras é o método para fazer o motor girar para trás
digitalWrite(pin1, LOW);
analogWrite(pin2, spd);
}
void Parada()
{
// Parada é o metodo para fazer o motor ficar parado.
digitalWrite(pin1, LOW);
digitalWrite(pin2, LOW);
}
};
//Fim: métodos do objeto Motor
DCMotor Motor1;
DCMotor Motor2;
// Criação de dois objetos motores, já que usaremos dois motores, e eles já
// estão prontos para receber os comandos já configurados acima.
void setup()
{
Motor1.Pinagem(5, 6); // Seleção dos pinos que cada motor usará, como descrito na classe.
Motor2.Pinagem(10, 11);
}
void loop()
{
Motor1.Velocidade(200); // A velocidade do motor pode variar de 0 a 255, onde 255 é a velocidade máxima.
Motor2.Velocidade(200);
/*
Motor.Frente(): Motor gira para frente
Motor.Tras(): Motor gira para tras
Motor.Parada(): Motor para de girar
*/
//Ação 1:
Motor1.Frente();
Motor2.Frente();
delay(1000);
//Ação 2:
Motor1.Frente();
Motor2.Tras();
delay(1000);
//Ação 3:
Motor1.Tras();
Motor2.Frente();
delay(1000);
//Ação 4:
Motor1.Tras();
Motor2.Tras();
delay(1000);
//Ação 5:
Motor1.Parada();
Motor2.Parada();
delay(500);
}