lunes, 22 de noviembre de 2010

PROYECTO FINAL

Se va acercando el final de la cursada y llegamos al último de nuestros trabajos prácticos de laboratorio de electrónica II, el Proyecto Final. Este trabajo es a elección de cada grupo y consiste en desarrollar un determinado dispositivo valiéndose de los conocimientos adquiridos hasta el momento. Nosotros hemos decidido construir nuestro "Girasol Electrónico"; la finalidad principal del dispositivo es optimizar la eficiencia de operación y obtención de energía de los paneles solares a través de la búsqueda de la mayor cantidad de luz posible. Mediante dos sensores de luminosidad los paneles fotovoltáicos se orientarán en la dirección donde mayor cantidad de luz encuentren. Como agregado decidimos poner una carga, es decir, un elemento que se valga de esta energía aprovechada para funcionar (además del circuito en si). Diseñamos entonces un circuito de alimentación auxiliar: Mientras existe luz ambiental los paneles están generando energía eléctrica (en los archivos presentados a continuacíon se explica de manera simple cómo es que funcionan estos dispositivos), de esta forma alimentamos el servo que genera el movimiento de orientación, los sensores LDR, el microcontrolador PIC12F683 (cerebro de toda la operación; elegido por ser un uC sencillo de la familia PIC y por poseer, entre otras cosas, entradas capaces de adquirir y procesar señales analógicas, necesarias para la implementación de los LDR) y un circuito que carga una batería. Cuando la luz ambiental ya no es suficiente para alimentar todo el circuito, el servo se quedará inmóvil (dado que no tendría sentido buscar una orientación en un ambiente sin luz, sin mencionar que la energía suministrada por los paneles en este caso es insuficiente para lograrlo) y se activará el antes mencionado circuito de alimentación auxiliar: Ahora se desactiva el circuito de carga de la batería y ésta pasa a alimentar al Led, que permanecerá encendido hasta que la luz ambiente sea suficiente para lograr poner en marcha nuevamente al circuito de orientación (Para poder apagar la luz pusimos una llave que corta el circuito del Led; y para poder desactivar el girasol tenemos otra llave que corta el suministro de los paneles).
En este archivo podrán encontrar una descripción general del desarrollo del trabajo (circuito utilizado, diagrama de bloques, funcionamiento, etc.)-Girasol electrónico-.

El siguiente video muestra una simulación del proyecto desarrollado y su funcionamiento:


El plano 3d del modelo es el siguiente:


Ahora salgamos un momento del desarrollo mecánico del trabajo y pasemos a la electrónica:
-DISEÑO DE PLACA: La placa del circuito fué diseñada en la aplicación Protel 99 SE (Archivo del trabajo) resultando de ello los siguientes circuitos esquemático y PCB:



-PROGRAMACIÓN:
Para la programación del cerebro de nuestro proyecto utilizamos el lenguaje C, implementando la aplicación "PIC C Compiler (CCS)". La elección fue fundamentada principalmente por la mayor facilidad de desarrollo del programa frente a otras aplicaciones o lenguajes, además de que contamos con toda la configuración interna de nuestro PIC. A continuación mostraremos y describiremos paso a paso los códigos utilizados para hacerlo funcionar:


Ya armado el girasol y posteriormente desarrollada su programación, realizamos las primeras pruebas:


Los siguientes links corresponden a las diferentes páginas que hemos visitado para lograr la meta dipuesta:
-Página visitada para desarrollar el circuito del LED, sensible a los cambios de iluminación:
http://www.electro-tech-online.com/electronic-projects-design-ideas-reviews/109227-reverse-engineering-solar-garden-light.html
-Páginas y foros visitados para llevar a cabo la programación:
http://picmania.garcia-cuervo.net/picc.php
http://robots-argentina.com.ar/MotorServo_basico.htm

Este link permite descargar un archivo PDF que usamos como guía en la programación para el giro del servo (SERVOS).

Bueno, así concluimos con el proyecto, y con este ciclo lectivo de Laboratorio II.

lunes, 15 de noviembre de 2010

TPNº15 "Contador" ----- Décimaoctava clase

En esta ocasión desarrollaremos un programa para el PIC16F84A que nos permitirá realizar un conteo regresivo en la placa ejercitadora (TPNº15). Utilizamos nuevamente los dos lenguajes de programación que conocemos:
Assembler (A continuación los códigos imlementados en este lenguaje):

C (A continuación los códigos imlementados en este lenguaje):

Al igual que en el trabajo anterior, antes de escribir nuestro microcontrolador para llevar el programa a la práctica, simulamos su funcionamiento a través del Multisim:


Comprobado el funcionamiento del programa en la PC, lo llevamos a la práctica:

martes, 9 de noviembre de 2010

TPNº14 "Secuencias" ---- Décimaséptima clase

Para nuestra primera práctica con la placa ejercitadora construida a principio de año, diseñaremos un programa que ejecute una serie de secuencias de encendido y apagado de los leds, controladas a partir de llaves (TPNº14).
Lo que haremos será generar cuatro secuencias distintas, cada una de las cuáles se ejecutará cuando las llaves se encuentren en una posición específica. El trabajo lo desarrollamos en dos lenguajes de programación:

-Assembler:


-C:


Veamos cómo resultan en la simulación por computadora (El programa utilizado a continuación es el "ISIS Professional -Multisim-"):

Tras una simulación exitosa, pasamos a la práctica. A continuación, antes de ver el resultado final en la placa ejercitadora, vamos a dar una breve explicación de cómo "escribir" el programa en el microcontrolador a través de nuestra placa programadora PIC KIT 2 anteriormente descripta:

jueves, 2 de septiembre de 2010

TPNº13 "Microcontroladores" ---- Décimasexta clase

Jueves 02 de septiembre - En esta ocasión vamos a adentrarnos un poco más en el mundo de la programación creando nuestra propia secuencia de instrucciones para un microcontrolador. Lo que haremos será crear un programa capaz de activar una salida con una frecuencia, en nuestro caso de 330Hz, comandada a traves de un pulsador.

-En el siguiente apartado incluiremos una guía de como comenzar a utilizar el MPLAB:



A continuación vemos la lista de instruciones que fue necesario confeccionar para lograr el objetivo planteado en programación "asembler" (En el incluimos una serie de acotaciones para explicar que realiza cada instrucción):


Veamos una simulación de su funcionamiento en Proteus:




-Ahora vamos a llegar al mismo resultado pero esta vez valiéndonos de la programación en C, veamos la lista de instrucciones necesarias:



En este caso intentaremos lograr una frecuencia de 500Hz a la salida. Acá hay una miniguia de como comenzar a utilizar el CCS.



Veamos una simulación del funcionamiento del programa:

Programación --- Décima Quinta Clase

Jueves 2 de Septiembre - En esta clase veremos las distintas formas de programación de un microcontrolador.
Vimos hasta el momento 2 tipos difertentes llamados "Asembler" y "Programación en C".

Asembler: En este tipo de programación utilizamos la aplicación MPLAB IDE v8.40.

Este programa genera un tipo de documento en el cual podemos escribir las diferences instrucciones de los uC (Nosotros utilizamos el PIC16F84A, por eso usamos las instrucciones correspondiente a este uC).

Para programar en C tenemos varios programas:
-----------C18: Es de MICROCHIP, sirve solo para los uC's serie 18F.
-----------C30: Idem del anterior, solo que sirve para uC's más grandes.
-----------JAL: Esta muy restringido en dispositivos, en la programación y en la actualización.
-----------SDCC: Cuyas carcterísticas son muy similares a las del JAL.
-----------CC5X: El problema con este programa es que puede llegar a presentar inconvenientes con la licencia.
-----------CCS: Dentro de los nombrados presenta mayores facilidades en su utilización y una gran cantidad de librerías (Este es el que vamos a usar).
-----------HI-TECH: Tiene soporte de MICROCHIP, posee menos funciones lo que hace más complejo su uso.

------*NOTA: Estos últimos dos se integran al MPLAB, puedo usar el entorno del MPLAB para escribir el código; y desde el MPLAB lo puedo compilar.

Para llevar a la práctica todas las instrucciones establecidas a traves de estas aplicaciones al grabarlas en un uC necesitaremos de un programador, sin embargo esta no es la única opción.

Hoy en día algunos microcontroladores incorporan ICSP (In Circuit Serial Programming, programación serie incorporada) o LVP (Low Voltage Programming, programación a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Para la ICSP se usan los pines RB6 y RB7 (En algunos modelos pueden usarse otros pines como el GP0 y GP1 o el RA0 y RA1) como clock y datos y el MCLR para activar el modo programación aplicando un voltaje de 13 voltios.

Otra forma de programar es el BootLoader, un pequeño conjunto de instrucciones que forman un programa y se graban, en este caso en un microcontrolador, para permitir un posterior manejo y actualización de sus programas internos (firmware) sin necesidad de utilizar programadores (hardware) específicos. Es decir, utilizas un programador de microcontroladores una única vez para cargarle el mencionado BootLoader al microcontrolador y luego te bastará con una sencilla aplicación en tu ordenador para cambiar a tu antojo el funcionamiento de tus sistemas. Todo mediante una conexión al puerto USB

Nosotros optamos por el programador, debido a que unestro uC no tenia ninguna de las opciones anteriores, para empezar, decidimos comprar el nuestro.
Razones por las cuales no decidimos armarlo: Básicamente por lo siguiente, la diferencia de costos es mínima y al comprarlo no solo ahorramos trabajo sino que garantizamos un buen funcionamineto del instrumento desde el comienzo.
Entonces comenzamos a indagar acerca de los distintos programadores disponibles en el mercado.
De todas las opciones que encontramos elegimos el programador "PICKIT 2" de Microchip por las siguientes razones:
Tiene salida USB, lo que resulta mas practico a la hora de conectarlo a la PC ya que garantizamos su funcionamiento (si posee una salida, como ser, para "Port paralelo" o "Port RS232", podríamos tener problemas con la alimentación del programador, sin mencionar las probabilidades que existen de no contar con entradas de estas características dependiendo
del ordenador que utilizemos).
Posee un zócalo ZIF-PK que nos da una mayor facilidad para conectar y desconectar el microcontrolador a la placa del programador y nos permite trabajar con una amplia gama de uC's.


sábado, 28 de agosto de 2010

TPNº7 "Comparadores analógicos "--- Decima séptima clase

Jueves 26 de Agosto - Hoy realizamos un trabajo con el objeto de comprender el funcionamiento de un comparador analógico (TPNº7); en esta ocasión nos basamos en el funcionamiento del circuito integrado LM324.

Para empezar miremos un poco el circuito:


La primera experiencia consistió en oscurecer el sensor de luz (LDR) y observar como reaccionaba el sistema.


Es así como esto se llevó a cabo:



Al final del video anterior lo que hacemos es acercar la lámpara encendida al sensor, entonces se produce una variación constante en la cantidad de luz que recibe el LDR. Vamos a numerar los sucesos para que sea más fácil de comprender:

1-Cuando el LDR recibe poca cantidad de luz, la lámpara se enciende.
2-Al acercar la lámpara encendida, el sensor reacciona por el aumento de luz y causa entonces que la lámpara se apague.
3-Inmediatamente la cantidad de luz disminuye a tal punto en el entorno del sensor que la lámpara vuelve a encenderse; aquí regresamos al primer punto y se vuelve a cuplir el ciclo.

Podemos concluir que el sistema no es estable ya que reacciona de distintas formas ante variaciones muy pequeñas en los parámetros externos (en este caso: luz), es decir, es muy sensible. Este circuito, por ejemplo, no nos sería útil para efectuar un control de luz crepuscular, puesto que la elevada sensibilidad haría variar su respuesta constantemente.

Ahora veamos qué ocurre si efectuamos unas modificaciones en el circuito:



Llevado a la práctica:



De esta manera logramos reducir la sensibilidad ya que ahora la reacción del circuito a los cambios de luminosidad está dada por dos valores de tensión de referencia y no uno como ocurriera anteriormente:


-Cuando la tensión de referencia supere el valor de Vref1 la lámpara se enciende y no se apaga hasta que el esta caída sea menor que Vref2.

Otra forma de representar esto es a traves del gráfico de histéresis:

-Este gráfico representa el estado en que debe encontrarse el circuito para reaccionar de determinada manera. Aquí se ve que a los 6,5 V reaccionará de una forma: dará la alimentación sufuciente a la lámpara para que esta se encienda; y al disminuir esta tensión a 1,3 V la alimentación suministrada caerá a tal punto que la lámpara se apagará.

En este caso la diferencia entre el valor de tensión de encendido y apagado de la lámpara es de 4,7V, este es el factor que determina que la sensibilidad disminuya.
Logramos con esto que el sistema sea mucho más estable y ahora sí podríamos llegar a implementar un circuito de estas características si quisieramos diseñar un control de luz crepuscular.

jueves, 5 de agosto de 2010

TPNº6 "Restador"--- Décima Sexta Clase

Jueves 05 de Agosto - Hoy comenzamos el TPNº6 "Restador".
Una vez confeccionado el siguiente circuito en la protoboard:




Debemos calcular Rf y R1; para esto debemos elegir un valor para cada una de estas resistencias y comprobar que se cumpla la siguiente relación:


En valores comerciales nosotros usamos las siguientes:
Rf=1Kohm R1=39ohm

En el ejercicio tres debimos simular una temperatura de 30 y 40 ºC; para hacerlo variamos los valores de los potenciómetros R1 y Rf:



Para cada caso respectivamente:
R1=0,98 kohm
Rf =o,93Kohm

Gráfico de Vo en función de Vc: