Page 1

Bloques de Construcción Electrónicos · Página 291

Capítulo 9: Bloques de Construcción Electrónicos LOS PEQUEÑOS CHIPS NEGROS No necesitas más que ver a tu BASIC Stamp (ver Figura 9-1) para encontrar ejemplos de esos pequeños chips negros. Cada uno de estos chips tiene una función especial. El chip de arriba a la derecha es el regulador de voltaje. Este chip recibe el voltaje de la bateria y lo convierte casi exactamente en 5 V, que es lo que necesita el resto de los componentes del BASIC Stamp para trabajar correctamente. El chip arriba a la izquierda es el módulo EEPROM del BASIC Stamp. Los programas en PBASIC se convierten en números llamados “simbolos” (tokens) que se descargan en el BASIC Stamp. Estos tokens se almacenan en la EEPROM y usted puede verlos al hacer click en Run y luego en el mapa de memoria del Editor BASIC Stamp. El chip más grande es el “Chip Interpreter”. Este es un microcontrolador programado con el Interpreter PBASIC que manda los tokens desde la EEPROM y luego interpreta la instrucción PBASIC que el token representa. Luego ejecuta la instrucción y manda el siguiente token y así sucesivament. A este proceso se le llama “Manda y Ejecuta”.

2K EEPROM stores PBASIC code and logged data →

5V Regulator converts input voltage to regulated 5 volts ← Figura 9-1 Circuitos Integrados del BASIC Stamp

PBASIC Interpreter chip (a pre-programmed microcontroller) →


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

Las personas usan el término Circuito Integrado (CI) cuando se refieren a los pequeños chips negros. Realmente el circuito integrado es un pequeño chip de silicio que está contenido dentro de un plástico negro o una cajita de cerámica. Dependiendo del chip puede tener cientos, miles o millones de transistores. Un transistor es el bloque de construcción básico de los circuitos integrados, y usted tendrá la oportunidad de experimentar con el transistor en este capítulo. Otro componentes familiares diseñados dentro del chip de silicio son los diodos, resistores y capacitores. Reflexione un momento en las actividades que ha trabajado en este libro. La lista incluye LEDs parpadeando, lectura de botones push, control de servos, lectura de mediciones de luz con potenciometro, control de indicadores, y produciendo sonidos. Pero esto es solamente el comienzo, esto es impresionante, considerando que usted puede combinar estas actividades para hacer circuitos más complicados. El núcleo del sistema que hizo posible todas estas actividades, lo compone justamente los tres circuitos integrados que muestra la figura 9-1, y otros pocos componentes adicionales. Es justamente lo que mostramos lo poderoso que son los circuitos integrados cuando se diseñan para trabajar en conjunto.

EXPANDA SUS PROYECTOS CON CIRCUITOS INTEGRADOS PERIFERICOS Existen miles de circuitos integrados diseñados para usarse con microcontroladores. Algunas veces diferentes fabricantes de circuitos integrados hacen chips que realizan la misma función. Algunas veces cada característica del chip son muy diferentes y otras veces son casi identicos pero uno podría costar menos que el otro. Cada uno de los miles de circuitos integrados diferentes como bloques de construcción para una variedad de diseños. Las compañias publican información del funcionamiento de cada uno de sus circuitos integrados en documentos que se llaman hojas de datos y está disponibles en la web. Estos fabricantes también publican notas de aplicación que muestra como se usan sus circuitos integrados en una o formas útiles que facilitan el diseño de productos. Los fabricantes de circuitos integrados dan esta información con el deseo de que los ingenieros los usen para costruir sus ultimos juguetes o aplicaciones con sus chips. Si se venden miles de juguetes significa que la compañía vende miles de sus circuitos integrados. En este capítulo, usted experimentará con el transistor y un circuito integrado de propósito especial llamado Potenciometro Digital. Como mencionamos antes, el transistor es el bloque de construcción básico de los circuitos integrados. También es el bloque de construcción básico de muchos otros circuitos. El potenciometro digital también tiene una variedad de usos. Recuerde que en cada actividad que usted haya


Bloques de Construcción Electrónicos · Página 293

realizado, hay probablente cientos de formas diferentes que usted podría usar en cada uno de estos circuitos integrados.

ACTIVIDAD #1: CONTROL DEL FLUJO DE CORRIENTE CON UN TRANSISTOR En esta actividad, usted usará un transistor como una forma para controlar la corriente que pasa a través de un LED. Usted puede usar un LED para monitorear la corriente ya que brilla más cuando pasa más corriente por él, y brilla menos cuando pasa menos corriente por él. Presentado el Transistor

La Figura 9-2 muestra el símbolo esquemático y dibujo del transistor 2N3904. Hay diferentes tipos de transistores. Uno llamado NPN, esto se refiere al tipo de material usado para fabricar el transistor y la forma como esos materiales forman capas en el silicio. La mejor manera de empezar a pensar en un transistor es imaginarse una válvula que se usa para controlar la corriente. Diferentes transistores controlan cuanta corriente pasa por diferentes medios. Este transistor controla la cantidad de corriente que pasa al colector y regresa al emisor. Usa la cantidad de corriente permitida por la terminal de la base para controlar la corriente de C a E. con una pequeña cantidad de corriente que permite la base, circula una corriente 416 veces mayor a través del transistor de C a E.

C C B E

Figura 9-2 Transistor 2N3904 {} Símbolo esquemático y dibujo del transistor

B 2N3904

E

Hoja de Datos de 2N3904 Anteriormente mencionamos, que los fabricantes de semiconductores publican documentos llamados hoja de datos de los dispositivos que fabrican. Estas hojas de datos contienen información que los ingenieros usan para diseñar el dispositivo en un producto. Por ejemplo para ver la hoja de datos de 2N3904 vaya a www.fairchildsemi.com. Meta 2N3904 en el rectángulo Search de la página principal de Fairchild Semiconductors y de click en Go. Uno de los resultados de búsqueda puede ser una liga a información del producto 2N3904. Sigala y busque la liga Datasheet. La mayoría de los buscadores web muestran la hoja de datos y la abren con Adobe Acrobat Reader.


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

Partes Del Circuito Transistor

Un transistor 2N3904 Dos Resistores de 100 K Ω (café-negro-amarillo) Un LED de cualquier color Un potenciometro de 10 K Ω Tres alambres para puentes Construyendo y verificando el Circuito Transistor

La Figura 9-3 muestra un circuito que usted puede usar para controlar manualmente la cantidad de corriente que el transistor permite que pase por el LED. Girando la perilla del potenciometro, el circuito suministrará diferentes cantidades de corriente a la base del transistor. Esto originará un cambio en la cantidad de corriente que el transistor permita que pase de colector a emisor. El LED le dará una clara indicación de estos cambios brillando más o brillando menos. 9 Construya el Circuito Mostrado en la Figura 9-3 o Asegurése que el ánodo (la terminal más larga) del LED está conectado a Vdd. o Verifique dos veces el circuito del Transistor. Observe que la parte plana del transistor apunta a la derecha en el diagrama de alambrado. 9 Gire la perilla del transistor y verifique que cambia el brillo en el LED conforme cambia la posición de la terminal central del potenciometro.

Vdd

Vdd

LED

100 kΩ

POT 10 kΩ

100 kΩ

Vss

Vss

Figura 9-3 Circuito del Transistor Controlado Manualmente con el Potenciometro


Bloques de Construcción Electrónicos · Página 295

Su Turno – Conmutando el Transistor en Apag/Enc

Si todo lo que usted desea es conmutar un transistor en Enc/Apag, usted puede usar el circuito mostrado en la Figura 9-4. Cuando el BASIC Stamp manda una señal high a éste circuito, el hará que el transistor conduzca mucha corriente como cuando ajustó el potenciometro para máximo brillo. Cuando el BASIC Stamp manda una señal low a este circuito hace que el transistor deje de conducir corriente, y el LED no emite luz. ¿Cuál es la diferencia entre conectar esto y conectar un circuito LED a un pin E/S? Los pines del BASIC Stamp tienen limitaciones en la cantidad de corriente que pueden entregar. También los transistores tienen limitaciones, pero estas son mucho mayores. En La Guia del Estudiante de Control de Procesos, un transistor se usa para excitar un pequeño ventilador de DC. También se usa para proporcionar cantidades grandes de corriente a un resistor pequeño que se usa como elemento calefactor. Cualquiera de estas dos aplicaciones podrían drenar mucha corriente que dañarían rápidamente a el BASIC Stamp, pero el transistor se encarga de que esto no suceda.

9 Construya el Circuito que muestra la Figura 9-4 9 Escriba un programa que mande señales high y low a P8 dos veces cada segundo. Sugerencia: El programa LedOnOff.bs2 del Capítulo 2 solamente necesita modificarse para mandar señales high/low a P8 en lugar de P14. 9 Ejecute el programa y verifique que le da el control de Enc/Apag del LED.

Vdd

Vdd

X3

LED

P8

100 kΩ

100 kΩ

Vss

P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 X2

Vin

Vss

Figura 9-4 Circuito del BASIC Stamp que controla el Enc/Apag entregando corriente al LED con transistor.


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

ACTIVIDAD #2: PRESENTANDO EL POTENCIOMETRO DIGITAL En esta actividad el ajuste manual del potenciometro con un circuito integrado que es un potenciometro que se ajusta digitalmente. Luego, programará el BASIC Stamp para ajustar el potenciometro digital, y este ajustará el brillo del LED en forma semejante como lo hizo manualmente con el potenciometro en la actividad anterior. Presentando el Potenciometro Digital

La Figura 9-5 muestra el mapa de pines del potenciometro digital que usará en esta actividad. El chip tiene 8 pines, cuatro por lado que están espaciadas para insertarlo con facilidad en su tablilla (tienen 1/10 de pulgada de separación). El fabricante coloca un punto de referencia en el empaque de plástico que le indica la diferencia entre el pin 1 y el pin 5. El punto de referencia es una pequeño medio círculo en el empaque del chip. Usted puede usar este punto como una referencia para los números de los pines del chip. Los números de los pines en el chip se cuentan arriba, en sentido inverso a las manecillas del reloj. Sustitución de partes. Para Parallax a veces es necesario sustituir una parte. La parte funcionará igual, pero su etiqueta puede ser diferente. Usted puede encontrar que el potenciometro digital incluido en las partes de su Kit Que es un Microcontrolador no está marcado con AD5220 pero tenga la seguridad que trabajara correctamente en esta actividad.

Reference Notch Figura 9-5 AD5220 Pin Map 1 CLK

Vdd 8

2 U/D

CS 7

3 A1

B1 6

4 GND

W1 5

AD5220

Use the reference notch to make sure you have the AD5220 right-sideup when building it into your circuit on the breadboard.


Bloques de Construcción Electrónicos · Página 297

Este es un resumen de cada uno de los pines y funciones del CI AD5220 1. CLK: Es el pin que recibe los pulsos de reloj (señales low-high) que mueven la terminal W central. 2. U/D: Es el pin que recibe la señal high para hacer que la terminal W central se mueva hacia A1, la terminal W verdaderamente no se mueve hasta que un pulso (señal low-high-low) se manda al pin CLK. 3. A1: Es la terminal A del potenciómetro. 4. GND: Es la conexión de tierra. La tierra en la Tablilla Board of Education y BASIC Stamp Home Work es la terminal Vss. 5. W1: Es la terminal W del potenciometro 6. B1: Es la terminal B del potenciometro 7. CS: Es la terminal Selección de Chip. Al aplicarle una señal high a este pin, el chip ignora todas las señales de control que mandadas a CLK y U/D. Al aplicarle una señal low a este chip, actua con cualquier señal de control que recibe. 8. Vdd: Se conecta a +5 V, que es Vdd en la tablilla Board of Education y BASIC Stamp HomeWork. Hoja de Datos de AD5220: Para ver la hoja de datos de AD5220: vaya a la liga www.analog.com Meta AD5220 en el cuadro Search de la página principal de Analog Devices y déle click en el botón Search. Dé click en Data Sheets. Dé click en la liga que dice “AD5220: Increment/Decrement Digital Potentiometer Datasheet”

Partes del circuito Transistor Controlado con Potenciometro Digital

Un Transistor 2N3904 Dos Resistores de 100 K Ω (café-negro-amarillo) Un LED de cualquier color Un Potenciometro Digital AD5220 Diez alambres para puentes Construyendo el Circuito del Potenciometro Digital

La Figura 9-6 muestra el circuito esquemático con el potenciometro digital usado en lugar de un potenciometro manual, y la Figura 9-7 muestra el diagrama de alambrado del circuito. El BASIC Stamp puede controla el potenciometro digital mandando señales de control a los pines P5 y P6. 9 Construya el circuito mostrado en la Figura 9-6 y 9-7.


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

Vdd

Vdd Vdd

AD5220 P6

1

CLK

Vdd 8

P5

2

U/D

CS 7

3

A1

B1 6

GND 4

W1 5

Figura 9-6 Circuito Esquemático del Transistor Controlado por Potenciometro Digital

100 kΩ 100 kΩ

Vss

Vss

Vdd

Vin

Vss

X3

Figura 9-7 Diagrama de alambrado de la Figura 9-6 AD5220

P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 X2

Programando Control del Potenciometro Digital

Imagine que la perilla del potenciometro manual del ejercicio anterior tiene 128 posiciones. Tambien imagine que el potenciometro está en la mitad de su rango de movimiento. Esto significa que usted puede girar la perilla en una dirección con 63 pasos y en la otra dirección con 64 pasos. Digamos que usted gira la perilla del potenciometro un paso en sentido de las manecillas del reloj. El LED brillará muy poquito. Esto sería lo mismo que mandar una señal high al pin U/D del AD5220 y mandar un puls o (high-low-high) al pin CLK. HIGH 5 PULSOUT 6, 1


Bloques de Construcción Electrónicos · Página 299

Ahora imagine que gira su potenciometro manual 3 pasos en sentido inverso de las manecillas del reloj. El LED brillará más poquito. Esto sería lo mismo que mandar una señal low al pin U/D del AD5220 y mandar tres pulsos al pin CLK. LOW 5 FOR counter = 1 TO 3 PULSOUT 6, 1 PAUSE 1 NEXT

En seguida imagine que usted gira el potenciometro totalmente en sentido de las manecillas del reloj. Esto es lo mismo que mandar una señal high a pin U/D del AD5220 mandando 65 pulsos a la terminal CLK. Y ahora el LED estará en su máximo brillo. HIGH 5 FOR counter = 1 TO 65 PULSOUT 6, 1 PAUSE 1 NEXT

Finalmente, imagine que usted gira el potenciometro totalmente en sentido inverso de las manecillas del reloj. El LED no emitirá luz. Esto es lo mismo que mandar una señal low a pin U/D mandando 128 pulsos a la terminal CLK. LOW 5 FOR counter = 0 TO 127 PULSOUT 6, 1 PAUSE 1 NEXT

Programa Ejemplo: DigitalPotUpDown.bs2

Este programa ejemplo ajusta el potenciometro hacia arriba y hacia abajo, de un extremo de su rango al otro extremo, haciendo que el LED brille gradualmente y luego gradualmente no emita luz. 9 Meta y ejecute el programa DigitalPotUpDown.bs2


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

' ¿Que es un Microcontroador? - DigitalPotUpDown.bs2 ' Barrido de valores digitales del pot. ' {$STAMP BS2} ' {$PBASIC 2.5} DEBUG "Programa Ejecutandose!" counter

VAR

Byte

DO LOW 5 FOR counter = 0 TO 127 PULSOUT 6, 1 PAUSE 10 NEXT HIGH 5 FOR counter = 0 TO 127 PULSOUT 6, 1 PAUSE 10 NEXT LOOP

Su Turno – Cambiando la Velocidad y Reducción del Código

Usted puede incrementar o disminuir la velocidad con la que el LED brilla y se apaga, cambie el argumento Duration de la instrucción PAUSE 9 Modifique y ejecute el programa usando PAUSE 20 y observe la diferencia en velocidad con que el LED brilla y se apaga. 9 Repita usando PAUSE 5. Para simplificar el programa usted puede usar una instrucción llamada TOGGLE. TOGGLE cambia el estado de un pin E/S del BASIC Stamp, si el pin E/S estaba mandando una señal high, TOGGLE hace que mande una señal low. Si el pin E/S estaba mandando una señal low, TOGGLE hace que mande una señal high. 9 Guarde el programa DigitalPotUpDown.bs2 con el nombre DigitalPotUpDownWithToggle .bs2 9 Modifique el programa para que sea como el que mostramos abajo. 9 Ejecute el programa y verifique que funciona de la misma forma como el programa DigitalPotUpDown.bs2 9 Compare el número de líneas de código que necesito para hacer el mismo trabajo


Bloques de Construcción Electrónicos · Página 301

La Ejecución Fuera de la Memoria de Programa es un problema que algunas personas encuentran cuando los proyectos del BASIC Stamp son muy grandes y complicados. Al usar TOGGLE en lugar de dos bucles FOR...NEXT es exáctamente un ejemplo de algunas técnicas que pueden usarse para hacer el mismo trabajo con la mitad de líneas de código.

' ¿Qué es un Microcontrolador? - DigitalPotUpDownWithToggle.bs2 ' Barrido de Valores Digitales del Pot. ' {$STAMP BS2} ' {$PBASIC 2.5} DEBUG "Programa en Ejecución!" counter LOW 5

VAR

Byte

DO FOR counter = 0 TO 127 PULSOUT 6,5 PAUSE 10 NEXT TOGGLE 5 LOOP

Mirando el Interior del Potenciometro Digital

La Figura 9-8 muestra un diagrama del interior del potenciometro AD5220. El AD5220 tiene 128 elementos resistivos cada uno de 78.125 Ω (valor nominal). Los 128 elementos suman 10 K Ω. 3

A1 Ad5220

78 Ω pos. 127

1 CLK 2 U/D 5 7 CS

78 Ω

pos. 126

W1 40 Ω

78 Ω

pos. 125 …

… 78 Ω

pos. 1 78 Ω B1

pos. 0 6

Figura 9-8 Interior del AD5220


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

Un valor nominal significa un valor nombrado. Elementos como los resistores y capacitores tipicamente tienen un valor nominal y una tolerancia. Cada uno de los elementos resistivos del AD5220 tienen un valor nominal de 78.125 Ω con una tolerancia del 30 % (23.438 Ω) arriba y debajo de su valor nominal.

Entre cada uno de estos elemtos resistivos hay un interruptor llamado “derivación” (tap). En verdad cada interruptor es un grupo de transistores que se conmutan Enc/Apag para permintir o no permitir el paso de corriente. Solamente uno de estos interruptores puede cerrarse al mismo tiempo. Si se cierra uno de los interruptores superiores (por ejemplo la posición 125, 126 o 127) es como tener la perilla del potenciometro manual casi al extremo en el sentido de las manecillas del reloj. Si se cierra la posición 0 o 1 es como tener la perilla del potenciometro manual casi al extremo en el sentido inverso de las manecillas del reloj. Imagine que se cierra la posición 126. Si usted desea mandar la derivación a 125, (la posición 126 abierta y la posición 125 cerrada), fije U/D en low y luego aplique un pulso a CLK. Si usted desea fijar la derivación en la posición 127 , fije U/D en high y aplique dos pulsos. Si usted desea regresar la derivación a 1, fije U/D en low y aplique 126 pulsos. El siguiente Programa Ejemplo usa la Terminal Debug para preguntarle que derivación desea usted cerrar. Luego decide si el pin U/D se fija en high o low y aplica el número correcto de pulsos para mover la derivación de su posición vieja a su posición nueva. Con excepción de Data EEPROM, el siguiente Programa Ejemplo tiene casi todas las secciones que usted normalmente espera encontrar en un programa de aplicación. • • • • • •

Título – Son comentarios que incluyen el nombre del archivo de un programa su descripción las directivas del PBASIC. Data EEPROM – Son declaraciones DATA que almacenan listas predefinidas de valores en porciones de la memoria EEPROM que no se necesitan para almacenar programa Definiciones I/O – Son directivas PIN que le dan nombre a los pines I/O Constantes – Son declaraciones CON que le dan valores a los nombres en el programa. Variables – Son declaraciones VAR que le asignan nombres a porciones de la memoria RAM del BASIC Stamp para almacenar valores. Initialization- Es una rutina que para iniciar el programa con el pie derecho (correctamente). En el siguiente programa, la derivación del potenciometro necesita fijarse en cero.


Bloques de Construcción Electrónicos · Página 303

• •

Main – Es la rutina que maneja los principales trabajos que el programa tiene que hacer. Subrutinas – Son segmentos de código que hacen trabajos específicos, unos con otros o en este caso para la rutina principal.

Programa Ejemplo: TerminalControlledDigitalPot.bs2

Usted puede usar este Programa Ejemplo y la Terminal Debug para fijar la derivación del potenciometro digital. Cambiando el ajuste de la derivación del potenciometro digital, usted puede cambiar el brillo del LED conectado al transistor que controla el potenciometro digital La Figura 9-9 muestra un ejemplo para meter el valor 120 en la ventana de Transmisión de la Terminal Debug mientras corre el programa.Como el ajuste anterior del tap era 65, el LED brillará al doble cuando se haga el ajuste a 120.

Windowpanes Transmit →

Receive →

Figura 9-9 Mandando mensajes al BASIC Stamp Haga click en la ventana (superior) y meta los números para el nuevo ajuste de la derivación

9 Meta y ejecute el programa TerminalControlledDigitalPot.bs2 9 Asegúrese que la ventanita Echo Off está sin marcar. 9 Haga click en la ventana Transmit de la Terminal Debug para colocar ahí el cursor. 9 Meta valores entre 0 y 127 en la Terminal Debug. Asegurese de presionar la tecla Enter despues de haber escrito los dígitos. ' -----[ Title ]----------------------------------------------------------' ¿Que es un Microcontrolador? - TerminalControlledDigitalPot.bs2 ' Actualiza la derivación del pot digita en función de lo que mete en Terminal Debug. ' {$STAMP BS2} ' {$PBASIC 2.5} ' -----[ Datos en EEPROM

]-------------------------------------------------


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

' -----[ Define E/S ]------------------------------------------------UdPin ClkPin

PIN PIN

5 6

' Fija valores de los pines E/S ' conectados a CLK y U/D.

' -----[ Constants ]------------------------------------------------------DelayPulses DelayReader

CON CON

10 2000

' Retardo para observar iliminación del LED.

' -----[ Variables ]------------------------------------------------------counter oldTapSetting newTapSetting

VAR VAR VAR

Byte Byte Byte

' Contador para FOR...NEXT. 'Ajuste de Derivación previa. 'Ajuste Nuevo de Derivación

' -----[ Initialization ]-------------------------------------------------oldTapSetting = 0 newTapSetting = 0

' Initializa el nuevo y viejo ' ajustes de Derivación a cero

LOW UdPin FOR counter = 0 TO 127 PULSOUT 6,5 PAUSE 1 NEXT PAUSE 1000

'Fija Pin de Arriba/Abajo pin para bajar. 'el ajuste de Derivación a su mínimo nivel.

' Espera 1 s antes del 1er mensaje

' -----[ Main Routine ]---------------------------------------------------DO GOSUB Get_New_Tap_Setting GOSUB Set_Ud_Pin GOSUB Pulse_Clk_pin

' Indicador de usuario y obtener entrada. ' Fija pin Arriba/Abajo para up/down. ' Manda pulsos.

LOOP ' -----[ Subroutines ]----------------------------------------------------Get_New_Tap_Setting:

' Muestra instrucciones y ' obtiene entrada de user del nuevo ' valor de ajuste de Derivación.

DEBUG CLS, "Tap setting is: ", DEC newTapSetting, CR, CR DEBUG "Enter new tap", CR, "setting (0 TO 127): " DEBUGIN DEC newTapSetting RETURN Set_Ud_Pin:

' Examina los valores nuevos y viejos de Derivación 'para decidir el valor del pin de Arriba/Abajo . IF newTapSetting > oldTapSetting THEN ' Notifica usuario si valore HIGH UdPin ' son iguales.


Bloques de Construcción Electrónicos · Página 305

oldTapSetting = oldTapSetting + 1 ' Incrementa el pin Pulse_Clk_pin. ELSEIF newTapSetting < oldTapSetting THEN LOW UdPin oldTapSetting = oldTapSetting - 1 ' Decrementa el pín Pulse_Clk_pin. ELSE DEBUG CR, "New and old settings", CR, "are the same, try ", CR, "again...", CR PAUSE DelayReader ' Da tiempo lectura para ver ENDIF ' Mensaje. RETURN Pulse_Clk_pin: ' Manda pulsos de valores nuevos y viejos. Recuerde que Set_Ud_Pin ' ajustaron el valor de ajuste viejo a ajuste nuevo en una unidad. ' Esto mantiene el bucle FOR...NEXT loop ejecutandose de una a muchas vees. FOR counter = oldTapSetting TO newTapSetting PULSOUT ClkPin, 1 PAUSE DelayPulses NEXT oldTapSetting = newTapSetting

' Mantiene el ajuste de viejos y nuevos ' valores de ajuste.

RETURN

RESUMEN Este capítulo presentó los circuitos integrados y la forma como pueden usarse con el BASIC Stamp. Se usó un transistor como válvula de corriente, y un potenciometro digital para controlar la cantidad de corriente que pasa a través del transistor. Al examinar los potenciometros digitales presentamos el punto de referencia y el mapa de pins como elementos importantes de chips electrónicos. Se analizó la función de cada uno de los pines del potenciometro digital y también la estructura interna del dispositivo. Se presentó la instrucción TOGGLE del PBASIC como medio para ahorrar memoria de programa. Preguntas

1. ¿Cuáles son los nombres de las terminales del transistor que usted usó en este capítulo? 2. ¿Qué terminal controla en paso de corriente a través del transistor? 3. ¿Cómo puede usted incrementar o decrementar la corriente que pasa a través del transistor?


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

Ejercicio

1. Escriba un programa que ajuste la derivación del potenciometro digital en la posición, sin importar su posición actual. Proyecto – Desafio Avanzado

1. Agregue un fototransistor a su proyecto y haga que el brillo del LED se ajuste con la cantidad de luz que sensa el fototransistor. Nota: la solución es importante ya que demuestra una aproximación útil para escalar una entrada a otra salida. Soluciones

Q1. Emistor, Base y Colector. Q2. La base controla la corriente que pasa a través del transistor. Q3. Incremente o decremente la corriente permitida en la base del transistor. E1. Para resolver este ejercicio, vea el programa TerminalControlledDigitalPot.bs2. La primer actividad por hacer en la sección Inicialización, es fijar la derivación en su posición más baja. Este cóodigo es precisamente lo que usa la solución de abajo. ' ¿Qué es un Microcontrolador? - Ch9Ex01_SetTapToZero.bs2 ' Gira el Potenciometro Digital hasta cero ' {$STAMP BS2} ' {$PBASIC 2.5} DEBUG "Program Running!"

UdPin ClkPin counter

PIN PIN VAR

LOW UdPin FOR counter = 0 TO 128 PULSOUT ClkPin,5 PAUSE 1 NEXT

5 6 Byte

' Fija los valores de los pines E/S ' Conectado a CLK y U/D. ' Contador de FOR...NEXT. ' Ajusta el pin Arriba/Abajo en Abajo. ' Fija Derivación en valor Mínimo.

P1. Use el circuito del potenciometro digital que muestra la Figura 9-6 y el circuito fototransistor de la Figura 7-4. Esta solución se obtiene con el programa TerminalControlledDigitalPot.bs2, e incorpora elementos del programa PhototransistorAnalogToBinary.bs2 del Capítulo 7, Actividad # 5.


Bloques de Construcción Electrónicos · Página 307

Tambien aplica algo de Algebra para resolver el problema de escalamiento que hace el rango de los valores que usted podría obtener de las mediciones de tiempo RC del fototransistor se ajusten al rango de 0 a 128 para el potenciometro digital. Recuerde que esta es una solución del ejemplo, y no significa que sea la única solución o aproximación. La llamada a la subrutina GOSUB Get_New_Tap_Setting del programa TerminalControlledDigitalPot.bs2 se reemplaza por otras dos llamadas a subrutina GOSUB Read_Phototransitos y GOSUB Scale:Phototransitor. De igual manera la subrutina Get_New_Tap-Setting se reemplaza por Read_Phototransistor y Scale_Phototransistor. La subrutina Read_Phototransistor es una versión de subrutina de las instrucciones que toma las mediciones de RCTIME del fototransistor y limita su rango de entrada en el programa PhototransistorAnalogToBinary.bs2. El pin, se han ajustado los nombres constantes y variables, y ha cambiado PAUSE 100 a PAUSE 10 para que muestre 10 veces por segundo, estos cambios se necesitaron para cargar el capacitor antes de tomar la medición de RCTIME. Después esta subrutina almacena un valor en la variable lightReadin, este valor tiene que estar entre ValMin (100) y ValMax (4000). Asegurese de verificar y ajustar estos valores para su propias condiciones de iluminación. El problema que ahora tenemos es que solamente hay 128 ajustes de derivación, y 3900 mediciones posibles de RCTIME del fototransistor. Para resolver este problema necesitamos dividir las mediciones RCTIME del fototransistor por algún valor para hacer que ajuste en el rango 0 a 127. Entonces, sabemos que necesitamos dividir el rango de valores de entrada por algun valor para hacer que quede entre 128 valores. Usaremos esta ecuacion Rango de Mediciones posibles del Fototransistor = 128 valores posibles de derivación / Divisor de Escala Para resolver esto, multiplicamos ambos lados de la ecuación por Divisor de Escala, y luego dividimos ambos lados por 128 valores posibles de derivación Divisor de Escala = Rango de Mediciones posibles del Fototransistor 128 valores posibles de derivación


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

En el código, el Rango de Mediciones posibles del transistor es ValMax – ValMin, y scaleDivisor es una variable, y 128 es una constante. Entonces, este código de la sección Declaraciones e Inicialización calcula el valor de scaleDivisor como ScaleDivisor = (valMax - valMin) / 128

Después de cada medición RCTIME del fototransistor, la subrutina Scale_Phototransistor resta valMin de lightReading y luego divide la medición por scaleDivisor. El mapa resultante de mediciones de entrada del rango de 100 a 4000 cambia al rango de 0 a 127 ajustes de salida del derivador. Escala_Fototransistor LightReading = (lightReading - valMin) / scaleDivisor RETURN

Considerando que ValMin es 100 y ValMax es 400, la variable lightReading podría almacenar 3900 valores posibles. ¿Qué sucede si el rango de entrada fue ValMin = 10,000 a ValMax = 13900? Cuando usted resta ValMin = 10000 todavía hay 3900 valores posibles, y dividiendolo por scaleDivisor mapeará correctamente las mediciones a los ajustes correspondientes de derivación del potenciometro digital. Si su código no restó primero ValMin, el valor escalado resultante podría estar completamente fuera del rango 0 a 128 del potenciometro digital. ' ' ' '

¿Qué es un Microcontrolador? Ch9Prj01_PhotoControlledDigitalPot.bs2 Actualiza el pot digital basado en lectura del fototransistor {$STAMP BS2} {$PBASIC 2.5}

' -----[ Declaraciones UdPin PIN ClkPin PIN PhotoPin PIN DelayPulses CON DelayReader CON valMax CON valMin CON

e Inicialización]-----------------------------5 ' Fija valores de pine E/S 6 ' Conectado a CLK y U/D. 2 ' Fototransistor en pin P2 10 ' Retardo pora observar brillo de LED. 2000 4000 'Valor Max del fototransistor 100 ' Valor Min del fototransistor

counter oldTapSetting newTapSetting lightReading scaleDivisor

Byte Byte Byte Word Word

VAR VAR VAR VAR VAR

' ' ' ' '

Contadorr para FOR...NEXT. Ajuste Previo de Derivación. Ajuste Nuevo de Derivación. lectura del fototransistor Para Escalamiento de valores


Bloques de Construcción Electrónicos · Página 309

' Fije un valor that que pueda dividirse en RCTIME del fototransistor ' para escalarlo a un valor en el range de 0 a 128 scaleDivisor = (valMax - valMin) / 128 oldTapSetting = 0 newTapSetting = 0

' Initialicee el nuevo y viejo ' ajuste del Derivación a cero.

LOW UdPin FOR counter = 0 TO 127 PULSOUT ClkPin,5 PAUSE 1 NEXT

' Ajuste el pin Arri/Abaj en Abajo. ' Ajuste Derivación a mínima posición.

PAUSE 1000

' Espera 1 sec. Antes 1er mensaje

' -----[ Rutina Principal ]---------------------------------------DO GOSUB Read_Phototransistor GOSUB Scale_Phototransistor newTapSetting = lightReading MIN 1 MAX 127 DEBUG HOME, DEC5 lightReading GOSUB Set_Ud_Pin ' Fije el pin Arri/Abajo en Abajo. GOSUB Pulse_Clk_pin ' Manda pulsos. LOOP ' -----[ Subrutinas ]------------------------------------------------Set_Ud_Pin: ' Examina viejos y nuevos IF newTapSetting > oldTapSetting THEN ' valores para decidir HIGH UdPin ELSEIF newTapSetting < oldTapSetting THEN ' el valor pin. Y LOW UdPin ' notificar al usuario si ENDIF ' los valores son iguales. RETURN Pulse_Clk_pin: ' Manda pulsos FOR counter = oldTapSetting TO newTapSetting ' de viejos PULSOUT ClkPin, 1 ' a nuevos valoress. PAUSE DelayPulses NEXT oldTapSetting = newTapSetting ' Mantiene el ajuste de nuevos RETURN 'y viejos valores. Read_Phototransistor: HIGH PhotoPin PAUSE 1 RCTIME PhotoPin, 1, lightReading lightReading = lightReading MAX valMax MIN valMin RETURN Scale_Phototransistor: lightReading = (lightReading - valMin) / scaleDivisor RETURN


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

¿Qué es un Microcontrolador? Cap.9  

Capítulo 9: Bloques de Construcción Electrónicos

Read more
Read more
Similar to
Popular now
Just for you