Robot: Servo + MotorDC ERROR
Hola, soy nuevo en el foro, he creado esta nueva cuenta solo para hallar la respuesta a mi duda.
Participo en un proyecto de robotica en donde fabrico un Rover, cuenta con 2 servomotores y 2 motores DC. Los dos servos manejan un pequeño brazo para agarrar cosas y los motores DC mueven las ruedas. Todo manejado a control remoto con un HC-06 vía bluetooth.
Mi problema es el siguiente:
Cuando quiero que el robot mueva la pinza todo bien, los servicios por si funcionan.
Cuando quiero que el robot se mueva las ruedas todo bien, los motores DC funcionan.
Pero, cuando quiero mover un servidor y un motor, a la vez, el trabajo deja de funcionar y tengo que reiniciarlo.
Agregue que los motores DC los muebles con una L293D que en conjunto con los servicios son alimentados con una fuente externa de 5v.
No sé cual es el problema si alguien me sabe seriamente ayuda, gracias.
Adjunto codigo:
#include <Servo.h>
Servo pinza;
Servo Brazo;
int R1AD=5;
int R1AT=3;
int R2AD=2;
int R2AT=4;
int estado=0;
void setup(){
Serial.begin(9600);
pinza.attach(7);
Brazo.attach(31);
pinMode(R1AD,OUTPUT);
pinMode(R1AT,OUTPUT);
pinMode(R2AD,OUTPUT);
pinMode(R2AT,OUTPUT);
}
void loop(){
if(Serial.available()>0){
estado = Serial.read();
Serial.println(estado);
}
// Rueda izquierda
if (estado =='a'){
digitalWrite(R1AD,HIGH); }
if(estado=='1'){
digitalWrite(R1AD,LOW);}
if(estado=='b'){
digitalWrite(R1AT,HIGH); }
if(estado==107){
digitalWrite(R1AT,LOW); }
// Rueda derecha
if (estado =='g'){
digitalWrite(R2AD,HIGH); }
if(estado==107){
digitalWrite(R2AD,LOW);}
if(estado=='h'){
digitalWrite(R2AT,HIGH); }
if(estado==107){
digitalWrite(R2AT,LOW); }
//Pinza
if(estado=='e'){
pinza.write(100);} // Cierra
if(estado=='f'){
pinza.write(63); } //Abre
//Brazo
if(estado=='c'){
Brazo.write(105);} // Sube
if(estado=='d'){
Brazo.write(25); } //Baja
}
codigo.txt (1.05 KB)