proyectos en proteus » carro controlado con modulo bluetooth HC-05 y L293 D en PROTEUS

carro controlado con modulo bluetooth HC-05 y L293 D en PROTEUS

primero realizamos el codigo en arduino

luego de aver realizado el codigo tenemos que verificar si compila nuestro programa para eso verificamos  aqui:

luego de haber compilado nuestro trabajo copiamos la dirección para poder pegar en nuestro proteus

luego de haber realizado el código pasamos a nuestro proteus:

realizamos nuestro proteus colocando todo los componentes a utilizar

construimos nuestro proyecto en proteus

vemos el funcionamiento:

primero damos clip en la tarjeta del Arduino y ponemos editar propiedades o simplemente damos doble clip y donde dice program file: colocamos la dirección y luego aceptar.

psdta: ayi en la imagen esta señalada en donde debemos pegar la dirección copiada de nuestro código.

construimos nuestro proyecto en proteus

vemos como funciona :)

código de proteus:

//motor 1 

int in1 = 13;

int in2 = 12;

int pwmMotor1 = 6;

//motor 2

int in3 = 10;

int in4 = 11;

int pwmMotor2 = 5;

#define LED_AZUL 8

#define LEDS_DELANTE 4

#define LEDS_ATRAS 7

#define buzzer 9 // pin altavoz

//definimos los pines del sensor ultrasonido con el arduino 1

int velocidad=255;            // Velocidad de los motores (0-255)

const int trigger =3;

const int echo =2;

long dis(long microseconds);

//inicialisamos una variable estado desde 0

int state = 0;

void setup() {

      Serial.begin(9600);

  pinMode(in3, OUTPUT);

  pinMode(in4, OUTPUT);

  pinMode(pwmMotor1, OUTPUT);

  

  pinMode(in2, OUTPUT);

  pinMode(in1, OUTPUT);

  pinMode(pwmMotor2, OUTPUT);

  


  pinMode(LEDS_DELANTE, OUTPUT);

  pinMode(LEDS_ATRAS, OUTPUT);

  pinMode(buzzer, OUTPUT);

  pinMode(LED_AZUL, OUTPUT);

  digitalWrite(in3, LOW);

  digitalWrite(in4, LOW);

  analogWrite(pwmMotor2, 0);

  

  digitalWrite(in2, LOW);

  digitalWrite(in1, LOW);

  analogWrite(pwmMotor1, 0);

  


  pinMode(LEDS_DELANTE, LOW);

  pinMode(LEDS_ATRAS, LOW);

    digitalWrite(LED_AZUL, LOW);

    

    pinMode(trigger, OUTPUT); 

    pinMode(echo, INPUT);   

  // put your setup code here, to run once:


}


void loop() {

  if(Serial.available() > 0){     

      state = Serial.read();   

  }

long duracion, cm;

digitalWrite(trigger, LOW); // set pin 2 on L293D low

delayMicroseconds(2);

digitalWrite(trigger, HIGH); // set pin 2 on L293D low

delayMicroseconds(10);

digitalWrite(trigger, LOW); // set pin 7 on L293D low

  

  // put your main code here, to run repeatedly:

duracion=pulseIn(echo,HIGH);

cm = dis(duracion);


if(state=='w' && cm <= 20){

digitalWrite(LED_AZUL, HIGH);

digitalWrite(buzzer, HIGH);//EVADIR GIRAR ALA DERECHA

tone(buzzer,1000);  

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

analogWrite(pwmMotor2,velocidad-50);//ponemos el misma potencia pero qui

        

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

analogWrite(pwmMotor1,velocidad);

}

else if(state=='w' && cm > 20){

 digitalWrite(LED_AZUL, LOW);

digitalWrite(buzzer, LOW);//EVADIR GIRAR ALA DERECHA

noTone(buzzer);  

digitalWrite(in3,HIGH);

  digitalWrite(in4, LOW);

  analogWrite(pwmMotor2, velocidad);//AVANZAR

  

  digitalWrite(in1, LOW);

  digitalWrite(in2, HIGH);

  analogWrite(pwmMotor1, velocidad);

}

if(state=='s'){


  digitalWrite(in3, LOW);

  digitalWrite(in4, HIGH);

  analogWrite(pwmMotor2, velocidad); 

  

  digitalWrite(in1, HIGH);

  digitalWrite(in2, LOW);

  analogWrite(pwmMotor1, velocidad);//REVERSA

digitalWrite(LEDS_ATRAS, HIGH);

digitalWrite(buzzer, HIGH);

tone(buzzer,1400);

delay(100);

digitalWrite(LEDS_ATRAS, LOW);

digitalWrite(buzzer, LOW);

noTone(buzzer);

delay(100);

digitalWrite(LEDS_ATRAS, HIGH);

digitalWrite(buzzer, HIGH);

tone(buzzer,1400);

delay(100);

digitalWrite(LEDS_ATRAS, LOW);

digitalWrite(buzzer, LOW); 

noTone(buzzer); 

delay(100);


    //state=0;

}

if(state=='d'){

 

  digitalWrite(in3, LOW);

  digitalWrite(in4, LOW);//GIRAR A LA DERECHA

  analogWrite(pwmMotor2, 0);

  

  digitalWrite(in1, LOW);

  digitalWrite(in2, HIGH);

  analogWrite(pwmMotor1, velocidad);

    state=0;

}

if(state=='a'){

 

  digitalWrite(in3,HIGH);

  digitalWrite(in4, LOW);

  analogWrite(pwmMotor2,velocidad);//GIRAR A LA IZQUIERDA

  

  digitalWrite(in2, LOW);

  digitalWrite(in1, LOW);

  analogWrite(pwmMotor1, 0);


    state=0;

}

if(state=='e'){

 //PARAR

  digitalWrite(in3, LOW);

  digitalWrite(in4, LOW);

  analogWrite(pwmMotor2, 0);

  

  digitalWrite(in2, LOW);

  digitalWrite(in1, LOW);

  analogWrite(pwmMotor1, 0);

    state=0;

}


if (state=='t') // PULSADOR NO PULSADO

{

 

  digitalWrite(buzzer, HIGH);

  tone(buzzer,980); // tone (PIN DEL ZUMBADOR, FREQÜÉNCIA);

  //delay (100);  // TIEMPO DE MANTENER EL TONO. 

}

if (state=='r')

{

digitalWrite(buzzer, LOW); 

noTone(buzzer); 

}


if(state=='l'){

 

digitalWrite(LEDS_DELANTE, HIGH);//prender focos de adelante y atras

digitalWrite(LEDS_ATRAS, HIGH);

delay(100);

digitalWrite(LEDS_ATRAS, LOW);

delay(100);

digitalWrite(LEDS_ATRAS, HIGH);

delay(100);

digitalWrite(LEDS_ATRAS, LOW);

delay(100);

}

if(state=='o'){

 

digitalWrite(LEDS_DELANTE, LOW);//prender focos de adelante y atras

digitalWrite(LEDS_ATRAS, LOW);

}

}

long dis(long microseconds)

{

  return microseconds /29 /2;

}