martes, 3 de mayo de 2016

carro inalambrico

/* Carro Inalambrico Bluetooth


 ARDUINO   L293D(Puente H)       
 5          10
 6          15
 9          7
 10         2
 5V         1, 9, 16
 GND        4, 5, 12, 13

 El motor 1 se conecta a los pines 3 y 6 del Puente H
 El motor 2 se conecta a los pines 11 y 14 del Puente H

 La fuente de alimentacion de los Motores se conecta a tierra y
 el positivo al pin 8 del puennte H.

 Conexion del Modulo Bluetooth HC-06 y el Arduino
 ARDUINO    Bluetooth HC-06
 0 (RX)       TX
 1 (TX)       RX
 5V           VCC
 GND          GND
 !!Cuidado!! Las conexiones de TX y RX al modulo Bluetooth deben estar desconectadas
 en el momento que se realiza la carga del codigo (Sketch) al Arduino.

 Conexion Sensor Ultrasonido HC-SR04
 ARDUINO    Ultrasonido HC-SR04
 2            Echo
 3            Trig
 5V           VCC
 GND          Gnd
 */
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255;            // Velocidad de los motores (0-255)
int estado = 'g';         // inicia detenido

int pecho = 2;            // define el pin 2 como (pecho) para el Ultrasonido
int ptrig = 3;            // define el pin 3 como (ptrig) para el Ultrasonido
int duracion, distancia;  // para Calcular distacia

void setup()  {
  Serial.begin(9600);    // inicia el puerto serial para comunicacion con el Bluetooth
  pinMode(derA, OUTPUT);
  pinMode(derB, OUTPUT);
  pinMode(izqA, OUTPUT);
  pinMode(izqB, OUTPUT);
 
  pinMode(pecho, INPUT);   // define el pin 2 como entrada (pecho)
  pinMode(ptrig,OUTPUT);   // define el pin 3 como salida  (ptrig)
  pinMode(13,OUTPUT);
}

void loop()  {

  if(Serial.available()>0){        // lee el bluetooth y almacena en estado
    estado = Serial.read();
  }
  if(estado=='a'){           // Boton desplazar al Frente
    analogWrite(derB, 0);    
    analogWrite(izqB, 0);
    analogWrite(derA, vel); 
    analogWrite(izqA, vel);      
  }
  if(estado=='b'){          // Boton IZQ
    analogWrite(derB, 0);    
    analogWrite(izqB, 0);
    analogWrite(derA, 0); 
    analogWrite(izqA, vel);     
  }
  if(estado=='c'){         // Boton Parar
    analogWrite(derB, 0);    
    analogWrite(izqB, 0);
    analogWrite(derA, 0);   
    analogWrite(izqA, 0);
  }
  if(estado=='d'){          // Boton DER
    analogWrite(derB, 0);    
    analogWrite(izqB, 0);
    analogWrite(izqA, 0);
    analogWrite(derA, vel); 
  }

  if(estado=='e'){          // Boton Reversa
    analogWrite(derA, 0);   
    analogWrite(izqA, 0);
    analogWrite(derB, vel); 
    analogWrite(izqB, vel);     
  }
 
  if (estado =='f'){          // Boton ON,  se mueve sensando distancia
 
     digitalWrite(ptrig, HIGH);   // genera el pulso de trigger por 10us
     delay(0.01);
     digitalWrite(ptrig, LOW);
    
     duracion = pulseIn(pecho, HIGH);              // Lee el tiempo del Echo
     distancia = (duracion/2) / 29;            // calcula la distancia en centimetros
     delay(10);
    
     if (distancia <= 15 && distancia >=2){    // si la distancia es menor de 15cm
        digitalWrite(13,HIGH);                 // Enciende LED
       
        analogWrite(derB, 0);                  // Parar los motores por 200 mili segundos
        analogWrite(izqB, 0);
        analogWrite(derA, 0);   
        analogWrite(izqA, 0);
        delay (200);
       
        analogWrite(derB, vel);               // Reversa durante 500 mili segundos
        analogWrite(izqB, vel);
        delay(500);          
       
        analogWrite(derB, 0);                // Girar durante 1100 milisegundos  
        analogWrite(izqB, 0);
        analogWrite(derA, 0); 
        analogWrite(izqA, vel); 
        delay(1100);
       
        digitalWrite(13,LOW);
     }
     else{                   // Si no hay obstaculos se desplaza al frente 
         analogWrite(derB, 0);    
         analogWrite(izqB, 0);
         analogWrite(derA, vel); 
         analogWrite(izqA, vel);
     }
  }
  if(estado=='g'){          // Boton OFF, detiene los motores no hace nada
     analogWrite(derB, 0);    
     analogWrite(izqB, 0);
     analogWrite(derA, 0);   
     analogWrite(izqA, 0);
  }
}

vehiculo control remoto

/* Prueba del Puente H (L293D)
Dibujo de las conexiones en www.elprofegarcia.com

ARDUINO   L293D(Puente H)       
  5          10
  6          15
  9          7
  10         2
  5V         1, 9, 16
  GND        4, 5, 12, 13
 
  El motor 1 se conecta a los pines 3 y 6 del Puente H
  El motor 2 se conecta a los pines 11 y 14 del Puente H
 
  La fuente de alimentacion de los Motores se conecta a tierra y
  el positivo al pin 8 del puennte H. 

*/
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)

void setup()  {
  pinMode(derA, OUTPUT);
  pinMode(derB, OUTPUT);
  pinMode(izqA, OUTPUT);
  pinMode(izqB, OUTPUT);
 }

void loop()  {
    analogWrite(derB, 0);  // Detiene los Motores
    analogWrite(izqB, 0);
    delay (500);
    analogWrite(derA, vel);  // Frente 2 segundos
    analogWrite(izqA, vel);
    delay (2000);
  
    analogWrite(derA, vel);  // Derecha 0,5 segundos
    analogWrite(izqA, 0);
    delay (500);
   
    analogWrite(derA, 0);    // Izquierda 0,5 segundos
    analogWrite(izqA, vel);
    delay (500);
    
    analogWrite(derA, 0);    // Detiene los Motores
    analogWrite(izqA, 0);
    delay (500);
    analogWrite(derB, vel);  // Reversa 2 segundos
    analogWrite(izqB, vel);
    delay (2000);                     
}

control house



/* Arduino Control House  By: http://www.elprofegarcia.com/
.... Contorl digital on/off del pin 13 al pin 6
.... Dimer de los Pin 3 y 5
.... Control de Servo por PIN 4
.... Lectura analoga del Puerto AO

Conexion del Modulo Bluetooth al Arduino
usando Pin 0 y 1
Componentes conprados en la tienda: http://www.dinastiatecnologica.com/
*/

#include <Servo.h>
Servo servo1;         // Crea el servo1 con las librerias de Servo.h

int estado=0;
int retardo=100;
int analogo=0;

void setup(){
  servo1.attach(4);
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(3,OUTPUT);
  Serial.begin(9600);
  delay(1000);
 }
 void loop(){
 if(Serial.available()>0){           // Si el puerto serie esta habilitadp
        estado = Serial.read();      // Lee lo que llega por el puerto Serie
 }
   
 if(estado== 'a'){                    // on/off de los pin 13 al pin 6
       digitalWrite(13,HIGH);
 }
 if(estado== 'b' ){
       digitalWrite(13,LOW);
 }
 if(estado== 'c'){
       digitalWrite(12,HIGH);
 }
 if(estado== 'd' ){
       digitalWrite(12,LOW);
 }
 if(estado== 'e'){
       digitalWrite(11,HIGH);
 }
 if(estado== 'f' ){
       digitalWrite(11,LOW);
 }
 if(estado== 'g' ){
       digitalWrite(10,HIGH);
 }
 if(estado== 'h' ){
       digitalWrite(10,LOW);
 }
 if(estado== 'i' ){
        digitalWrite(9,HIGH);
 }
 if(estado== 'j' ){
       digitalWrite(9,LOW);
      }
 if(estado== 'k' ){
        digitalWrite(8,HIGH);
 }
 if(estado== 'l' ){
      digitalWrite(8,LOW);
 }
 if(estado== 'm' ){
       digitalWrite(7,HIGH);
 }
 if(estado== 'n' ){
       digitalWrite(7,LOW);
 }
 if(estado== 'o' ){
      digitalWrite(6,HIGH);
 }
 if(estado== 'p' ){
       digitalWrite(6,LOW);
 }
 if(estado== 'A' ){      // Movimiento del SERVO
      servo1.write(0);
      }
 if(estado== 'B' ){
      servo1.write(90);
      }
 if(estado== 'C' ){
      servo1.write(180);
      }

 if(estado=='s'){       //  Dimer 1 conectado al pin 5
        analogWrite(5,0);
       }
   
 if(estado=='t'){
        analogWrite(5,3);
       }
if(estado=='u'){
        analogWrite(5,8);
       }
if(estado=='v'){
        analogWrite(5,20);
       }
if(estado=='w'){
        analogWrite(5,30);
       }
if(estado=='x'){
        analogWrite(5,60);
       }
if(estado=='y'){
        analogWrite(5,125);
       }
if(estado=='z'){
        analogWrite(5,255);
       }      
     
     

 if(estado=='1'){               //  Dimer 2 conectado al pin 3
        analogWrite(3,0);
       }
   
 if(estado=='2'){
        analogWrite(3,3);
       }
if(estado=='3'){
        analogWrite(3,8);
       }
if(estado=='4'){
        analogWrite(3,20);
       }
if(estado=='5'){
        analogWrite(3,30);
       }
if(estado=='6'){
        analogWrite(3,60);
       }
if(estado=='7'){
        analogWrite(3,125);
       }
if(estado=='8'){
        analogWrite(3,255);
       }  
   
if(estado=='q'){         // envia el valor leido del puerto analogo A0
  analogo=analogRead(A0);
  Serial.print(analogo);
  Serial.println("°C");
  delay (retardo);
  estado=0;
 }
 delay(retardo);
 }

configuración bluetooth



char NOMBRE[10]  = "PONYZ";  
char BPS         = '4';           // 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char PASS[10]    = "0000";      

void setup()
{
    Serial.begin(9600);
    pinMode(13,OUTPUT);
    digitalWrite(13,HIGH);
    delay(10000);
    digitalWrite(13,LOW);
 
    Serial.print("AT");
    delay(1000);

    Serial.print("AT+NAME");
    Serial.print(NOMBRE);
    delay(1000);

    Serial.print("AT+BAUD");
    Serial.print(BPS);
    delay(1000);

    Serial.print("AT+PIN");
    Serial.print(PASS);
    delay(1000);  
}

void loop()
{
    digitalWrite(13, !digitalRead(13));
    delay(500);
}