Arduino Actividades

¿Qué es Arduino?

placaArduino es una plataforma de hardware de código abierto, basada en una sencilla placa con entradas y salidas, analógicas y digitales, en un entorno de desarrollo que está basado en el lenguaje de programación Processing. Es un dispositivo que conecta el mundo físico con el mundo virtual, o el mundo analógico con el digital.

Sus creadores son el zaragozano David Cuartielles, ingeniero electrónico y docente de la Universidad de Mälmo, Suecia y Massimo Banzi, italiano, diseñador y desarrollador Web. El proyecto fue concebido en Italia en el año 2005.

Control de casa Domotica

control de los pines digitales atravez de un modulo bluetooth y una app (arduDroid by Techbitar) 

 

codigo arduino

/*
 PROYECTO: ArduDroid
 PROGRAMADOR: modificado por elprofegarcia.com   original escrito por  Hazim Bitar 
 FECHA: Ago 16, 2014
LICENCIA: Publica

Desconectar el modulo Bluetooth mientras carga este programa al Arduino, luego conecte:
ARDUINO BLUETOOTH
Pin 0 (RX)      TXD
Pin 1 (Tx)      RXD
5V              VCC
GND             GND
Descargar plano de conexiones en:  http://elprofegarcia.com/?page_id=2
Descargar aplicacion Android en Play Store:  ArduDroid (Hazim Bitar)
*/
#define CARACTER_INICIO_CMD '*'
#define CARACTER_FINAL_CMD '#'
#define CARACTER_DIV_CMD '|'
#define ESCRITURA_DIGITAL_CMD 10
#define ESCRITURA_ANALOGA_CMD 11
#define TEXTO_CMD 12
#define LECTURA_ARDUDROID_CMD 13
#define MAX_COMMAND 20  
#define MIN_COMMAND 10 
#define LONGITUD_ENTRADA_STRING 40
#define ESCRITURA_ANALOGICA_MAX 255
#define PIN_ALTO 3
#define PIN_BAJO 2

String inText;

void setup() {
  Serial.begin(9600);
  Serial.println("elprofegarcia.com");
  Serial.flush();
}

void loop()
{
  Serial.flush();
  int ard_command = 0;
  int pin_num = 0;
  int pin_value = 0;

  char get_char = ' ';  //lee serial

  // esperar a que los datos entren
  if (Serial.available() < 1) return; // si no hay datos en el serial retornar al Loop().

  // analizar entrada de indicador de inicio de comando
  get_char = Serial.read();
  if (get_char != CARACTER_INICIO_CMD) return; // si no hay indicación de inicio del sistema, volver  loop ().
  // parse incoming command type
  ard_command = Serial.parseInt(); // read the command
  
  // analizar el tipo de comando entrante
  pin_num = Serial.parseInt(); // leer el pin
  pin_value = Serial.parseInt();  // leer el valor

  // 1) OBTENER COMANDO DE TEXTO PARA ARDUDROID
  if (ard_command == TEXTO_CMD){   
    inText =""; // borra variable para nueva entrada
    while (Serial.available())  {
      char c = Serial.read();  // recibe un byte de la memoria intermedia serie
      delay(5);
      if (c == CARACTER_FINAL_CMD) { // si la cadena completa ha sido leida
        // add your code here
        break;
      }              
      else {
        if (c !=  CARACTER_DIV_CMD) {
          inText += c; 
          delay(5);
        }
      }
    }
  }

  // 2) OBTENER DATOS DE digitalWrite ARDUDROID
  if (ard_command == ESCRITURA_DIGITAL_CMD){  
    if (pin_value == PIN_BAJO) pin_value = LOW;
    else if (pin_value == PIN_ALTO) pin_value = HIGH;
    else return; // error en el valor de PIN. regresar.
    set_digitalwrite( pin_num,  pin_value);  // Eliminar el comentario de esta función para utilizarla
    return;  // regrese al inicio de loop()
  }

  // 3) GET analogWrite DATA FROM ARDUDROID
  if (ard_command == ESCRITURA_ANALOGA_CMD) {  
    analogWrite(  pin_num, pin_value ); 
    // add your code here
    return;  // Done. return to loop();
  }

  // 4) Enviar datos a ARDUDROID
  if (ard_command == LECTURA_ARDUDROID_CMD) { 
    // char send_to_android[] = " Coloca el texto aquí." ;
    // Serial.println(send_to_android);   // Ejemplo: Envío de texto
    Serial.print(" Analogo 0 = "); 
    Serial.println(analogRead(A0));  // Ejemplo: Leer y enviar valor analógico del Pin de Arduino
    return;  // Listoe. regrese al loop();
  }
}

// 2a) seleccionar el pin # solicitado para la acción digitalWrite
void set_digitalwrite(int pin_num, int pin_value)
{
  switch (pin_num) {
  case 13:
    pinMode(13, OUTPUT);
    digitalWrite(13, pin_value);  
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 12:
    pinMode(12, OUTPUT);
    digitalWrite(12, pin_value);   
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 11:
    pinMode(11, OUTPUT);
    digitalWrite(11, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 10:
    pinMode(10, OUTPUT);
    digitalWrite(10, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 9:
    pinMode(9, OUTPUT);
    digitalWrite(9, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 8:
    pinMode(8, OUTPUT);
    digitalWrite(8, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 7:
    pinMode(7, OUTPUT);
    digitalWrite(7, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 6:
    pinMode(6, OUTPUT);
    digitalWrite(6, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 5:
    pinMode(5, OUTPUT);
    digitalWrite(5, pin_value); 
    // adicione su código aquí, para este número de pin del Arduino 
    break;
  case 4:
    pinMode(4, OUTPUT);
    digitalWrite(4, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 3:
    pinMode(3, OUTPUT);
    digitalWrite(3, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 2:
    pinMode(2, OUTPUT);
    digitalWrite(2, pin_value); 
    // adicione su código aquí, para este número de pin del Arduino
    break;      
    // por defecto
    // si nada más fue seleccionado, hacer el defecto (default)
    // default es opcional
  } 
}

 

control de carro vìa bluetooth

/* Carro Inalambrico Bluetooth
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. 
 
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.

*/
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

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);
 } 
 
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 
 
  }
  if  (estado=='g'){          // Boton OFF, detiene los motores no hace nada 
  }
}

el control del giro de los motores se realiza con una puente H.

Construcciòn de violìn inalambrico