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:
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.
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 9 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.
Página 144 · ¿Qué es un Microcontrolador?
Figura 5-5 Circuito de Prueba Potenciometro-LED
Verificando el Circuito del Potenciometro
9 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.
9 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.
Midiendo Rotación · Página 145
(a) (b)
(c) (d)
(e) (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. 9 Lea el recuadro de PRECAUCIÓN EN LA SIGUENTE PÁGINA.
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.
Midiendo Rotación · Página 147
9 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.
9 Con la alimentación desconectada, construya el circuito mostrado empezando con un resistor de 470 Ω colocandolo donde está marcado Ri. P7 220 Ω Ri
3300 µF
R1 = 470 Ω R2 = 1 kΩ R3 = 2 kΩ R4 = 10 kΩ
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
Vss
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Ω.
Página 148 · ¿Qué es un Microcontrolador?
R3 Vdd X3
P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 X2
R2
R1 Vin
Vss
-
0 33
0µ
F
+
R4
+
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.
9 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
9 Meta y ejecute el programa PolledRcTimer.bs2. 9 Observe como el BASIC Stamp carga el capacitor y luego mide el tiempo de descarga. 9 Registre la Medición de Tiempo (el tiempo de descarga del capacitor) en la fila del resistor de 470 Ω de la Tabla 5-1. 9 Desconecte la Alimentación de su Tablilla Board of Education o BASIC Stamp Home Work. 9 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. 9 Reconecte la alimentación a su Tablilla. 9 Registe su siguiente Medicipon de Tiempo (para el resistor de 1 KΩ) 9 Repita estos pasos para cada valor de resistor de la Tabla 5-1
Midiendo Rotación · Página 149
Tabla 5-1: Resistencia RC-tiempo para C = 3300 μF Resistencia (Ω)
Tiempo Medido (s)
470 1k 2k 10 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 counter PAUSE 1000
VAR VAR
Word Nib
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
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 counter
VAR VAR
Word 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.
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. 9 Desconecta la alimentación de su Tablilla Board of Education o HomeWorkBoard. 9 Reemplace el capacitor de 3300 μF por uno de 1000 μF. 9 Confirme que la polaridad de su capacitor es correcta. La terminal negativa se conecta a Vss. 9 Reconecte la alimentación. 9 Repita los pasos del Programa Ejemplo: PolledRcTimer.bs2 y registre sus mediciones de tiempo en la Tabla 5-2. 9 Compare sus mediciones de tiempo a la que anotó en la Tabla 5-1. 9 ¿Qué tan cercanas están a 1/3 del valor de las mediciones tomadas con el capacitor de 3300 μF?
Página 152 · ¿Qué es un Microcontrolador?
Tabla 5-2: Resistencia y tiempo RC-, C = 1000 μF Resistencia (Ω)
Tiempo medido (s)
470 1k 2k 10 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.
104
0.1 µF
0.01 µF
103
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)
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
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
9 Meta y ejecute el programa ReadPotWithRcTime.bs2 9 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
9 Reemplace el capacitor de 0.1μF por uno de 0.01μF 9 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. 9 Regrese el capacitor de 0.1μF.
Midiendo Rotación · Página 155
9 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
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
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.
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)
Horizontal potentiometer
Figura 5-14 Potenciometros dentro del Módulo Joystick de Parallax.
Vertical potentiometer
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.
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. 9 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. 9 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 9 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.
Página 160 · ¿Qué es un Microcontrolador?
• •
En el límite en sentido de la manecillas del reloj En el límite en sentido contrario de la manecillas del reloj
1 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). 500 = 691× 0.724 = 500 691 500 time(minimum) = 1 × = 0.724 691 time(maximum) = 691 ×
Despues de haber escalado los valores, así se hace el paso de suma (offset) time(maximum) = 500 + 500 = 1000 time(minimum) = 0.724 + 500 = 500
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
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 */ time = time + 500 PULSOUT 14, time
‘Escalamiento por 0.724. ‘Se aplica un offset de 500. ‘Manda el pulso al servo.
Programa Ejemplo: ControlServoWithPot.bs2
9 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
Página 162 · ¿Qué es un Microcontrolador?
DO HIGH 7 PAUSE 10 RCTIME 7, 1, time time = time */ 185 time = time + 500 PULSOUT 14, time
' Escalamiento por 0.724 (X 256 for */). ' Se aplica un Offset de 500. ' 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. 9 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. 9 Sustituya sus valores de Escalamiento y Offset en el programa ControServoWithPot.bs2. 9 Comente el DEBUG ”Programa en Ejecución!” que tiene un apostrofe al principio de la línea. 9 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
9 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 Ofsset delay
CON CON CON
185 500 10
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 time = time + offset
‘ Escalaminento de 0.724 ‘Offset de 500
Con los valores que asignamos a las constantes con las directivas “CON” las instrucciones verdaderamente son: time = time */ 185 time = time + 500
‘ Escalaminento de 0.724 ‘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.
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. 9 Meta y ejecute el programa ControlServoWithPotUsingDirectives.bs2 9 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 servoPin
PIN PIN
7 14
' Define pines E/S
scaleFactor offset delay
CON CON CON
185 500 10
' Declara Constantes
time
VAR
Word
' Declara Variable time
PAUSE 1000
' Initializacion
Midiendo Rotación · Página 165
DO HIGH rcPin PAUSE delay RCTIME rcPin, 1, time time = time */ scaleFactor time = time + offset PULSOUT servoPin, time DEBUG HOME, DEC5 time LOOP
' Routina Principal ' Mide tiempo de descarga RC
' Escala a scaleFactor. ' time más Offset ' Manda pulso al servo. ' Muestra el ajuste del valor tiempo
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. 9 Guarde el Programa Ejemplo con un nombre nuevo. 9 Cambie scaleFactor y offser a los valores únicos para su circuito RC que usted determinado en la sección anterior Su Turno. 9 Ejecute el programa modificado y verifique que trabaja correctamente. 9 Modifique su circuito moviendo la conexión del circuito RC de pin E/S 7 al pin de E/S 8. 9 Modifique la declaración rcPin que diga: rcPin
PIN 8
9 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.
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
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.
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 P13
1
2
P12
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.
470 Ω
' ' ' ' ' ' ' '
¿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}
Midiendo Rotación · Página 169
PAUSE 1000 DEBUG "Programa en Ejecución!" time potenciometro prevTime
VAR
Word
' leyendo el tiempo del
VAR
Word
' lectura previa
DO prevTime = time HIGH 7 PAUSE 10 RCTIME 7, 1, time time = time + 350
' Almacena la lectura del tiempo anterior ' Lee el pot usando RCTIME
' 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 HIGH 12 ELSE LOW 13 LOW 12 ENDIF
' LED Bicolor es verde ' El Servo mantiene su posicion ' LED apagado
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
Página 170 · ¿Qué es un Microcontrolador?
HIGH 7 PAUSE 10 RCTIME 7, 1, time time = time + 649 IF (time < 650) THEN time = 650 ENDIF IF (time > 850) THEN time = 850 ENDIF
' Lee el pot con RCTIME
' Escala tiempo al rango del servo ' Limita el rango de 650 a 850
PULSOUT 14, time DEBUG HOME, "time = ", DEC4 time, CLREOL LOOP