Boa tarde! estou com dificuldade de arrumar a minha programação.
gostaria de controlar a velocidade do meu carrinho e energizar as rodas ou seja quando eu não o comando para ele as rodas devem travar e quando eu der o comando deve destravar. Estou fazendo um robô sumô, estou usando arduino uno, motor shield L293D o bluethooth HC-05. Utilizando o aplicativo Bluethooth RC car para permitir a movimentação do robô.
#include <AFMotor.h>
AF_DCMotor motor1(2, MOTOR12_1KHZ);
AF_DCMotor motor2(4, MOTOR34_1KHZ);
int val;
int Speeed = 255;
}
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
digitalWrite(motor1, LOW);
digitalWrite(motor2, LOW);
return 0;
}
void setup()
{
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0){
val = Serial.read();
Stop();
if (val == 'F'){
forward();
}
if (val == 'B'){
back();
}
if (val == 'L'){
left();
}
if (val == 'R'){
right();
}
if (val == 'I'){
topright();
}
if (val == 'G'){
topleft();
}
if (val == 'J'){
bottomright();
}
if (val == 'H'){
bottomleft();
}
if (val == 'S'){
Stop();
}
}
}
void forward()
{
motor1.setSpeed(Speeed);
motor1.run(FORWARD);
motor2.setSpeed(Speeed);
motor2.run(FORWARD);
}
void back()
{
motor1.setSpeed(Speeed);
motor1.run(BACKWARD);
motor2.setSpeed(Speeed);
motor2.run(BACKWARD);
}
void left()
{
motor1.setSpeed(Speeed);
motor1.run(FORWARD);
motor2.setSpeed(Speeed);
motor2.run(BACKWARD);
}
void right()
{
motor1.setSpeed(Speeed);
motor1.run(BACKWARD);
motor2.setSpeed(Speeed);
motor2.run(FORWARD);
}
void topleft(){
motor1.setSpeed(Speeed);
motor1.run(FORWARD);
motor2.setSpeed(Speeed);
motor2.run(FORWARD);
}
void topright()
{
motor1.setSpeed(Speeed/3.1);
motor1.run(FORWARD);
motor2.setSpeed(Speeed/3.1);
motor2.run(FORWARD);
}
void bottomleft()
{
motor1.setSpeed(Speeed);
motor1.run(BACKWARD);
motor2.setSpeed(Speeed);
motor2.run(BACKWARD);
}
void bottomright()
{
motor1.setSpeed(Speeed/3.1);
motor1.run(BACKWARD);
motor2.setSpeed(Speeed/3.1);
motor2.run(BACKWARD);
}
void Stop()
{
motor1.setSpeed(0);
motor1.run(RELEASE);
motor2.setSpeed(0);
motor2.run(RELEASE);
}