sábado, 6 de diciembre de 2014

Carrito Con Arduino





Carrito controlado por  Arduino a través de radiofrecuencia
Objetivo:
Mediante la implementación de Arduino, controlar los movimientos de un carrito mediante las señales FM generadas por un emisor a través de un control remoto.

Desarrollo:

1)    Circuito emisor: Este circuito funcionara como el control remoto, el cual permitirá controlar los movimientos que tendrá el carrito. Los movimientos del carrito consistirán en los siguientes:

1)    Circuito Receptor:  Controlara el movimiento de la llantas traseras, el cual se llevara a cabo por medio de 2 motores.


Código:

Emisor:

#include <VirtualWire.h>
int pinAd = 8;
int pinAt = 9;
int pinDe = 10;
int pinIz = 11;
int pinPw = 12;
int pinTX = 4;

void setup(){
  pinMode(pinAd,INPUT);
  pinMode(pinAt,INPUT);
  pinMode(pinDe,INPUT);
  pinMode(pinIz,INPUT);
  pinMode(pinPw,INPUT);

  vw_set_tx_pin(pinTX);
  vw_setup(2000);

  Serial.begin(9600);
}

void loop(){
  delay(500);

  int estadopinAd = digitalRead(pinAd);
  int estadopinAt = digitalRead(pinAt);
  int estadopinDe = digitalRead(pinDe);
  int estadopinIz = digitalRead(pinIz);
  int estadopinPw = digitalRead(pinPw);

  char *mensaje = "VACIO";

  if (estadopinAd == HIGH)
  {
    mensaje = "A";
  }
  if (estadopinAt == HIGH)
  {
    mensaje = "R";
  }
  if (estadopinDe == HIGH)
  {
    mensaje = "D";
  }
  if (estadopinIz == HIGH)
  {
    mensaje = "I";
  }
  if (estadopinPw == HIGH)
  {
    mensaje = "P";
  }
 
  Serial.print("Enviado ");
  Serial.println( mensaje );

  vw_send( (uint8_t *) mensaje , strlen(mensaje) );  
}



Receptor:
#include <VirtualWire.h>
//Motor A
const int pinMA1 = 5;
const int pinMA2 = 6;

//Motor B
const int pinMB1 = 10;
const int pinMB2 = 11;

const int pinRX = 4;//Pin de recepcion de datos

void setup(){
  //MA
  pinMode(pinMA1,OUTPUT);
  pinMode(pinMA2,OUTPUT);
  //MB
  pinMode(pinMB1,OUTPUT);
  pinMode(pinMB2,OUTPUT);

 Serial.begin(9600);

  vw_set_rx_pin(pinRX);
  vw_setup(2000);
  vw_rx_start();
}

void loop(){

  uint8_t mensaje[VW_MAX_MESSAGE_LEN];
  uint8_t longitud = VW_MAX_MESSAGE_LEN;

  if (vw_get_message( mensaje , &longitud ) ){   
    Serial.print("Recibido ");
    Serial.println( mensaje[0] );
   
    if( mensaje[0] == 'A' ){
       digitalWrite( pinMA1 , HIGH );//Motor1
       digitalWrite( pinMA2 , LOW );
       digitalWrite( pinMB1 , HIGH );//Motor2
       digitalWrite( pinMB2 , LOW );     
    }
    else if( mensaje[0] == 'R' ){
       digitalWrite( pinMA1 , LOW );//Motor1
       digitalWrite( pinMA2 , HIGH );
       digitalWrite( pinMB1 , LOW );//Motor2
       digitalWrite( pinMB2 , HIGH );            
    }
    else if( mensaje[0] == 'D' ){
       digitalWrite( pinMA1 , HIGH );//Motor1
       digitalWrite( pinMA2 , LOW );
       digitalWrite( pinMB1 , LOW );//Motor2
       digitalWrite( pinMB2 , HIGH );           
    }
    else if( mensaje[0] == 'I' ){
      digitalWrite( pinMA1 , LOW );//Motor1
      digitalWrite( pinMA2 , HIGH );
      digitalWrite( pinMB1 , HIGH );//Motor2
      digitalWrite( pinMB2 , LOW);            
    }
    else if( mensaje[0] == 'P' ){
    digitalWrite( pinMA1 , LOW );//Motor1
    digitalWrite( pinMA2 , LOW );
    digitalWrite( pinMB1 , LOW );//Motor2
    digitalWrite( pinMB2 , LOW);            
    }
  }
}

Evidencias Fotográficas:


Control Remoto:



 Carrito:






No hay comentarios:

Publicar un comentario