lunes, 22 de noviembre de 2010
PROYECTO FINAL
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
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
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
-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
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
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
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:
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.
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
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: