Paso 7: Código de ARDUINO
CÓDIGO DE ARDUINO
#include < Servo.h >
Servo servoMain;
int r_motor_n = 2; Control PWM Motor de derecho-
int r_motor_p = 4; Control PWM Motor derecho +
int l_motor_p = 5; Control PWM izquierda Motor +
int l_motor_n = 7; Control PWM izquierda Motor-
permiten int = 3;
int enable2 = 6;
int incomingByte = 0; para los datos entrantes en serie
void setup()
{
servoMain.attach(10);
pinMode (r_motor_n, salida); Pines de control conjunto que salidas
pinMode (r_motor_p, salida);
pinMode (l_motor_p, salida);
pinMode (l_motor_n, salida);
pinMode (permiten, salida);
pinMode (enable2, salida);
digitalWrite (r_motor_n, bajo); partió dos motores para el arranque
digitalWrite (r_motor_p, bajo);
digitalWrite (l_motor_p, bajo);
digitalWrite (l_motor_n, bajo);
digitalWrite (habilitar, LOW);
digitalWrite (enable2, bajo);
Serial.Begin(9600);
Serial.Print ("Whats up im átomo, preparaban!!!!!! \n");
Serial.Print ("w = adelante \n");
Serial.Print ("s = retroceso \n");
Serial.Print ("d = derecha \n");
Serial.Print ("a = izquierda \n");
Serial.Print ("f = parada \n");
Serial.Print ("stive robótica");
}
void loop()
{
Si (Serial.available() > 0) {}
leer el byte entrante:
incomingByte = Serial.read();
}
Switch(incomingByte)
{
caso 'f':
digitalWrite (r_motor_n, bajo); Establecer la dirección del motor, 1 bajo, 2 de alto
digitalWrite (r_motor_p, bajo);
digitalWrite (l_motor_p, bajo);
digitalWrite (l_motor_n, bajo);
digitalWrite (habilitar, LOW);
digitalWrite (enable2, bajo);
Serial.println("Stop\n");
incomingByte ='* ';
rotura;
caso sería ':
digitalWrite (r_motor_n, HIGH); Establecer la dirección del motor, 1 bajo, 2 de alto
digitalWrite (r_motor_p, bajo);
digitalWrite (l_motor_p, HIGH);
digitalWrite (l_motor_n, bajo);
digitalWrite (habilitar, HIGH);
digitalWrite (enable2, HIGH);
Serial.println("right\n");
incomingByte ='* ';
rotura;
caso 'a':
digitalWrite (r_motor_n, bajo); Establecer la dirección del motor, 1 bajo, 2 de alto
digitalWrite (r_motor_p, HIGH);
digitalWrite (l_motor_p, bajo);
digitalWrite (l_motor_n, HIGH);
digitalWrite (habilitar, HIGH);
digitalWrite (enable2, HIGH);
Serial.println("left\n");
incomingByte ='* ';
rotura;
caso 'w':
digitalWrite (r_motor_n, HIGH); Establecer la dirección del motor, 1 bajo, 2 de alto
digitalWrite (r_motor_p, bajo);
digitalWrite (l_motor_p, bajo);
digitalWrite (l_motor_n, HIGH);
digitalWrite (habilitar, HIGH);
digitalWrite (enable2, HIGH);
Serial.println("forward\n");
incomingByte ='* ';
rotura;
de caso ':
digitalWrite (r_motor_n, bajo); Establecer la dirección del motor, 1 bajo, 2 de alto
digitalWrite (r_motor_p, HIGH);
digitalWrite (l_motor_p, HIGH);
digitalWrite (l_motor_n, bajo);
digitalWrite (habilitar, HIGH);
digitalWrite (enable2, HIGH);
Serial.println("backwards\n");
incomingByte ='* ';
rotura;
caso '1':
servoMain.write(0);
rotura;
caso '2':
servoMain.write(45);
rotura;
Case '3':
servoMain.write(90);
rotura;
caso '4':
servoMain.write(135);
rotura;
caso '5':
servoMain.write(180);
rotura;
caso 'v':
Serial.Print ("átomo");
Serial.println();
Serial.Print ("stive robótica átomo");
incomingByte ='* ';
rotura;
Delay(5000);
}
}
NOTA
Si algún problema con el código su probado así que no hay problema.
Deja comentario
PARA reducir el cambio de la velocidad
digitalWrite(enable,HIGH);
digitalWrive(enable2,HIGH);
Para
analogWrite(value)
valor debe ser igual a 0-255 hará cualquier valor máximo 255 y 0 es mínimo.