¿qué es un microcontrolador? cap.5

30
Midiendo Rotación · Página 141 Capítulo 5: Midiendo Rotación AJUSTANDO PERILLAS Y MONITOREANDO MÁQUINAS Muchos dueños de casa tienen perillas para controlar las luces de un cuarto. Gire la perilla en una dirección y las luces brillan más, gire la perilla en la dirección inversa y las luces se atenuan. Los trenes usan perillas para controlar la velocidad y dirección del motor. Muchas máquinas tienes perillas o cranks que se usan para afinar la posición de navajas y superficies guias. Las perillas también se encuentran en los equipos de audio, y se usan para ajustar el volumen de los sonidos. La Figura 5-1 muestra un ejemplo simple de un interruptor y una perilla que se gira para para ajustar el volumen de la bocina. Al girar la perilla, un circuito dentro de la bocina cambia, y el volumen de la música de la bocina cambia. Circuitos similares se pueden encontrar dentro de los joysticks, e incluso dentro del servo usado en el Capítulo 4: Controlando el Movimiento. Figura 5-1 Ajuste de Volumen de una Bocina. EL RESISTOR VARIABLE ATRÁS DE LA PERILLA - EL POTENCIOMETRO El dispositivo dentro de muchos sistemas de sonido, perillas, joysticks y servos se llama “potenciometro” y se abrevia frecuentemente “pot” La Figura 5-2 muestra la imagen de algunos potenciometros comunes. Observe que todos ellos tienen tres pines:

Upload: lorenzo-m-oliver-bustos

Post on 07-Mar-2016

221 views

Category:

Documents


1 download

DESCRIPTION

¿Qué es un Microcontrolador? Midiendo Rotación

TRANSCRIPT

Page 1: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 141 Capítulo 5: Midiendo Rotación

AJUSTANDO PERILLAS Y MONITOREANDO MÁQUINAS Muchos dueños de casa tienen perillas para controlar las luces de un cuarto. Gire la perilla en una dirección y las luces brillan más, gire la perilla en la dirección inversa y las luces se atenuan. Los trenes usan perillas para controlar la velocidad y dirección del motor. Muchas máquinas tienes perillas o cranks que se usan para afinar la posición de navajas y superficies guias. Las perillas también se encuentran en los equipos de audio, y se usan para ajustar el volumen de los sonidos. La Figura 5-1 muestra un ejemplo simple de un interruptor y una perilla que se gira para para ajustar el volumen de la bocina. Al girar la perilla, un circuito dentro de la bocina cambia, y el volumen de la música de la bocina cambia. Circuitos similares se pueden encontrar dentro de los joysticks, e incluso dentro del servo usado en el Capítulo 4: Controlando el Movimiento.

Figura 5-1 Ajuste de Volumen de una Bocina.

EL RESISTOR VARIABLE ATRÁS DE LA PERILLA - EL POTENCIOMETRO El dispositivo dentro de muchos sistemas de sonido, perillas, joysticks y servos se llama “potenciometro” y se abrevia frecuentemente “pot” La Figura 5-2 muestra la imagen de algunos potenciometros comunes. Observe que todos ellos tienen tres pines:

Page 2: ¿Qué es un Microcontrolador? Cap.5

Página 142 · ¿Qué es un Microcontrolador?

Figura 5-2 Ejemplo de Potenciometros.

La Figura 5-3 muestra el símbolo esquemático y dibujo de un potenciometro que usted usará en este capítulo. Las terminales A y B están conectadas a un elemento resistivo d e 10 K Ω. A la terminal W se le llama Terminal Central y se conecta a un alambre que toca el elemento resistivo desde cero hasta el valor total.

Figura 5-3 Símbolo esquemático y dibujo de un Potenciometro.

La Figura 5-4 muestra como trabaja la terminal central. Conforme usted gira la perilla superior del potenciometro la terminal central hace contacto con el elemento resistivo en diferentes lugares. Conforme gira la perilla en sentido de las manecillas del reloj, la terminal central se acerca a la terminal A, y cuando usted gira la perilla en sentido inverso a las manecillas del reloj, la terminal central se acerca a la terminal B.

Figura 5-4 Ajustando la terminal central del potenciometro.

Page 3: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 143 ACTIVIDAD #1: MIDIENDO Y VERIFICANDO EL CIRCUITO POTENCIOMETRO Al colocar resistores de diferente valor en serie con un LED se tienen diferentes cantidades de corriente fluyendo a través del circuito. Resistores con valores grandes en el circuito LED provocan pequeñas cantidades de corriente que fluyen a través del circuito y el Led se ilumina con poco brillo. Resistores con valores pequeños en el circuito LED provocan mas corriente que fluyen a través del circuito y el Led se ilumina con más brillo. Al conectar las terminales W y A del potenciometro en serie con un LED, usted puede usarlo para ajustar la resistencia del circuito. Esto a su vez ajustra el brillo del LED. En esta actividad usted usará el potenciometro como resistor variable y lo usará para cambiar el brillo del LED.

Partes del Circuito Potenciometro

Un potenciometro de 10 K Ω Un resistor de 220 Ω (rojo-rojo-café) Un LED rojo Un alambre para puente

Construyendo el Circuito de Prueba del Potenciometro.

La Figura 5-5 muestra el circuito que usará para ajustar el brillo del LED con un potenciometro

Construya el circuito que muestra la Figura 5-5..

Sugerencia; Si usted tiene problemas al colocar el potenciometro en los conectores de la Tablilla, observe sus terminales. Si cada una tiene un pequeño doblez, use unas pinzas de punta para enderezarlas y luego vuelva a meterlas en la Tablilla. Cuando las terminales del potenciometro estan derechas pueden mantener mejor contacto con los conectores de la Tablilla.

Page 4: ¿Qué es un Microcontrolador? Cap.5

Página 144 · ¿Qué es un Microcontrolador?

Figura 5-5 Circuito de Prueba Potenciometro-LED

Verificando el Circuito del Potenciometro

Gire el potenciometro en sentido de las manecillas del reloj hasta que llegue a su límite mecánico como lo muestra la Figura 5-6(a)

Presione un poco el potenciometro contra la Tablilla mientra gira la perilla. Para estas actividades el potenciometro necesita estár firmemente colocado en los conectores de la Tablilla. Si no tiene precaución cuando gira la perilla el potenciometro se puede desconectar de los conectores de la tablilla y esto generará mediciones incorrectas. Entonces, aplique un poco de presión hacia abajo mientras gira la perilla del potenciometro para que este firmemente colocado en la Tablilla.

Trátelo con cuidado. Si su potenciometro no gira totalmente, no trate de forzarlo. Solo girelo hasta que alcance su límite mecanico, sino lo hacer se podría romper.

Gradualmente gire el potenciometro en sentido inverso de las manecillas del

reloj a las posiciones que muestras las Figura 5-6 (b), (c), (d), (e) y (f) observando cuanto brilla el LED en cada posición.

Page 5: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 145

(a)

(b) (d)

(e)(c)

(f)

Figura 5-6 Perilla del Potenciometro. Desde (a) hasta (f) se muestra la terminal deslizante del potenciometro ajustada a diferentes posiciones.

Funcionamiento del Circuito del Potenciometro

La resistencia total de su circuito de prueba es 220 Ω más la resistencia de las terminales Ay W del potenciometro. La resistencia entre las terminales A y W aumenta conforme se ajusta la perilla en el sentido de las manecillas del reloj, y este ajuste a su vez reduce la corriente a través del LED haciendo que se atenue.

ACTIVIDAD #2: MIDIENDO LA RESISTENCIA AL MEDIR EL TIEMPO Esta actividad introduce una nueva parte llamada capacitor . Un capacitor se comporta como una bateria recargable que solamente retiene su carga para duraciones cortas de tiempo. Esta actividad también introduce “La Constante de Tiempo” RC, que es una abreviatura de tiempo resistor-capacitor. La constante de tiempo es una medida cuanto tiempo le toma a un capacitor perder cierta cantidad de su carga almacenada cuando le proporciona corriente al resistor. Midiendo la constante de tiempo que le toma al capacitor para descargarse con diferentes valores de resistores y capacitores usted se familiarizará más con la constante de tiempo RC. En esta actividad, usted programará el BASIC Stamp para que cargue un capacitor y luego mida el tiempo que le toma al capacitor descargarse a través de un resistor.

Conociendo al Capacitor

La Figura 5-7 muestra el símbolo esquemático y el dibujo del tipo de capacitor usado en esta actividad. El valor de la Capacitancia se mide en microfarads (μF) y su valor se imprime tipicamente en el capacitor. La forma cilindrica de este capacitor particular se llama “pequeña caja”. Este tipo capacitor se llama “electrolitico” capacitor y se debe manejar con cuidado.

Lea el recuadro de PRECAUCIÓN EN LA SIGUENTE PÁGINA.

Page 6: ¿Qué es un Microcontrolador? Cap.5

Página 146 · ¿Qué es un Microcontrolador?

Precaución: El capacitor tiene una terminal positiva (+) y una negativa (-). La terminal negativa es la que está fija en el cuerpo del capacitor y esta cerca de una raya con un signo negativo (-). Siempre asegurese que conecta las terminales como lo muestra el diagrama del circuito. Si conecta este capacitor incorrectamente lo puede dañar. En algunos circuitos, al conectar incorrectamente este tipo de capacitor y luego conectarle la alimentación hace que se caliente e incluso explote.

Precaución: No aplique má voltaje a un capacitor electrolítico que el que tiene especificado. El voltaje que soporta esta impreso en el cuerpo del capacitor.

Precaución: Se recomienda usar gogles cuando trabaje con este capacitor.

3300 µF

+ -

3300 µF

Figura 5-7 Símbolo esquemático y dibujo de un capacitor de 3300 μF Ponga mucha atención a las terminales y a la conexión de las terminales Positiva y Negativa.

Resistores y partes del Circuito de Tiempo

Un Capacitor de 3300 μF Un Capacitor de 1000 μF Un Resistor de 220 Ω (rojo-rojo-café) Un Resistor de 470 Ω (amarillo-violeta-cafe) Un Resistor de 1 K Ω (café-negro-rojo) Un Resistor de 2 K Ω (rojo-negro-rojo) Un Resistor de 10 Ω (café-rojo-naranja)

Construyendo y Verificando el Circuito de Tiempo Resistor-Capacitor

La Figura 5-8 muestra el circuito esquemático, y la Figura 5-9 muestra el diagrama del alambrad para esta actividad. Tomaremos mediciones de tiempo usando diferentes valores del resistor en donde está colocado el resistor de nombre Ri.

Page 7: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 147

Lea cuidadosamente el siguiente recuadro de SEGURIDAD.

SEGURIDAD

Siempre observe la polaridad cuando conecte el capacitor de 3300 o 1000 μF. Recuerde, la terminal negativa es la terminal que está conectada en el cuerpo del capacitor y esta cercano a la raya con un signo negativo (-). Use la Figur 5-7 para indentificar las terminales (+) y (-)

Su capacitor de 3300 μF trabajará correctamente en este experimento si se asegura que las terminales positiva (+) y negativa (-) están conectadas exactamente como lo muestra la Figura 5-8 y la Figura 5-9.

Nunca invierta las terminales de la fuente de alimentación en el capacitor de 3300 μF o cualquier otro capacitor con polaridad. El voltaje en la terminal positiva (+) debe siempre ser mayor que el voltaje en la terminal negativa (-). Vss es el voltaje menor (0 V) en la Tablilla Board of Education y BASIC Stamp Homework Board. Al conectar la terminal negativa del capacitor en VSS usted se asegura que siempre es correcta la polaridad en las terminales del capacitor.

Nunca aplique voltaje al capacitor que exceda el voltaje impreso en el cuerpo del capacitro.

Use gogles durante esta actividad.

Antes de construir o modificar su circito siempre desconecte la alimentación.

Mantenga alejados sus manos y cara del capacitorcuando conecte la alimentación.

Con la alimentación desconectada, construya el circuito mostrado empezando

con un resistor de 470 Ω colocandolo donde está marcado Ri.

Vss

P7

3300 µF

220 Ω

Ri

R = 470 R = 1 kR = 2 kR = 10 k

1

2

3

4

ΩΩΩ

Ω

Figura 5-8 Esquemático para verificar la descarga del voltaje del circuito RC. Se usarán cuatro diferentes resistores en donde está marcado Rin

Se usarán cuatro diferentes resistores en donde está marcado Rin. Primero, el esquemático se construirá y verificará con Ri = 470 Ω, luego se usará Ri = 1 KΩ.

Page 8: ¿Qué es un Microcontrolador? Cap.5

Página 148 · ¿Qué es un Microcontrolador?

P15P14P13

P9

P4P3

P12P11P10

P8

P6P5

P2P1P0

P7

X2

X3Vdd VssVin

R1R2R3R4

+

-

+

3300 µF

Figura 5-9 Diagrama de Alambrado para ver el tiempo de descarga de un circuito de tiempo RC. Asegurese que el lado negativo del capacitor lo conecta en su Tablilla de la misma forma que lo muestra esta figura, cn la terminal negativa conectada a Vss.

Asegurese que el lado negativo del capacitor lo conecta en su Tablilla de la

misma forma que lo muestra esta figura, cn la terminal negativa conectada a Vss.

Midiendo el circuito de tiempo RC con el BASIC Stamp

Aunque se puede usar un reloj para registrar que la carga del capacitor alcance cierto nivel, el BASIC Stamp se puede programar para monitorear el circuito y darle usted mediciones de tiempo más consistentes.

Programa Ejemplo: PolledRcTimer.bs2

Meta y ejecute el programa PolledRcTimer.bs2. Observe como el BASIC Stamp carga el capacitor y luego mide el tiempo de

descarga. Registre la Medición de Tiempo (el tiempo de descarga del capacitor) en la fila

del resistor de 470 Ω de la Tabla 5-1. Desconecte la Alimentación de su Tablilla Board of Education o BASIC Stamp

Home Work. Quite el resistor de 470 Ω del lugar marcado Ri de la Figura 5-8 y Figura 5-9 de

y reemplacelo por un resistor de 1 kilo ohm. Reconecte la alimentación a su Tablilla. Registe su siguiente Medicipon de Tiempo (para el resistor de 1 KΩ) Repita estos pasos para cada valor de resistor de la Tabla 5-1

Page 9: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 149

Tabla 5-1: Resistencia RC-tiempo para C = 3300 μF

Resistencia (Ω) Tiempo Medido (s)

4701 k2 k10 k

' ¿Que es un Microcontrolador? - PolledRcTimer.bs2 ' Programa de Tiempo de descarga modificado para seguir voltaje de descarga de RC. ' $STAMP BS2 ' $PBASIC 2.5 timeCounter VAR Word counter VAR Nib PAUSE 1000 DEBUG CLS HIGH 7 DEBUG "Capacitor en carga...", CR FOR counter = 5 TO 0 PAUSE 1000 DEBUG DEC2 counter, CR, CRSRUP NEXT DEBUG CR, CR, "Ahora Mida el tiempo de Descarga!", CR, CR INPUT 7 DO PAUSE 100 timeCounter = timeCounter + 1 DEBUG ? IN7 DEBUG DEC5 timeCounter, CR, CRSRUP, CRSRUP LOOP UNTIL IN7 = 0 DEBUG CR, CR, CR, "The RC decay time was ", DEC timeCounter, CR, "Decimas de segundo.", CR, CR END

Page 10: ¿Qué es un Microcontrolador? Cap.5

Página 150 · ¿Qué es un Microcontrolador? Funcionamiento del programa PolledRcTimer.bs2

Se declaran dos variables. La variable “timeCounter” se utiliza para conocer cuanto tiempo toma el capacitor en descargarse a través de Ri. La variable “counter” se usa para un conteo descendente mientras el capacitor se esta cargando.

timeCounter VAR Word counter VAR Nib

La instrucción DEBUG CLS limpia la Terminal Debug para que no se amontonen las mediciones sucesivas. High 7 pone en alto P7 e inicia la carga del capacitor, y entonces se muestra el mensaje “Capacitor Cargando”. Después de eso, el bucle FOR...NEXT hace un conteo descendente mientras el capacitor se está cargando. Cuando el capacitor se carga, se incrementa el voltaje a través de sus terminales desde 3.4 y 4.9 V (depende del valor de Ri)

DEBUG CLS HIGH 7 DEBUG "Capacitor Cargando...", CR FOR counter = 5 TO 0 PAUSE 1000 DEBUG DEC2 counter, CR, CRSRUP NEXT

Un mensaje muestra el inicio de la descarga.

DEBUG CR, “Ahora mide el tiempo de descarga!”, CR, CR Para permitir que el capacitor se descargue a través del resistor Ri, el pin de E/S cambia de HIGH a INPUT. Cuando está como “entrada” el pin E/S no afecta al circuito, pero pueden sensar señales “high” o “low”. Tan pronto como el pin E/S libera el circuito, el capacitor se descarga y circuila corriente a través del resistor. Cuando se ha descargado el capacitor el voltaje a través de sus terminales se hace menor y menor (se descarga). INPUT 7 En el capítulo anterior del botón push, usted usó el BASIC Stamp para detectar una señal “high” o “low” usando las variables IN3 y IN4. En esa ocasión, la señal “high” era Vdd y la señal “low” era Vss. Para el BASIC Stamp verdaderamente la señal “high” es cualquier voltaje mayor de 1.4 V. Claro que también puede ser 5V. En forma semejante, la señal “low” el cualquier voltaje entre 1.4 V y 0V.

Page 11: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 151 El bucle DO...LOOP verifica el pin P7 cada 100 ms hasta que el valor de IN7 cambia de 1 a 0, y esto indica que el voltaje de descarga del capacitor es 1.4 V.

DO PAUSE 100 timeCounter = timeCounter + 1 DEBUG ? IN7 DEBUG DEC5 timeCounter, CR, CRSRUP, CRSRUP LOOP UNTIL IN7 = 0

Se muestra el resultado y se termina el programa. DEBUG CR, CR, CR, "El tiempo de descarga de RC fue ", DEC timeCounter, CR, "decimas de segundo.", CR, CR END

Su turno – Un circuito más rápido

Usando un capacitor de aproximadamente 1/3 de 3300 μF, la medición del tiempo para el valor de cada resistor que se uso en el circuito se reducirá por 1/3. Posteriormente en la siguiente actividad usted usará un capacitor con 1/33 000 de capacidad ¡El BASIC Stamp tomara para usted la medición de tiempo usando una instrucción llamada RCTIME.

Desconecta la alimentación de su Tablilla Board of Education o HomeWorkBoard.

Reemplace el capacitor de 3300 μF por uno de 1000 μF. Confirme que la polaridad de su capacitor es correcta. La terminal negativa se

conecta a Vss. Reconecte la alimentación. Repita los pasos del Programa Ejemplo: PolledRcTimer.bs2 y registre sus

mediciones de tiempo en la Tabla 5-2. Compare sus mediciones de tiempo a la que anotó en la Tabla 5-1. ¿Qué tan cercanas están a 1/3 del valor de las mediciones tomadas con el

capacitor de 3300 μF?

Page 12: ¿Qué es un Microcontrolador? Cap.5

Página 152 · ¿Qué es un Microcontrolador?

Tabla 5-2: Resistencia y tiempo RC-, C = 1000 μF

Resistencia (Ω) Tiempo medido (s)

4701 k2 k10 k

ACTIVIDAD #3: LEYENDO LA PERILLA CON EL BASIC STAMP En la actividad #1, se usó un potenciometro como resistor variable. La resistencia en el circuito varía dependiendo de la posición de la perilla de ajuste. En la actividad #2 se usó un circuito de tiempo RC para medir diferentes resistencias. En esta actividad, usted construirá un circuito de tiempo RC para leer el potenciometro y usar el BASIC Stamp para tomar las mediciones de tiempo. El capacitor que usará será muy pequeño y las mediciones de tiempo estarán en el rango de microsegundo. Incluso, aunque las mediciones son de duraciones muy cortas de tiempo, el BASIC Stamp le dará una excelente indicación de la resistencia entre las terminales A y W que a su vez indican la posición de la perilla. Partes para leer el circuito de tiempo RC con el BASIC Stamp Un Potenciometro de 10 KΩ Un Resistor de 220 Ω (rojo-rojo-café) Cuatro alambres para puentes Un Capacitor de 0.1 μF Un Capacitor de 0.01 μf Dos puentes

Estos capacitores no tienen. Terminals + ni -. No tienen polaridad.. Pueden conectar estos capacitores sin preocuparse de las terminales positiva y negativa.

1040.1 µF

0.01 µF103

Figura 5-10 Capacitores de Cerámica Esquemático y dibujo del capacitor de 0.1μF (izquierda) y el de 0.01 μF (derecha)

Page 13: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 153 Contruyendo el circuito de Tiempo RC para el BASIC Stamp

La Figura 5-11 muestra el diagrama esquemático y alambrado para el circuito RC de tiempo rápido. Este es el circuito que usted usará para monitorear la posición de la perilla del potenciometro con ayuda del BASIC Stamp y un programa PBASIC.

Figura 5-11 Diagrama esquemático y alambrado del circuito de Tiempo RC para el BASIC Stamp con potenciometro.

Programando las Mediciones de Tiempo de RC

El programa ejemplo en la actividad #2, midió el tiempo de descarga verificando IN7 = 0 cada 100 ms, y lo mantuvo varias veces para verificarlo. Cuando IN7 cambió de 1 a 0, esto indicó que el voltaje del capacitor se descargo a 1.4 V. Cuando se ejecutó el programa el resultado se almacenó en la variable timeCounter como un número de décimas de segundo que le tomo al capacitor descargarse hasta 1.4 V. Este siguiente Programa Ejemplo usa una instrucción PBASIC llamada RCTIME que hace que el BASIC Stamp mida la descarga RC en terminos de unidades de 2 us. Entonces, en lugar de décimas de segundo, el resultado “RCTIME 7, 1” almacena en la variable “time” el número de 2 millonesimas de unidades de segundo que le toma al voltaje del capacitor descargarse debajo de 1.4 V. Como la instrucción RCTIME tiene

Page 14: ¿Qué es un Microcontrolador? Cap.5

Página 154 · ¿Qué es un Microcontrolador? unidas muy finas de medición, usted puede reducir el tamaño del capacitor desde 3300 μF hasta 0.1 e iincluso a 0.01 μF, y todovía obtener mediciones de tiempo que indican el valor del resistor. Como la resistencias entre las terminales del potenciometro cambina conforme gira la perilla, la medición RCTIME le dan a usted mediciones de tiempo que corresponde a la posición de la perilla del potenciometro.

Programa Ejemplo: ReadPotWithRcTime.bs2

Meta y ejecute el programa ReadPotWithRcTime.bs2 Gire la perilla del potenciometro mientras observa el valor de la variable “time”

usando la Terminal Debug.

Recuerde aplicar un poco de presión para mantener el potenciometro bien fijo sobre la tablilla cuando gira la perilla. Si su servo comienza a oscilar adelante y atrás inesperadamente en lugar de mantener su posición de retención, puede ser que el potenciometro no esté bien fijo.

' ¿Que es un Microcontrolador - ReadPotWithRcTime.bs2 ' Lea el tiempo RC del potenciometro usando la instrucción RCTIME . ' $STAMP BS2 ' $PBASIC 2.5 time VAR Word PAUSE 1000 DO HIGH 7 PAUSE 100 RCTIME 7, 1, time DEBUG HOME, "tiempo = ", DEC5 time LOOP

Su Turno – Cambiando el Tiempo al Cambiar el Capacitor

Reemplace el capacitor de 0.1μF por uno de 0.01μF Mantenga las mismas posiciones del Potenciometro como lo hizo en la actividad

principal y compare los valores mostrados por la Terminal Debug con los valores obtenidos con el capacitor de 0.1μF.¿Son las mediciones RCTIME cerca de un décimo del valor para una posición dada del potenciometro.

Regrese el capacitor de 0.1μF.

Page 15: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 155

Con el capacitor de 0.1μF y el de 0.01 quitado gire la perilla del potenciometro a su límite en ambas direcciones y anote los valores más alto y más bajo para la siguiente acitividad. El más alto______ El más bajo_______ .

Funcionamiento del Programa ReadPotWithRcTime.bs2

La Figura 5-12 como interactuan las intrucciones HIGH, PAUSE y RCTIME del programa ReadPotWithRcTime.bs2 con el circuito de la Figura 5-11.

Figura 5-12 Voltajes en P7 con HIGH, PAUSE y RCTIME

En la izquierda la instrucción HIGH 7 hace que el BASIC Stamp internamente conecte el pin E/S P7 a los 5 V (Vdd). La corriente circula desde la fuente a través del resistor del potenciometro y también carga al capacitor. Conforme el capacitor se aproxima a su carga final (casi 5 V) menor es la corriente que fluye por él. La instrucción PAUSE 100 se usa primordialmente para que la Terminal Debug muestre actualizaciones cerca de 10 veces por segundo; PAUSE 1 es suficiente para cargar el capacitor. En la derecha la instrucción RCTIME 7,1, time cambia la dirección del pin E/S de salida a entrada y comienza el tiempo de conteo en incrementos de 2 us. Como entrada, el pin E/S ya no alimenta al circuito con 5 V. De hecho, como entrada, es casi invisible al circuito RC. Entontes, el capacitor empieza a perder su carga a través del potenciometro. Conforme el

Page 16: ¿Qué es un Microcontrolador? Cap.5

Página 156 · ¿Qué es un Microcontrolador? capacitor piede su carga, su voltaje se descarga. La instrucción RCTIME mantiene el tiempo de conteo hasta que P7 sensa una señal “low” esto significa que el voltaje a través del capacitor se ha descargado a 1.4 V, y en este punto almacena la medición en la variable “time”. La Figura 5-12 también muestra una gráfica del voltaje en la terminales del capacitor durante las instrucciones HIGH, PAUSE y RCTIME. En respuesta a la instrucción HIGH 7 que conecta el circuito a 5 V, el capacitor se carga rapidamente. Entonces mantiene su nivel a su voltaje final durante la ejecución de la instrucción PAUSE 100. Cuando el programa llega a la instrucción RCTIME 7,1, time, cambia la dirección del pin E/S a entrada, entonces el capacitor empieza a descargase a travesl de potenciometro. Conforme el capacitor se descarga, el voltaje en P7 disminuye. Cuando el voltaje disminuye hasta 1.4 V (en este ejemplo en la marca de 150 us), la instrucción RCTIME deja de contar el tiempo y almacena el resultado de la medición en la variable “time”. Como la instrucción RCTIME cuenta el tiempo en unidades de 2 us, para 150 us el número que se almacen en la variable “time” es 75.

Umbral Lógico del pin E/S: 1.4 V es el umbral lógico del pin E/S en el BASIC Stamp. Cuando el pin E/S se direcciona como entrada, almacena un 1 en su registro de entrada si el voltaje aplicado es superior a1.4 V, o almacena un 0 si el voltaje de entrada es menor a 1-4 V. El primer botón push del capítulo 3 Activida #2 aplicaba 5 V o 0 V. Como 5 V está arriba de 1.4 V, IN3 almacenó un 1 y como 0 V está debajo de 1.4 IN3 almacenó un 0. Argumento “State” de RCTIME. En el programa ReadPotWithRcTime.bs2, el voltaje a través del capacitor disminuye desde casi 5 V, y cuando alcanza 1.4 V, el valor en el registro IN7 cambia de 1 a 0. En este momento, la instrucción RCTIME almacena la medición en “Duration” que es la variable “time” en el programa ejemplo. El argumento “State” de la instrucción RCTIME es 1 in RCTIME 7, 1, “time”, que le indica a la instrucción RCTIME que el registro IN7 almacenará un 1 cuando inicie la medición. La instrucción RCTIME mide cuanto tiempo le toma al registro IN7 cambiar al estado opuesto, y esto sucede cuando el voltaje disminuye debajo del voltaje umbral a 1.4 V del pin de E/S.

Para mayor información. Vea la instrucción RCTIME en el manual BASIC Stamp Manual o en la ayuda de BASIC Stamp Editor’s Help.

La figura 5-13 muestra la forma en que cambia la descarga con la resistencia del potenciometro para el circuito de la Figura 5-11. Cada posición de la perilla del potenciometro determina una cierta resistencia. Girandolo en una dirección la resistencia aumenta y en la otra dirección la resistencia disminuye. Cuando la resistencia es mayor el tiempo de descarga es más largo, y la instrucción RCTIME almacena un valor mayor en la variable “time”. La instrucción DEBUG del programa ReadPotWithRcTime.bs2 muestra esta medición de tiempo en la Terminal Debug, y como el tiempo de descarga

Page 17: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 157 cambia con la resistencia del potenciometro, el número en la Terminal Debug indica la posición de la perilla.

Figura 5-13 Forma en que la Resistencia del Potenciometro afecta el Tiempo de Descarga

¿Por qué el capacitor se carga a un menor voltaje cuando el potenciometro tiene menos resistencia?

De una mirada en le esquemático de la esquina superior izquierda de la Figura 5-12. Sin el resistor de 220 Ω, el pin de E/S debe ser capaz de cargar el capacitor a 5 V, pero el resistor de 220 Ω es necesario para prevenir un posible daño al pin E/S de un transitorio de corriente cuando empieza a cargar el capacitor. También previee que el potenciometro se dañe al drenar mucha corriente cuando se gira a 0 Ω mientras el pin E/S está mandando una señal “high” de 5 V.

Cuando se le aplican 5 V a las terminarles del resistor de 220 Ω en serie con el potenciometro, el voltaje entre ellos tiende a se una fracción de 5 V. Cuando dos resistores conduciendo corriente se conectan en serie, que generan un voltaje intermedio, al circuito se le llama Divisor de Voltaje. Entonces el resistor de 220 Ω y el potenciometro forman un circuito divisor de voltaje, y para cualquier resistencia del potenciometro (Rpot) , usted puede usar esta ecuación para calcular el voltaje en el potenciometro (Vpot):

Vpot = (5 V x Rpot) /(Rpot + 220 Ω)

El valor de Vpot define el valor superior del voltaje en el capacitor. En otras palabras, Cualquiera que sea el voltaje en el potenciometro será si el capacitor no está conectado, esto es el voltaje al que el capacitor puede cargarse pero no mayor a este voltaje. El rango de la mayoria de las perillas del potenciometro los valores de la resistencia son en kΩ y cuando usted calcula Vpot para valores de Rpot en KΩ, los resultados son bastante cercanos a 5 V. El resistor de 220 Ω no influye en el Vpor de cargarse arriba de 1.4 V hasta que el valor del potenciometro disminuye a 85.6 Ω,este valor es menor al 1% del rango del movimiento del potenciometro. Este 1% resultaría de todas formas para las mediciones más pequeñas, entonces es dificil decir que mediciones de 1% en este rango están fuera de los ordinario. Incluso con el resistor adicional de 220 Ω contruido en su Tablilla BASIC Stamp las conexiones en el pin E/S solo se afectan cuando el rango del potenciometro llega a 1.7%, y este valor no es importante.

Entonces el resistor de 220 Ω protege el pin E/S con un impacto pequeño en la medición de descarga de RC para decirle cuanto se ha desviado la posición de la perilla del potenciometro.

Page 18: ¿Qué es un Microcontrolador? Cap.5

Página 158 · ¿Qué es un Microcontrolador? ACTIVIDAD #4: CONTROLANDO UN SERVO CON UN POTENCIOMETRO Los joysticks como en de la Figura 5-14 se encuentran comunmente en controladores de video juegos. Cada joystick tiene tipicamente dos potenciometros que permiten que la electrónica interna en el controlador del juego reporta la posición del joystick a la consola de video juego. Un potenciometro gira el movimiento horizotal del joystick (izquierda a derecha), y el otro gira el movimiento vertical del joystic (adelante/atrás)

Figura 5-14 Potenciometros dentro del Módulo Joystick de Parallax.

Otra aplicación de joystick que usa potenciometros es el controlador de radio RC y el aeroplano en la Figura 4-1. El controlador tiene dos joysticks y cada uno tiene dos potenciometros. Cada posición del potenciometro es responsable de controlar un servo diferente del RC del avión. En esta actividad, usted usará un potenciometro similar a los del joystick que controla la posición del servo. Cuando usted gira la perilla del potenciometro, la estrella del servo reproducirá este movimiento. Esta actividad utilizad dos circuitos, el circuito del potenciometro de la Actividad # 3 de este capítulo, y el circuito servo del capítulo 4, actividad # 1. El programa PBASIC desarrollado en este capítulo mide repetidamente la posición del potenciometro con una instrucción RCTIME, y luego usa la medición y algo de matemáticas para controlar el posición del servo con una instrucción PULSOUT.

El BASIC Stamp puede medir la posición del joystick. Como hay dos potenciometros en cada joystick, cada uno de ellos puede reemplazar el potenciometro único de los circuitos de la Figura 5-11. Entonces una instrucción RCTIME puede medir el potenciometro vertical y el otro puede medir el potenciometro horizontal.

Vertical potentiometer

Horizontal potentiometer

Page 19: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 159 Partes del Potenciometro Controlando el Servo

Potenciometro de 10 K Ω Un Resistor de 220 Ω (rojo-rojo-cafe) Un Resistor de 470 Ω (amarillo-violeta-cafe) Un Capacitor de 0.1 μF Un Servo Normalizado de Parallax Un LED de cualquier color Dos alambres para puentes Los usuarios de la Tablilla HomeWork Board también necesitarán: Un conector de 3 terminales hembra-hembra Cuatro alambres para puentes

Construyendo el Circuito de Perilla y Servo

Esta actividad usará dos circuitos que usted ya ha construido individualmente: el circuito del potenciometro de la actividad que acaba de terminar y el circuito servo del capítulo anterior.

Quite del área de su tablilla el potenciometro del circuito RC de la actividad # 3. Si necesita reconstruirlo, use la Figura 5-11. Asegurese que usa el capacitor de 0.1 μF y no el capacitor de 0.01 μF.

Agregue al proyecto el circuito servo del capítulo 4, actividad 1. Recuerde que su circuito servo será diferente dependiendo de la Tablilla que use. Abajo están las páginas para esta sección que necesita buscar en:

o Vaya a la Página 96 si usa la Tablilla Board of Education o Vaya a la Página 99 si usa la Tablilla BASIC Stamp HomeWork

Programando Potenciometro Controlando el Servo

Usted necesitará los valores más pequeño y más grande de la variable tiempo que guardó de su circuito RC de tiempo cuando usó un capacitor de 0.1 μF

Si no ha completado la sección Su Turno de la actividad anterior, regresese y completela ahora.

Para este siguiente ejemplo, estos son los valores de tiempo que midieron los técnicos de Parallax, sus valores son quizá ligeramente diferentes.

Page 20: ¿Qué es un Microcontrolador? Cap.5

Página 160 · ¿Qué es un Microcontrolador?

• En el límite en sentido de la manecillas del reloj 1 • En el límite en sentido contrario de la manecillas del reloj 691

¿Entonces, como pueden ajustarse estos valores de entrad para que cubran el rango de 500 –1000 para controlar el servo con la instrucción PULSOUT? La respuesta es usando multiplicaciones y sumas. Primero, multiplique los valores de entrada por algo para hacer la diferencia de entre los valores en el sentido de las manecillas del reloj (mínimo) y en sentido inverso de las manecillas del reloj (máximo) 500 en lugar de casi 700. En seguida, agregue un valor constante al resultado para que el rango de 500 a 1000 en lugar de 1 a 500. En electrónica a estas operaciones se les llama “Escalamiento” y “ajuste.” Así es como trabaja la matemática para la multiplicación (escalamiento).

724.06915001)(

500724.0691691500691)(

=×=

=×=×=

minimumtime

maximumtime

Despues de haber escalado los valores, así se hace el paso de suma (offset)

500500724.0)(1000500500)(=+=

=+=minimumtimemaximumtime

El operador */ se introdujo en la página 84 y es parte del PBASIC para escalamiento por valores fraccionales, como 0.724. Estos son nuevamente los pasos para usar */ aplicado a 0.74:

1. Coloque el valor o variable que usted desea multiplicar por un valor fraccional antes del operador */

tiempo = tiempo */

2. Tome el valor fraccional que usted desea usar y mutipliquelo por 256

nuevo valor fraccional = 0.724x256 = 185.344 3. Quite los decimales del número

nuevo valor fraccional = 185

Page 21: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 161

4. Coloque el valor despues del operador */

tiempo = tiempo */ 185

Estos son los pasos del “escalamiento” ahora todo lo que necesitamos es agregar el offset de 500. Esto puede hacerse con una segunda instrucción que suma 500 a “tiempo”:

tiempo = tiempo */ 185 tiempo = tiempo + 500

Ahora, “tiempo” esta listo para reciclarce con el argumento “Duration” de la intrucción PULSOUT

time = time */ ‘Escalamiento por 0.724. time = time + 500 ‘Se aplica un offset de 500. PULSOUT 14, time ‘Manda el pulso al servo.

Programa Ejemplo: ControlServoWithPot.bs2

Meta y ejecute este programa, luege gire la perilla del potenciometro y asegurese que a iguales movimientos del servo, corresponden al potenciometro.

' ¿Que es un Microcontrolador - ControlServoWithPot.bs2 ' Lee el potentiometro del circuito de tiempo RC usando la instrucción RCTIME. ' Escale time por 0.724 y offset por 500 para el servo. ' $STAMP BS2 ' $PBASIC 2.5 PAUSE 1000 DEBUG "Programa ejecutandose!" time VAR Word

Page 22: ¿Qué es un Microcontrolador? Cap.5

Página 162 · ¿Qué es un Microcontrolador? DO HIGH 7 PAUSE 10 RCTIME 7, 1, time time = time */ 185 ' Escalamiento por 0.724 (X 256 for */). time = time + 500 ' Se aplica un Offset de 500. PULSOUT 14, time ' Manda pulsos al servo. LOOP

Su Turno – Escalamiento de la Relación Servo-Perilla.

Su potenciometro y capacitor probablemente le darán valores de tiempo que son diferentes de los que analizamos en esta actividad. Estos son valores que reunió en la sección Su Turno de la actividad anterior.

Repita la matemática analizada en la sección Programando Potenciometro Controlando el Servo de la página 159 usando los valores máximos y minimos.

Sustituya sus valores de Escalamiento y Offset en el programa ControServoWithPot.bs2.

Comente el DEBUG ”Programa en Ejecución!” que tiene un apostrofe al principio de la línea.

Agregue esta línea de código entre las instrucciones PULSOUT y LOOP para que usted pueda ver sus resultados:

DEBUG HOME, DEC5 time ‘Muestra en ajuste de valor de tiempo

Ejecute el programa modificado y verifique su trabajo. Debido a que se

redondearon los valores, los límites puede que no sean exactamente 500 y 1000, pero deben ser muy cercanos.

Declarando Constantes y Pin con Directivas

En programas grandes, usted puede terminar usando el valor del factor de escalamiento (que fue 185) y el de offset (que fue 500) muchas veces en el programa. Números como 185 y 500 en su programa se llaman “constantes” porque a diferencia de las variables su valores no cambian mientras se ejecuta el programa. En otras palabras, el valor permanece “constante”. Usted puede crear nombres para estas constantes con directivas “CON”.

Factor de escalamiento CON 185 Ofsset CON 500 delay CON 10

Page 23: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 163

Estas directivas “CON” siempre se declaran cerca del comienzo del programa, para que sean fáciles de encontrar.

Una vez que sus valores constantes se le han dado nombres con las directivas “CON”, usted puede usar en su progrma “ScaleFactor” en lugar de 185 y “Offset” en lugar de 500. Por ejemplo: time = time */ scale Factor ‘ Escalaminento de 0.724 time = time + offset ‘Offset de 500 Con los valores que asignamos a las constantes con las directivas “CON” las instrucciones verdaderamente son: time = time */ 185 ‘ Escalaminento de 0.724 time = time + 500 ‘Offset de 500 Una ventaja importante al usar constantes es que usted puede cambiar una directiva “con” y esta se actualiza en cada instante del nombre de al constante en su programa. Por ejemplo, si usted escribe un programa grande que usa la constante ScaleFactor en 1 diferentes lugares, un cambio para Scale Factor Con... y todos los momentos su programa usara “ScaleFactor” que actualiza el valor para el siguiente prograda descargado. Entonces, Si usted cambia ScaleFactor CON 500 por ScaleFactorCON510, cada instrucción con ScaleFactor usará 510 en lugar de 500. Usted tambien puede darle nombres a los pines E/S usando la directiva “PIN”. Por ejemplo, usted puede declarar un directiva PIN para el pin E/S p/ de la siguiente manera: RcPin PIN7 Hay dos lugares en el programa del ejemplo anterior donde se usa el número 7 para referirse al pin E/S P7. El primero ahora puede escribirse como: HIGH RcPin El segundo puede escribirse como: RCTIME RcPin, 1, time Si posteriormete cambia su circuito para usar diferentes pines E/S, todo lo que tiene que hacer es cambiar el valor de su directiva PIN y las dos instrucciones HIGH y RCTIME, se actualizarán automáticamente.

Page 24: ¿Qué es un Microcontrolador? Cap.5

Página 164 · ¿Qué es un Microcontrolador? De igual forma, si usted tiene que recalibrar su factor de escalamiento o el offset, usted solamente necesita cambiar las directivas “CON” al principio del programa.

La directiva del PIN tiene una característica adicional: El compilador PBASIC puede detectar si el nombre del pin se usa como entrada o salida, y substituur al número del pin E/S, o al bit del registro de la variable de entrada correspondiente. Por ejemplo, usted podría declarar dos directivas pin, como LedPin PIN 14 y ButtonPin PIN3. Entonces su código puede tener una frase como IF buttonPin = 1 THEN HIGH LedPin. El compilador PBASIC convierto esto a IF IN3 = 1 THEN HIGH14.

El IF ButtonPin = 1 hizo una comparación, y el compilador PBASIC conoce que usted está usando Button Pin como una entrada. Entonces, usa el bit del registro de entrada IN3 en lugar de número 3. De igual manera, el compilador PBASIC sabe que HIGH LedPin usa el nombre pin LedPin como el valor constante 14 para una operación de salida, y este lo sustituye por HIGH 14.

Programa Ejemplo: ControlServoWithPotUsingDirectives.bs2

Este programa funciona igual que el programa ControlServoWithPot.bs2 pero usa nombre de constantes como pines de E/S.

Meta y ejecute el programa ControlServoWithPotUsingDirectives.bs2 Observe como el servo responde al potenciometro y verifique que se comporta

de la misma manera que el programa ControlServoWithPot.bs2. ' ¿Que es un Microcontrolador - ControlServoWithPotUsingDirectives.bs2 ' Lee el otentiometro en el circuit RC-time usando la instrucción RCTIME . ' Le aplica un factor de escala y offset, luego manda el valor al servo. ' $STAMP BS2 ' $PBASIC 2.5 rcPin PIN 7 ' Define pines E/S servoPin PIN 14 scaleFactor CON 185 ' Declara Constantes offset CON 500 delay CON 10 time VAR Word ' Declara Variable time PAUSE 1000 ' Initializacion

Page 25: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 165 DO ' Routina Principal HIGH rcPin ' Mide tiempo de descarga RC PAUSE delay RCTIME rcPin, 1, time time = time */ scaleFactor ' Escala a scaleFactor. time = time + offset ' time más Offset PULSOUT servoPin, time ' Manda pulso al servo. DEBUG HOME, DEC5 time ' Muestra el ajuste del valor tiempo LOOP

Su Turno – Actualizando la Directiva de PIN

Como se mencionó anters, si usted conecta el circuito RC a un pin E/S diferente, usted puede simplemente cambiar el valor de la directiva RcPin PIN, y este cambio automáticamente se refleja en las instrucciones HIGH RcPin y RCTIME RcPin, 1, time.

Guarde el Programa Ejemplo con un nombre nuevo. Cambie scaleFactor y offser a los valores únicos para su circuito RC que usted

determinado en la sección anterior Su Turno. Ejecute el programa modificado y verifique que trabaja correctamente. Modifique su circuito moviendo la conexión del circuito RC de pin E/S 7 al pin

de E/S 8. Modifique la declaración rcPin que diga:

rcPin PIN 8

Ejecute nuevamente su programa y verifique que las instrucciones HIGH y RCTIME todavía están funcionando correctamente con el pin diferene que acaba de cambira con la directiva RcPin PIN.

Page 26: ¿Qué es un Microcontrolador? Cap.5

Página 166 · ¿Qué es un Microcontrolador?

RESUMEN Este capítulo introdujo el potenciometro, una parte frecuentemente encontrada debajo de varios botones y perillas. El potenciometro tiene un elemento resistivo que tipicamente se conecta al exterior con dos terminales y una terminal deslizable que hace contacto en un punto variable sobre el elemento resistivo. El potenciometro se puede usar como un resistor variable si la terminal deslizable y una de las terminales exteriores se usan en un circuito. En este capitulo tambien se introdujo el capacitor. Un capacitor se puede usar para almacenar y liberar carga. La cantidad de carga que un capacitor puede almacenar se relaciona con su valor, que se mide en farads, (F). El símbolo “μ” es una notación de ingeniería de micro y significa una millonésima. El capacitor utilizado en las actividades de este capítulo fue de 0.01 a 3300 μF. Un resistor y un capacitor se pueden conectar junto en un circuito que necesita cierta cantidad de tiempo para cargarse y descargarse. A este circuito se le llama comunmente circuito de tiempo RC. La R y C del circuito de tiempo RC se refieren al resistor y al capacitor. Cuando un valor (C en las actividades de este capítulo) se mantiene constante, el cambio en el tiempo que le toma para que el circuito se descargue se relaciona con el valor de R. Cuando cambia el valor de R, el valor que el tiempo toma para que se cargue y descarge tambien cambia. El tiempo total que le toma al circuito RC para descargarse puede escalarse usando un capacitor de diferente tamaño. Se uso el “polling” para monitorear el tiempo de descarga de un capacitor en un circuito RC en donde el valor de C era muy grande. Se usaron diferentes resistores para mostrar como cambia el tiempo de descarga cuando cambia el valor del resistor del circuito. Se usó la instrucción RCTIME para monitorear un potenciometro (un resistor variable) en un circuuito de tiempo RC con un capacitor más pequeño. Aunque estos capacitores hacen que el tiempo de descarga tenga un rango de 2 a 1500 us (millonesimas de segundo), el BASIC Stamp no tiene problemas para controlar estas mediciones de tiempo con la instrucción RCTIME. El pin E/S debe fijarse en HIGH y entonces al capacitor del circuito de tiempo RC se le permite descargarse usando PAUSE antes usar la instrucción RCTIME. La programación en PBASIC puede usarse para medir un sensor resistivo como un potenciometro y escalar su valor para que sea de utilidad con otro dispositivo, por ejemplo un servo. Esto incluye realizar operaciones matemáticas en el tiempo de descarga de RC medido, que la instrucción RCTIME almacena en una variable. Esta variable

Page 27: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 167 puede ajustarse sumandole un valor constante que nos permite controlar el servo. En la sección Proyectos, usted puede por si mismo encontrarlo usando multiplicaciones y divisiones. La directiva “CON” puede usarse al principio de un programa para sustituir el nombre de un valor constante (un número). Después de darle nombre a una constante, el nombre puede usarse en lugar del número en todo el programa. Todo da facilidad, especialmente si usted necesita usar el mismo nombre en 2, 3, o incluso 100 diferentes lugares en el programa. Usted puede cambiar el número en la directiva “CON”, y todos los 2, 3, o incluso 100 diferentes ejemplos de ese número se actualizarán automáticamente la siguiente vez que usted ejecute el programa. Las directivas “PIN” le permiten que usted le asigne nombre a los pines de E/S. El nombre del pin de E/S es sensible en contexto, de tal manera que el compilador PBASIC sustituye el número del pin E/S correspondiente por el nombre del pin en instrucciones como HIGH, LOW y RCTIME. Si el nombre del pin se usa en una frase condicional, este lo sustituye en lugar del registro de entrada correspondiente como IN2, IN3, etc.

Preguntas

1. ¿Cuándo usted gira la perrilla o el botón de un sistema de sonido, que componente principal está ajustando?

2. En un potenciometro típico, ¿es ajustable la resistencia entre las dos terminales exteriores?

3. ¿Por qué se parece un capacitor a una bateria recargable? 4. ¿Qué puede usted hacer con un ciruito de tiempo RC para darle una indicación

del valor de un resistor variable? 5. ¿Cómo actua la directiva CON? De su explicación en términos de un nombre y

un número.

Ejercicio

1. Considere que tiene un capacitor de 0.5 μF en un circuito de tiempo RC, y desea que la medición sea 10 veces mayor? Calcule el valor del nuevo capacitor

Proyectos

1. Agregue un LED bicolor a la actividad #4. Modifique el programa ejemplo para que el LED bicolor sea rojo cuando gira el servo gira en sentido inverso de las manecillas del reloj, y verde cuando el servo gira en sentido de la s manecillas del reloj y no se ilumine cuando el servo mantenga su posición.

Page 28: ¿Qué es un Microcontrolador? Cap.5

Página 168 · ¿Qué es un Microcontrolador?

2. Use la instrucción IF...THEN para moficar el primer programa ejemplo de la actividad #4 de tal forma que el servo solamente gire entre valores de 650 a 800 de PULSOUT.

Soluciones

Q1. Un potenciometro Q2. No. Está fija. La resistencia variable está entre cualquiera de las terminales

finales y la terminal central Q3. Q3. Un capacitor es como una pila recargable porque puede cargarse para que

mantenga un voltaje. La diferencia es que solamente retiene la carga por una pequeña cantidad de tiempo.

Q4. Usted puede medir el tiempo que le toma al capacitor descargarse (o cargarse). Este tiempo se relaciona con la resistecia y la capacitancia. Si se conoce la capacitancia y la resistencia es variable, entonces el tiempo de descarga da una indicación de la resistencia.

Q5. La directiva “CON” sustituye un nombre por un número.

E1. El nuevo capacitor = (10 veces el valor del capacitor viejo) = (10x0.5μF) = 5 μF.

P1. Actividad #4 agregandole el LED Bicolor

470 Ω

P13

P12

1

2

Esquemático del potenciometro de la Figura 5-11, el servo del capítulo 4 actividad #1, y el LED bicolor de la Figura 2-19, muestra a P15 y P14 que se cambiaron a P13 Y P14.

' ¿Que es un microcontrolador? - Ch5Prj01_ControlServoWithPot.bs2 ' Lee el potentiometro en el circuito de tiempo RC usando la ' instrucción RCTIME. ' El tiempo var esta en el rango de 126 a 713, y se nececita un offset ' de 330. ' LED Bicolor en P12, P13 indica la direccion de la rotación del servo: ' verde para CW, rojo para CCW, apagado cuando el servo esta en ' posición de reten. ' $STAMP BS2 ' $PBASIC 2.5

Page 29: ¿Qué es un Microcontrolador? Cap.5

Midiendo Rotación · Página 169

PAUSE 1000 DEBUG "Programa en Ejecución!" time VAR Word ' leyendo el tiempo del potenciometro prevTime VAR Word ' lectura previa DO prevTime = time ' Almacena la lectura del tiempo anterior HIGH 7 ' Lee el pot usando RCTIME PAUSE 10 RCTIME 7, 1, time time = time + 350 ' Escala el pot, iguala el rango del servo ' al incrementarse, el pot giro CCW IF ( time > prevTime + 2) THEN HIGH 13 ' El Led Bicolor es rojo LOW 12 ' valor disminuye, el pot giro CW ELSEIF ( time < prevTime - 2) THEN LOW 13 ' LED Bicolor es verde HIGH 12 ELSE ' El Servo mantiene su posicion LOW 13 ' LED apagado LOW 12 ENDIF PULSOUT 14, time LOOP

1. La clave es agregar bloques IF...THEN. abajo mostramos un ejemplo. CLREOL

es un útil carácter de control DEBUG que significa “limpiar al finalizar la línea.'

' ¿Que es un Microcontrolador - Ch5Prj02_ControlServoWithPot.bs2 ' Lee el potentiometro en el circuito de tiempo RC usando la instrucción RCTIME. ' Modificado con IF…THEN para que el servo sólo gire de 650 a 850. ' El tiempo variable varía desde 1 a 691, se necesita un offset mínimo ' de 649 . ' $STAMP BS2 ' $PBASIC 2.5 PAUSE 1000 DEBUG "Programa en ejecución!" time VAR Word DO

Page 30: ¿Qué es un Microcontrolador? Cap.5

Página 170 · ¿Qué es un Microcontrolador?

HIGH 7 ' Lee el pot con RCTIME PAUSE 10 RCTIME 7, 1, time time = time + 649 ' Escala tiempo al rango del servo IF (time < 650) THEN ' Limita el rango de 650 a 850 time = 650 ENDIF IF (time > 850) THEN time = 850 ENDIF PULSOUT 14, time DEBUG HOME, "time = ", DEC4 time, CLREOL LOOP