Encendiendo un Led desde Excel

Estándar

Hola!

Este cuatrimestre me ha tocado cursar la materia de Robotica en la escuela y ha sido sumamente interesante ya que me he tenido que dar a la tarea de investigar como programar los puertos y algo de electronica…

Para ello opte por comprar un adaptador USB/RS-232 y un convertidor RS-232 de macho a hembra para facilitar las conexiones.

Me decide por el RS-232 ya que es mas facil la programacion, ademas de anteriormente compre un adaptador de USB/Paralelo y mi NetBook no lo detecto como puerto.

En mis investigaciones encontre varias alternativas para poder prender un Led. Es dedir utilizar la PC como un control de encendido y apagado, ya que si podemos prender un simple led, tambien podremos prender y apagar cualquier equipo electronico (lamparas, licuadoras, etc…). Pero por ahora solo veremos como manipular el encendido y apagado de un LED.

Hay varias maneras para esto:

  1. Usar la API de Windows
  2. Usar el control NetComm que reemplaza al control Comm brindado por VB
  3. Hacer uso del manejo de archivos (la cual es sumamente facil desde VBA y VB sin usar controles adicionales)

Bien, describire la opcion tres. Esta es la lista de materiales:

  • Resistencia de 150 o 220 Ohms
  • Led de cualquier color, de preferencia rojo
  • Adaptador USB/RS-232
  • Convertidor RS-232 de macho a hembra
  • Excel 2003/2007 (no he probado el 2010)

Despues a realizar las conexiones correspondientes para realizar las pruebas de encendido y apagado.

Aqui podemos observar como se debe conectarse el LED con la resistencia (conexion serie). La resistencia la usamos para disminuir el voltaje que pasara por el LED para evitar dañarlo ya que el puerto nos suministra poco mas de 5 Volts y el LED solo consume 1.5 Volts.

Se puede utilizar un protoboard o caimanes para conectar estos componentes, en este caso los conecte usando sus propias terminales.

Y por ultimo paso con respecto a la conexion, conectamos la resistencia al pin #4 y la terminal del led (en este caso el catodo) al pin #5 (Tierra). Para identificar el catodo se debe buscar una muesca en el encapsulado del Led (el cual nos identifica el catodo). El catodo siempre se conecta al negativo para ser encendido, en cuanto a la resistencia, da igual como se conecte, no tiene polaridad.

Antes de iniciar con la programacion, debemos averigual el numero de COM asignado al puerto serie (db9), para ello damos click derecho a mi PC->Propiedades->Hardware->Administrador de Dispositivos y damos doble click en Puertos (COM y LPT) y nos aparecerala lista de puertos disponibles en nuestro equipo. En mi caso solo dispongo de un puerto serial al cual se le asigno el COM5.

Ya en Excel nos vamos al editor de VBA y nos posicionamos en la ventana de inmediato y escribimos el codigo que se ve señalado, la primera instruccion prende el led y la segunda lo apaga (close). En caso de no tener visible la ventana inmediato, presionar: Ctrl+G para hacerla visible.

Y he ahi la forma de como usar nuestra PC como dentro de control de encendido y apagado utilizando VBA/Excel y sin usar controles adicionales como el NetComm/Comm.

Ahora, todo es cuestion de imaginacion para las aplicaciones que se puedan realizar en base a esto.

Por ultimo dejo este codigo que prende y apaga el LED:

Sub Luces()

For i = 1 To 10                                    ‘Prende y apaga el LED 10 veces
Open “COM5” For Input As #1     ‘Abre el puerto: Prende LED
Tempo                                             ‘Pausa
Close                                               ‘Cierra el puerto: Apaga LED
Tempo                                             ‘Pausa
Next i

End Sub

‘Gastar tiempo de procesador para crear una pausa de unos microsegundos. Ajustese de acuerdo
‘a las necesidades.
Private Sub Tempo()
Dim a As Long
Dim b As Long

For a = 1 To 1000000
b = a
Next a
End Sub

Inserten el codigo en un nuevo modulo y ejecutenlo y diviertanse con los destellos de encendido y apagado. Recuerden cambiar el nombre del COM dependiendo de como este instalado en sus PC’s.

Aqui les dejo el video para que vean el funcionamiento:

Anuncios

17 comentarios en “Encendiendo un Led desde Excel

  1. alirio

    buen trabajo amigo, pero como puedo hacer ese trabajo en excel vba? no se como descargalo… si me puedes echar una manito te lo agradeseria…. gracias de antemao

  2. ERIKA

    Buenas tardes, tengo una duda, por lo que veo el codigo que nos anexas es solo para un boton que vaya a crear en VB verdad? y si yo quisiera dos botones, uno de encender y otro de apagar. ¿que tendria que poner de codigo?

    • Wow! También una chica visitando mi pagina? que honrado me siento! 🙂
      A que te dedicas amiga?

      Respecto a tu pregunta el código quedaría así:

      ‘COM3 es el puerto asignado en mi maquina, por lo tanto,,, puede varias entre maquinas
      Sub prende()
      Open “COM3” For Input As #1
      End Sub

      Sub apaga()
      Close ‘cierra todos los archivos abiertos
      End Sub

  3. Carolina

    Buenos Días, Interesante tutorial! Era lo que estaba buscando! Muchas Gracias. Solo una pregunta, ya lo has probado con el 2010? Bueno, si no, tendré que usar el 2007.
    Saludos!

    • Wow! otra chica? que honor!

      Caro… no, no lo he probado en el 2010, pero seria bueno que tu lo probaras y compartieras tu experiencia en este espacio. Yo me imagino que debe funcionar, pero ya sabemos que Microsoft mete y saca cosas en cada nueva versión!

      Inténtalo! y dinos que sucedió, ok!

      Saludos

    • Me alegra que esta información te haya sido de suma utilidad Andrea y por aquí andamos… quizás mas adelante suba mas información para ampliar este tema al igual de como prender un led pero programando en Python.

      Saludos!

    • Que tipo de aplicacion tienes en mente? Me parece que para envio de datos tendrias que utilizar un buffer o algo similar… En unas semanas, espero estar subiendo mas informacion y enlaces relacionadas con este tema!

  4. Luis Vera

    Hola, estoy intentando realizar un proyecto similar, tengo que hacer que un puerto usb se active y desactive desde excel utilizando VB-excel, el proyecto se trata de utilizar un lector de códigos de barras que cuando lea un código, este se registre en excel y cuando reconozca dicho código que mande activar el puerto USB por un tiempo y luego se desactive…podrías ayudarme ?, te lo agradecería infinitamente…

    Gracias.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s