Está en la página 1de 8

#include<Servo.

h>

#include <SoftwareSerial.h>

SoftwareSerial miBT(1, 0);//pines del puerto serial

char dato=0; //dato resivido por bluetwo

int Trigh1=30;

int Echo1=A0; //sensor 1

long duracion1;

long distancia1;

//

int Trigh2=32;

int Echo2=A1; //sensor 2

long duracion2;

long distancia2;

//

int Trigh3=34;

int Echo3=A2; //sensor 3

long duracion3;

long distancia3;

//

int Trigh4=36;

int Echo4=A3; //sensor 4

long duracion4;

long distancia4;

/////////////////////////

//declaracion de los dos motores con el controlador "driver298N"

int OUT1=22;

int OUT2=24; //motor 1

long ENA=9;

//

int OUT3=26;

int OUT4=28; //motor 2


long ENB=8;

void delante() // funcion para avansar adelante

digitalWrite(OUT1, HIGH);

digitalWrite(OUT2, LOW); //motor 1

analogWrite(ENA, 255);

digitalWrite(OUT3, LOW);

digitalWrite(OUT4, HIGH); //motor 2

analogWrite(ENB, 255);

void derecha()

digitalWrite(OUT1, LOW);

digitalWrite(OUT2, LOW); //motor 1

analogWrite(ENA, 0);

digitalWrite(OUT3, LOW);

digitalWrite(OUT4, HIGH); //motor 2

analogWrite(ENB, 255);

void izquierda()

digitalWrite(OUT1, HIGH);

digitalWrite(OUT2, LOW); //motor 1

analogWrite(ENA, 255);

digitalWrite(OUT3, LOW);
digitalWrite(OUT4, LOW); //motor 2

analogWrite(ENB, 0);

void atras()

digitalWrite(OUT1, LOW);

digitalWrite(OUT2, HIGH); //motor 1

analogWrite(ENA, 255);

digitalWrite(OUT3, HIGH);

digitalWrite(OUT4, LOW); //motor 2

analogWrite(ENB, 255);

void derechaA()

digitalWrite(OUT1, LOW);

digitalWrite(OUT2, LOW); //motor 1

analogWrite(ENA, 0);

digitalWrite(OUT3, HIGH);

digitalWrite(OUT4, LOW); //motor 2

analogWrite(ENB, 255);

void izquierdaA()

digitalWrite(OUT1, LOW);

digitalWrite(OUT2, HIGH); //motor 1

analogWrite(ENA, 255);
digitalWrite(OUT3, LOW);

digitalWrite(OUT4, LOW); //motor 2

analogWrite(ENB, 0);

void paro()

digitalWrite(OUT1, LOW);

digitalWrite(OUT2, LOW); //motor 1

analogWrite(ENA, 255);

digitalWrite(OUT3, LOW);

digitalWrite(OUT4, LOW); //motor 2

analogWrite(ENB, 0);

/////////////////////////

//declaracion de los 14 servos

Servo Sv1;

Servo Sv2;

Servo Sv3;

Servo Sv4;

Servo Sv5;

Servo Sv6;

Servo Sv7;

Servo Sv8;

Servo Sv9;

Servo Sv10;

Servo Sv11;

Servo Sv12;

Servo Sv13;

Servo Sv14;

//////////////////////////
//declaracion de los 4 botones(encendidoapagado,m1,m2,mP)

int ButtonPS=51;//estas variavles no tienen relevancia, se dejan ahi por una futura implemedntacion

int ButtonM1=53;

int ButtonM2=4;

int ButtonMP=5;

int ButtonPState=0;

int ButtonM1State=0;

int ButtonM2State=0;

int ButtonMPState=0;

//////////////////////////

//configuracion de las variables

void setup(){

//configuracion de los pines "Trigh" y "Echo" de los 4 sensores ultrasonicos

pinMode(Trigh1, OUTPUT);

pinMode(Trigh2, OUTPUT); //pin "Trigh" de los 4 sensores

pinMode(Trigh3, OUTPUT);

pinMode(Trigh4, OUTPUT);

//

pinMode(Echo1, INPUT);

pinMode(Echo2, INPUT); //pin "Echo" de los 4 sensores

pinMode(Echo3, INPUT);

pinMode(Echo4, INPUT);

////////////////////////////

//configuracion de los motores con "driver L298n"

pinMode(OUT1, OUTPUT);

pinMode(OUT2, OUTPUT); //motor 1

pinMode(ENA, OUTPUT);

//

pinMode(OUT3, OUTPUT);
pinMode(OUT4, OUTPUT); //motor 2

pinMode(ENB, OUTPUT);

////////////////////////////

//configuracion de los 14 servos con la libreria "Servo"

Sv1.attach(46,1000,2000);

Sv2.attach(48,1000,2000);

Sv3.attach(50,1000,2000);

Sv4.attach(52,1000,2000);

Sv5.attach(31,1000,2000);

Sv6.attach(33,1000,2000);

Sv7.attach(35,1000,2000);

Sv8.attach(37,1000,2000);

Sv9.attach(39,1000,2000);

Sv10.attach(41,1000,2000);

Sv11.attach(43,1000,2000);

Sv12.attach(45,1000,2000);

Sv13.attach(47,1000,2000);

Sv14.attach(49,1000,2000);

//////////////////////////////

//configuracion de los 4 botones

pinMode(ButtonPS, INPUT);

pinMode(ButtonM1, INPUT);

pinMode(ButtonM2, INPUT);

pinMode(ButtonMP, INPUT);

///////////////////////////////

//modulo bluetwo

miBT.begin(38400);//velocidad de comunicacion entre modulo y arduino

void loop()

//configuracion del bluetwo con la modalidad de carro(boton 1)(no automatizado)

//num 1=boton de modalidad de carro


//num 2=boton avanzar hacia delante

//num 3=boton modalidad cuadrupeda(araña)

//num 4=boton izquierda

//num 5=boton paro

//num 6=boton derecha

//num 7=boton de automatizacion

//num 8=boton atras

if (miBT.available()){//SI el modulo recive una señal

dato = miBT.read();// el dato sera igual al valor recivido

if (dato == '2' && '1')//SI el valor recivido son 2 y 1 de los botones

delante(); !delante;//avanzar

if (dato == '4' && '1')//si los valores recividos son 4 y 1

izquierda(); !izquierda;//voltear

if (dato== '6' && '1')

derecha(); !derecha;

if (dato== '8' && '1')

atras(); !atras;

if (dato== '5' && '1')

paro(); !paro;

//se utiliza en base a la aplicacion android de control bluetwo "BlueTooth Serial Control"

/////////////////////////////////////////////////////////////////////////////////////

//modalidad de carro automatizado sin bluetwuo(se utilizan los sensores ultrasonicos)

if(dato== '7' && distancia1>=10)

delante(); !delante;

}
if(dato== '7' && distancia1<10)

derecha(); !derecha;

if(dato== '7' && distancia1<10 && distancia2<12)

izquierda();

if(dato== '7' && distancia1<10 && distancia3<12)

derecha();

if(dato== '7' && distancia1<10 && distancia2<12 && distancia3<12)

atras(); !atras;

delay(1500);

izquierda(); !izquierda;

También podría gustarte