Powered By Blogger

domingo, 5 de noviembre de 2017

Prueba de motor

En esta práctica se propone realizar una prueba de motor cd a través de LabVIEW utilizando la interface con Arduino.

La prueba consiste en controlar la velocidad del motor a través de un potenciómetro e indicar con tres LED’s la velocidad actual donde (verde – baja, amarillo – media, rojo – alto); la prueba será activada a través de una perilla para iniciar el arranque del motor.

Pre requisitos para esta practica:

  • Tener instalado el toolkit de "LabVIEW Interface for Arduino".
  • LabVIEW 2017, Si va a utilizar el VI que se ofrece en el link


Material:

Placa Arduino
Motor a 5 VDC
Potenciómetro
Resistores
Led
Transistor 2N2222
Protoboard

Cables

Como primer paso vamos a realizar la conexión del circuito electrónico.
En la conexión podemos apreciar a que pines de la placa Arduino están conectados los diferentes componentes electrónicos.

Conexión del sistema en placa de prototipos.


Arduino IDE:

En arduino IDE únicamente vamos a realizar la compilación y la subida del sketch LIFA_Base

Sketch LIFA_Base, Arduino IDE

LabVIEW:

En LabVIEW se va a realizar toda la programación del sistema.

1. Establece comunicación con la placa Arduino.

2. Configura pines digitales como salida.

3. Inicia ciclo while loop

 3.1. Inicia "case structure"

 3.2. Comienza con la lectura del potenciometro conectado al pin A0

   3.2.1. Mapea la salida de la lectura analógica de 0 - 5 a 0 - 10 (esto es para mostrar la velocidad en               el indicador).

       3.2.1.1. Mapear la salida del mapeo anterior de 0 - 10 a 0 - 255.

3.3 Realizar la comparación de la salida obtenida del mapeo en el punto "3.2.1" para determinar la velocidad y encender el led correspondiente.

3.4 Agregar el bloque de analogWrite y conectar el mapeo del punto "3.2.1.1" para escribir en el puerto la salida PWM al pin de la placa seleccionado.

3.5 Convertir los resultados de las comparaciones del punto 3.3, a dato digital para posteriormente conectarlos a los bloques digitalWrite correspondiente a los pines donde estan conectados los LED's fisicos. 

Diagrama de bloques en LabVIEW.

Panel frontal en LabVIEW.




domingo, 27 de agosto de 2017

Control de LED con PIC16F84A y MikroC

En esta practica vamos a controlar el encendido y apagado de un led utilizando el microcontrolador PIC16F84A programado con lenguaje C.

Como primer punto vamos a utilizar el software MikroC para realizar la programación de nuestro pic, si no cuentas con este software te invito a que lo descargues, en la siguiente linea aparecen los links de descarga.

MikroC:
Parte 1.
Parte 2.
Parte 3.

El entorno de programación de MikroC es demasiado sencillo, para comenzar creamos un nuevo proyecto e indicamos el nombre del proyecto, el pic a utilizar y nuestro oscilador.

Parpadeo de LED

Material:

1 PIC16F84A.
1 Cristal oscilador de 4MHZ
2 Capacitores cerámicos de 1uf.
2 Resistores 220 ohm.
1 LED de 5mm preferente.
1 Protoboard.
Cables para conexión.

Una vez echo lo anterior escribimos el siguiente código de programación para encender y apagar un LED cada determinado tiempo:

void main(void) {

     TRISA.F0 = 0; // CONFIGURA PIN RA0 COMO SALIDA
     TRISB.F0 = 1; // CONFIGURA PON RB0 COMO ENTRADA
   
     // INICIO
   
     while(1)
     {

        PORTA.F0 = 1; // ENCIENDE LED
        Delay_ms(1000); // Retardo de 1seg
        PORTA.F0 = 0; // APAGA LED
        Delay_ms(500); //Retardo de 1/2seg
     }

}

Conexión del PIC16F84A

Antes de mostrar el diagrama de conexiones del circuito debemos tomar en cuenta la siguiente figura donde se muestra la distribución de los puertos en este microcontrolador.

Una vez visto lo anterior podemos llevar a cabo la conexión de nuestro circuito en la protoboard.

Figura de representación de conexión del circuito.


Para comprobar nuestra programación utilizamos la simulación en Proteus.

Figura de simulación en Proteus.


Encendido de LED con boton

Material:

1 PIC16F84A.
1 Cristal oscilador de 4MHZ
2 Capacitores cerámicos de 1uf.
2 Resistores (220 ohm y 10Kohm).
1 LED de 5mm preferente.
1 Push boton.
1 Protoboard.
Cables para conexión.

Para este otro ejercicio tomaremos en cuenta el codigo anterior unicamente le agregaremos la condicional "if" y "else", el codigo es el siguiente:

void main(void) {

     TRISA.F0 = 0; // CONFIGURA PIN RA0 COMO SALIDA
     TRISB.F0 = 1; // CONFIGURA PON RB0 COMO ENTRADA
   
     // INICIO
   
     while(1)
     {
      if (PORTB.F0 = 1) // SI ES DETECTADO UN PULSO POSITIVO "BOTON OPRIMIDO"
      {
        PORTA.F0 = 1; // ENCIENDE LED
      }
      else // SINO ES DETECTADO
      {
       PORTA.F0 = 0; // APAGA LED
      }
     }

}

La conexion es la siguiente:

Figura de conexión en protoboard de segundo ejercicio

Simulación en Proteus:

Figura de simulación en Proteus de segundo ejercicio.

Descarga de Archivos utilizados aqui:


Mira el vídeo


martes, 8 de agosto de 2017

Control de display 7 segmentos

En esta práctica se desea controlar un display de 7 a través de la interface de LabVIEW y Arduino.

Antes de comenzar:

Tener en cuenta instalar el toolkit LINX en LabVIEW para realizar la comunicación con la placa Arduino.

Identificar y considerar el tipo de display a utilizar (ánodo común o cátodo común).

El display de 7 Segmentos 




El display de 7 segmentos es un componente que se utiliza para la representación de caracteres (normalmente números) en muchos dispositivos electrónicos, debido en gran medida a su simplicidad. Aunque externamente su forma difiere considerablemente de un led típico, internamente están constituidos por una serie de leds con unas determinadas conexiones internas, estratégicamente ubicados de tal forma que forme un número '8'

Los hay de dos tipos: ánodo común y cátodo común.

En los de tipo de ánodo común, todos los ánodos de los ledes o segmentos están unidos internamente a una patilla común que debe ser conectada a potencial positivo (nivel “1”). El encendido de cada segmento individual se realiza aplicando potencial negativo (nivel “0”) por la patilla correspondiente a través de una resistencia que limite el paso de la corriente.

En los de tipo de cátodo común, todos los cátodos de los ledes o segmentos están unidos internamente a una patilla común que debe ser conectada a potencial negativo (nivel “0”). El encendido de cada segmento individual se realiza aplicando potencial positivo (nivel “1”) por la patilla correspondiente a través de una resistencia que limite el paso de la corriente.

Material a utilizar:

Placa Arduino UNO o alguna otra que soporte LINX
Display de 7 segmentos
Protoboard

Cables para conexión

Representación de conexión en protoboard.

Identificacion de pines de display

Figura de relación entre pines de display de 7 segmentos.



.


sábado, 15 de julio de 2017

Grabar posiciones de Servomotor


Grabar posición de Servomotor

Materiales que necesitaras
1 Arduino UNO
1 Botón
1 Potenciómetro (cualquier valor)
1 Servomotor

1 Resistor de 10 K ohm



Descarga el Sketch de Arduino
https://goo.gl/MKAE3H

lunes, 27 de febrero de 2017

Control de motor DC con Arduino - MATLAB

Como realizar un control de un motor de corriente continua a través de una placa Arduino y MATLAB.

Material utilizado:
  • Arduino UNO.
  • Driver l298d.
  • Motoreductor 12V.
  • Fuente de alimentación externa de 12V a 1amp.
Motor DC utilizado




Diagrama de conexión

Diagrama de conexión con integrado L298d.


Si no cuentas con el integrado L298d, puedes utilizar el L293D para un motor DC de menor potencia te funcionara muy bien.

Diagrama de conexión con integrado L293D.

Una vez realizado las conexiones del circuito, conectamos la placa arduino a nuestra computadora y abrimos MATLAB.

Creamos un nuevo script y comenzamos a escribir el siguiente código. Únicamente tendremos que modificar el numero de puerto de comunicación  y el modelo en caso de ser necesario, de la placa Arduino.

Script en MATLAB.

clear all port;
a = arduino('com3','uno');

for x = 0:4
    writeDigitalPin(a,'D3',1);
    writeDigitalPin(a,'D5',0);
    pause(2);
    writeDigitalPin(a,'D3',0);
    writeDigitalPin(a,'D5',1);
    pause(2);
end

writeDigitalPin(a,'D3',0);
writeDigitalPin(a,'D5',0);

for d = 1:-0.1:0
    writePWMDutyCycle(a,'D3',d);
    writeDigitalPin(a,'D5',0);
    pause(2);
end

for s = 0:+0.1:1
    writeDigitalPin(a,'D3',0);
    writePWMDutyCycle(a,'D5',s);
    pause(2);
end
writeDigitalPin(a,'D3',0);
writeDigitalPin(a,'D5',0);




Gracias por ver el vídeo.



lunes, 20 de febrero de 2017

Comunicación Serial Arduino - Labview básico con encendido de LED

Que tal, bienvenidos a este pequeño apartado donde estaré dejando información mas detallada sobre los vídeos que subiré en el canal.

En esta ocasión, hablaremos sobre "Conexión Arduino - LabVIEW con modulo Bluetooth utilizando Visa Serial". Para el desarrollo de este articulo se utilizo el modulo bluetooth "HC-06", pero si cuentas con el modulo "HC-05" no tendrás problema.

Modulo bluetooth "HC-06", utilizado en esta practica.


El propósito de esta practica consta en encender y apagar un LED de manera remota, desde el software LabVIEW con Arduino como placa controladora, utilizando la transferencia de datos con el modulo bluetooth.

Cabe resaltar que no abordaremos a profundidad las características del modulo bluetooth, ya que esto sera tema de otro articulo; En este practica no aremos uso de comandos, ni programación para controlar este modulo. El bluetooth lo utilizaremos únicamente como un reemplazo del cable de datos , el cual se conecta a los pines RX y TX del arduino para establecer la comunicación con el software LabVIEW. 

Una vez dicho lo anterior comenzaremos escribiendo el programa en Arduino IDE.


int led = 6;
void setup() {

  Serial.begin(9600);
  pinMode(led,OUTPUT);
}

void loop() {

  if (Serial.available())
  {
    int dato = Serial.read();

    if (dato == 0)
    {
      digitalWrite(led,LOW);
      delay(5);
    }
    if (dato == 1)
    {
      digitalWrite(led,HIGH);
      delay(5);
    }
  }
}



Escrito el código, lo cargamos a nuestra placa Arduino; abrimos LabVIEW y colocamos el siguiente VI

Imagen de VI utilizado.


Ahora realizamos la conexión del circuito electrónico, como se muestra en la siguiente imagen.

Imagen de conexión utilizada en la practica del vídeo.


Para finalizar configuramos el bluetooth de nuestro computador como puerto de comunicación serial "COM"; para esto, ubicamos el icono de bluetooth y sobre este damos click derecho y seleccionamos "abrir configuración", nos dirigios a la pestaña de "puertos COM" y seleccioamos "Agregar Saliente", seleccionamos el nombre de nuestro modulo bluetooth que por default presenta el nombre de "JY-MCU".

Imagen de la ventana de configuración de puertos bluetooth.


Una vez echo esto solo tenemos que identificar el numero de puerto de comunicación nos agrego en la configuración y seleccionamos este puerto en el panel frontal de LabVIEW, para comenzar a correr el VI.


Gracias por ver el vídeo.


lunes, 16 de enero de 2017

Sensor BMP180 con Arduino, Características

Sensor BMP180, definiciones y funcionamiento.




El sensor BMP180 es un sensor de presión atmosférica de alta precisión.

Diagrama de conexión con placa Arduino UNO.


Figura de diagrama de conexión BMP180 y Arduino UNO.

Para usar este sensor con Arduino podemos utilizar la librería BMP180, que puedes descargar en el siguiente enlace: https://goo.gl/cbhBLy

Una vez que hayas descargado e instalado la librería, puedes comenzar utilizando los ejemplos de código que contiene la librería.


Figura de donde localizamos los ejemplos de la librería BMP180.

Abrimos el sketch de ejemplo y lo cargamos a la placa Arduino, abrimos el puerto serial a 9600 baudios. Recibiremos un mensaje diagnóstico, en dado caso que nos arroje un mensaje de que no encuentra el sensor debemos revisar si nuestra conexión sea correcta.


Figura del monitor serial que muestra las lecturas obtenidas del sensor BMP180.

Necesitas mas información sobre la presión atmosférica y como obtener la altitud, continua leyendo los párrafos debajo.

¿Qué es la presión atmosférica?

La presión es una fuerza “presión” ejercida sobre un área. La unidad de medida de la presión más común son las libras por pulgada al cuadrado (psi). Una libra ejerciendo presión sobre un área es igual a 1psi. En el sistema internacional es el newton por metro cuadrado, el cual se le denomina Pascal (Pa).


Figura de representación de la presión atmosférica.

Hay varias situaciones donde la presión puede ser medida (gravedad, tirones, etc.), pero en este artículo nos interesa la presión atmosférica, la cual es la fuerza que el aire está ejerciendo sobre todas las cosas, incluyéndonos. La presión atmosférica es creada por el peso de los gases en la atmosfera. Normalmente no notamos el peso del aire, pero si colocamos una columna de 1 pulgada de grosor con aire, desde el nivel del mar hasta tocar la atmosfera, esta podría pesar alrededor de 14.7 libras (1 cm de grosor de aire podría pesar alrededor de 1kg). Este peso, ejerce una presión en la base de la columna, la presión atmosférica generada en esta columna es la que nosotros podemos medir con sensores como el BMP180.

Debido a que una columna de aire, de 1 pulgada de grosor pesa alrededor de 14.7 libras, y está presionando un área de 1 pulgada al cuadrado, la presión promedio sobre el nivel del mar es aproximadamente 14.7 libras por pulgada cuadrada (psi), o 101,325 Pascales. Esto puede incrementar cerca de 4% por cada 1000 pies (o 300 metros) que se hacienda. A mayor altura, menor presión es ejercida, porque la base del punto más alto situado en la atmosfera es mucho más corta y por consiguiente tiene menor peso. Teniendo estos datos como referencia podemos calcular la altitud a la que nos encontremos.


Figura de columna de aire, representando la presión atmosferica.

Nota: La presión del aire a 12,500 pies (3810 metros) es la mitad que en el nivel del mar.
El BMP180 obtiene la presión absoluta en pascales (Pa). 1 Pa es una unidad de medida relativamente pequeña, aproximadamente la presión que ejerce una hoja de papel sobre una mesa. Podemos referirnos a unidades más grandes en unidades de hectopascales (1 hPa = 100 Pa) o kilo pascales (1 kPa = 1000 Pa). La librería de Arduino nos muestra los datos obtenidos en valores de punto flotante en hPa, el cual aparece en milibares (mbar).

Aquí tenemos algunas conversiones de unidades de presión:

1 hPa = 100 Pa = 1 mbar = 0.001 bar
1 hPa = 0.75006168 Torr
1 hPa = 0.01450377 psi (pounds per square inch “libras por pulgada al cuadrado”)
1 hPa = 0.02953337 inHg (Pulgadas de mercurio)
1 hpa = 0.00098692 atm (atmosferas estándar)

El efecto de la temperatura

La temperatura afecta la densidad de un gas, y la densidad afecta la masa de un gas, y la masa afecta la presión, por lo cual concluimos que la presión atmosférica sufrirá cambios dramáticos en relación a la temperatura del ambiente.
El BMP180 incluye un sensor de precisión para medir los cambios de temperatura en el ambiente. Para el funcionamiento del sensor, primero necesitamos leer la temperatura, después se le añade una lectura inicial de la presión para al final obtener una medida final de temperatura y presión.
Medición de la presión absoluta
Como hemos mencionado, si requerimos la medición de la presión absoluta, todo lo que tenemos que hacer es obtener la lectura de la temperatura. La lectura de la presión final está dada en hPa = milibares. Si se desea también se puede realizar la conversión de unidades dependiendo de los factores de conversión que se desee.
NOTA: la presión absoluta atmosférica varía dependiendo de la altitud y del clima al cual nos encontremos.


Observaciones sobre el clima

La presión atmosférica en cualquier lugar de la tierra ( o en cualquier lugar de la atmosfera) no es constante. La interacción entre los giros de la tierra, eje de inclinación, y muchos otros factores resultan con el movimiento de las áreas o zonas de presión más altas y bajas, las cuales ocasionan las variaciones en el clima que vemos todos los días. Por la observación de los cambios de presión, podemos predecir pequeños cambios en el clima. Por ejemplo, las pequeñas disminuciones en la lectura de la presión usualmente indican que el clima es húmedo o una tormenta esta se acerca. Un incremento en el clima indica que el día está siendo soleado.
Pero recordemos también que la presión atmosférica también varía dependiendo de la altitud.


Determinando la altitud

Debido a que la presión es directamente proporcional a la altitud, podemos usar el sensor de presión absoluta para medir la altitud.
La medida promedio de la presión atmosférica a nivel del mar es de 1013.25 hPa (o mbar). Esto puede variar dependiendo del incremento del vacío en el espacio. Ahora podemos obtener la altitud dependiendo de la medición de la presion (P y pₒ) usando la siguiente ecuación.
Exactitud: ¿Qué tan exacto es? El nivel de error en teoría del sensor BMP180 es de 0.25m (aproximadamente pulgadas), Sin embargo, en la práctica podemos detectar un error del orden de 1m (40 pulgadas).
Clima: También debemos recordar que la presión sufre cambios dependiendo del clima, tenemos que tener en cuenta que esto puede afectar nuestras mediciones.
Altitud máxima: El BMP180 no puede medir todos los tipos de vacío (o fuera del espacio). Esta indicado que su límite es cerca de 300 hPa (mbar), el cual corresponde a una altitud alrededor de 3000m o 30,000 pies. Las personas que han estado a estas alturas volando y han experimentado resultandos exitosos con este sensor, pero esto no es garantizado. (para obtener medidas a gran altura podríamos considerar usar un GPS).
Altitud minina: De igual forma el sensor no puede estar situado a una presion mayor a 1100 hPa o 16 psi, los cuales corresponde cerca de 500 pies por debajo del nivel del mar. Este sensor no es buena opción para utilizarlo en un sumergible, o mediciones de gas comprimido.


Tips y Recomendaciones:


El voltaje correcto de alimentación: El sensor BMP180 funciona con voltajes desde 1.8V a 3.6V. el voltaje recomendado es de 3.3V. Nunca lo conecte a un voltaje mayor a 3.6V.

Dale aire: Recordar que el sensor BMP180 necesita estar en contacto con el aire del ambiente para medir su presión, así que no lo coloque en lugares cerrados. Puede adjuntarle pequeñas compuertas que permitan la circulación de este, en caso de que lo tenga en un recipiente.

Pero no demasiado aire: De otra forma, una explosión como aire en movimiento por ejemplo al movimiento de un auto, ya que causa momentáneas variaciones en la medición que pueden afectar las lecturas de las mismas. Protégelo el dispositivo de fuertes corrientes de aire.

Mantenlo fresco: Porque una medición exacta de temperatura es necesaria para el cálculo de la presión, intenta no exponerlo a cambios rápidos de temperatura.


Mantenlo seco: El BMP180 es sensible a la humedad. No lo sumerja o deje en contacto con líquidos.

viernes, 13 de enero de 2017

Dagrama de conexiones del Video "Control de motor dc con LabVIEW sin utilizar algún toolkit"


Imagen de Fritzing.