jueves, 25 de noviembre de 2010

Trabajo Práctico Final: Presentacion en PP y videos.

Subimos videos del trabajo práctico final y el PP explicativo del mismo, esperamos sea de su agrado, el grupo 8 de 5to 3ra.















Link de descarga del Powerpoint:

http://www.megaupload.com/?d=66JP5HTA

martes, 16 de noviembre de 2010

Trabajos prácticos 13, 14 y 15: Programación

En los siguientes trabajos prácticos debimos programar el microcontrolador PIC16F84 para lograr distintos resultados. Tienen como objetivo la investigación y el aprendizaje del funcionamiento de dos lenguajes de programación, estos son: Assembler, y C.

Un lenguaje de programación es una forma de darle instrucciones y directivas a un microcontrolador, sin la necesidad de hablar el lenguaje de la máquina misma.
La traducción de un lenguaje al otro, la hace un software a través de una acción que llamamos "compilar". En nuestro caso, utilizamos MPLAB para compilar el lenguaje Assembler, y CCS para compilar C.
Luego de compilar el código fuente, el programa nos crea un nuevo archivo; este es el que debemos cargar en el microcontrolador mediante la plaqueta programadora correspondiente.

El Assembler, es el lenguaje más cercano al idioma de la máquina, es muy útil para entender cómo trabaja el microcontrolador y también ocupa poco espacio en memoria.
La ventaja del C sobre este es su simplicidad, la cual ahorra mucho tiempo. Pero tiene como consecuencia la utilización de más memoria ROM.

El procesador del PIC16F84 cuenta con arquitectura RISC. Esto quiere decir que el repertorio de instrucciones que pueden reconocer y procesar es reducido (son 35 instrucciones en total).


En el trabajo práctico 13 se busca que al presionar un pulsador, un LED comience a titilar y, al pulsarlo nuevamente, este se apague.

Así es como lo hicimos en Assembler:



Comparemoslo con el mismo trabajo, pero escrito en C:



Se ve claramente la diferencia. El objetivo deseado es sumamente fácil de lograr utilizando C como lenguaje de programación, y no tenemos que preocuparnos por el espacio ocupado debido a que es una rutina muy breve.

Simulación:



Cargado en placa starter:



El trabajo número 14, sirve para mostrar la diferencia, con respecto a comprensión, de ambos idiomas. Assembler requiere más conocimiento del dispositivo, y su análisis es mas tedioso. En cambio en C, es más fácil ordenar el programa a simple vista.

Aquí debíamos realizar varias secuencias comandadas mediante pulsadores. Nosotros armamos cuatro secuencias, cada una comandada por un único pulsador.

Assembler:



C:



Por otro lado, en este trabajo se nota mucho más la diferencia de espacio ocupado en memoria por cada lenguaje.

Simulación:



Cargado en placa starter:



Por último, el trabajo práctico 15; donde tuvimos que armar una cuenta descendente en un display de 7 segmentos, la cual se activa con un pulsador. Además, al llegar a cero, el display debe parpadear.

Assembler:



C:



Simulación:



Cargado en placa starter:



Por alguna razón no se ve como en la simulación. Creemos que el display no es el mismo que el seleccionado en el Proteus.

jueves, 28 de octubre de 2010

Trabajo práctico 7:

Objetivos:
Informar adecuadamente la actividad desarrollada en este trabajo práctico.
Conocer el funcionamiento de un amplificador operacional de tensión como comparador.
Implementar un sistema de control On-Off.
Evaluar el uso de la histéresis para compensar el comportamiento del sistema.


Armamos el circuito de la siguiente figura:



Este está compuesto principalmente por un circuito integrado LM324 (amplificador operacional), un LDR (resistor dependiente de la luz), un relay y una lámpara de 12v.

El objetivo del mismo es encender automáticamente la lámpara cuando se oscurece el ambiente, y apagarla cuando se vuelve a iluminar.

Acercamos la lámpara al sensor como se pide en el ejercicio 3. El sistema entró en un bucle de encendido y apagada constante. Esto se debe a que al acercar la lámpara oscurecemos el sensor, por lo tanto esta se prenda; y ahora pasa a entregarle luz al LDR, el cual de la orden de apagar la lámpara; y así sucesivamente.
El sistema se vuelve obsoleto.

El sistema no es estable, debido a que cambia de estado como consecuencia de variaciones muy pequeñas en la luz ambiental. Por esta razón, no lo utilizaría como control de luz crepuscular; ya que existiría un momento del día que daría lugar al bucle explicado en el punto anterior.
Para evitar esto, se debería asignar dos valores de tensión distintos al apagado y al encendido (con un margen de separación mas amplio). Para lograrlo, hay que reformar el circuito como muestra la figura:



Con los cambios realizados, el circuito funciona correctamente, ahora podemos armar la curva de histéresis que deja clara la explicación anterior.



Imágenes del circuito, en sus dos etapas:





miércoles, 25 de agosto de 2010

Trabajo práctico 12: Programador.

Este trabajo práctico consiste en obtener, ya sea mediante la compra o el armado, del programador que utilizaremos durante el resto del año para el programado de microcontroladores PIC.
En nuestro caso, decidimos comprarlo por las siguientes razones:
- Nos aseguramos el correcto funcionamiento del mismo, ya que evitamos los típicos errores del armado casero.
- Contamos con una garantía de 12 meses.
- Llegamos a la conclusión de que no justifica invertir dinero en los componentes por separado para el armado de dicho programador, debido a que la diferencia de precio entre uno y otro es muy pequeña.

El programador que compramos es lo que se llama "clon" del PICKIT2 original. El mismo posee las siguientes características:

- Alta velocidad de trabajo.
- Alimentación y datos por puerto USB.
- 100% compatible con el original de microchip.
- Conector ICSP RJ11 y Easy Jack.
- Adaptable zócalo ZIF.
- Soporta PICs: 10F, 12F, 16F, 18F, 24HJ, 30F, 33F.
- Soporta EEPROM: 93LC, 24LC, 11LC, 25LC.

Al día de la fecha, el programador cuesta $120, y el zócalo $55, en total pagamos $175.

Imágenes del programador adquirido:



jueves, 12 de agosto de 2010

Trabajo práctico 6: Restador.

Objetivos:
Implementar mediante un restador un adaptador de escala en corriente continua.
Informar adecuadamente la actividad desarrollada en este trabajo práctico.


Dicho circuito resta las señales de entrada y el resultado se amplifica con la ganancia. También hay que destacar que un amplificador operacional en esta configuración posee una Rs muy baja.


La actividad nos presenta un transductor de temperatura (simulado) que produce la siguiente respuesta en tensión:



La idea del proyecto es ajustar esa variación a:

Vo(30ºC)=0v
Vo(40ºC)=5v

De esta manera ampliamos la resolución y mejoramos la exactitud. En otras palabras, contamos con más valores intermedios.

En la imagen del circuito faltan valores de algunas resistencias, tuvimos que calcularlos. Lo logramos gracias a esta ecuación:



Primero calculamos que Vref es 1v; porque cuando Vo debe ser 0, Vc es igual a 1v. Por lo tanto, siendo Vref=1v, Vc-Vref=0, y por ende el producto da también 0v a la salida.
Teniendo Vref como dato, le damos un valor a Rf y calculamos la resistencia restante R1. Elegimos Rf=1k.



Ajustamos Vc=1v.



Regulamos R3 para lograr Vo=0v.



Luego ajustamos Vc=3v.



Y regulamos Rf para lograr Vo=5v.



La gráfica para Vo en función de la temperatura es la siguiente:



Imágenes del circuito:





jueves, 24 de junio de 2010

Trabajo práctico 5: Amplificadores operacionales.

Objetivos:
Conocer el uso del Amplificador Operacional realimentado.
Conocer las tres de sus configuraciones básicas.
Evaluar sus características.
Informar adecuadamente la actividad desarrollada en este trabajo práctico.


Un amplificador operacional es un amplificador diferencial integrado, estos pueden ser utilizados a lazo abierto o lazo cerrado. Cuando empleamos un operacional a lazo cerrado (como indica el punto 1 del trabajo práctico) nos damos cuenta que la ganancia es resultado entre el cociente de la impedancia de realimentación (Rf) y la impedancia de entrada (Rs).

Para el punto 1 usamos un circuito integrado LM741, conectado de la siguiente forma:





Con respecto al potenciómetro atenuador, tuvimos que reemplazarlo por uno de 10KΩ, porque con el de 1KΩ el valor de V no llegaba a los valores máximos y mínimos de las mediciones (1V;-1V)

El LM741 tiene este formato:



Fotos del circuito armado en protoboard:










Para el punto 2 variamos la tensión de entrada mediante el potenciómetro del atenuador buscando los valores de Vs que vemos en la tabla de abajo; y conseguimos ciertos valores de tensión a la salida.



La tabla demuestra que el amplificador operacional es inversor, vemos como la tensión de salida esta invertida en fase con respecto a la de entrada.

Marcamos en un gráfico la tensión Vo y las zonas de amplificación lineal, de saturación y la tensión de offset.





Algunas imágenes de las mediciones:


































En el punto 4 reformamos el circuito anterior para poder anular la tensión residual de offset. Para esto conectamos un potenciómetro de 10KΩ entre las patas 5 y 1 (offset null). Como en esta imagen:



Ahora, el tester marcó 0.024mV.





Ajustamos el generador de señales en 400mVpp 1KHz. Sigue invirtiendo en fase.


Capturas de la pantalla del osciloscopio:




La primera tiene la escala vertical en 100mV, y la segunda en 500mV. No quisimos utilizar diferentes escalas para las distintas señales, en la misma imagen, para que sea clara la amplificación.

Algunas otras imágenes, con el generador de señales ajustado a otras tensiones:



Cuando cambiamos el integrado por el TL081, la señal presentó una distorsión en el semiciclo negativo.



En el siguiente ejercicio aumentamos la frecuencia del generador a 1MHz, y comprobamos que la relacion R1/R2 no coincide en alta frecuencia.



jueves, 3 de junio de 2010

Trabajo práctico 4: Monoestables

Objetivos:
Comprender el principio de funcionamiento de un temporizador.
Calcular sus parámetros.
Implementar distintos esquemas circuitales.
Observar la estabilidad de sus parámetros.
Informar adecuadamente la actividad desarrollada en este trabajo práctico.

Continuamos las prácticas correspondientes al circuito integrado 555; esta vez, en su modo de operación monoestable.
Esta conexión, a diferencia de la vista anteriormente, es no-redisparable. El capacitor está inicialmente descargado; al activar el circuito, este se carga hasta llegar a 2/3 de la tensión de entrada, y vuelve al estado inicial.
De esta manera, la carga solo recibe corriente cuando el capacitor se esta cargando. En este caso, la carga es un LED, el cual se mantendrá prendido durante un tiempo igual al tiempo de carga del capacitor.

El punto 1 nos pide que calculemos un temporizador de 5 segundos. Calculamos Ra para un capacitor de 1000µF de la siguiente forma:



Y armamos:


Comprobamos el correcto funcionamiento, el LED se mantiene prendido 5 segundos después de activado el pulsador.

También diseñamos el circuito del punto 3:


Y armamos la simulación en Proteus:


El circuito funciona correctamente. El led y el buzzer se prenden intermitentemente durante únicamente 5 segundos. Lo logramos mediante la conexión de un astable a la salida de un monoestable. Con el astable conseguimos la intermitencia, mientras que con el monoestable hacemos que esa intermitencia dure un tiempo determinado y se detenga; en este caso, 5 segundos.

Aquí hay una captura del circuito simulado en funcionamiento: