Está en la página 1de 12

PROGRAMACIÓN VISUAL

MOTOR DE CORRIENTE CONTINUA


El motor de corriente continua (CD) es un dispositivo que convierte energía eléctrica en mecánica
por medio de un movimiento rotatorio. La principal característica del motor de CD es la posibilidad
de regular la velocidad desde lo mínimo a lo máximo. Una de las aplicaciones para la cual se requiere
un motor de CD es para cambios de giro, por ello se utilizan dos circuitos típicos, uno llamado puente
H por transistores y otro basado en relevadores, al usar relevadores permite un control de motores
de gran capacidad de corriente.

Fig. 1 Diagrama de un Puente H

Fig. 2 Puente H con Relevadores

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 1


PROGRAMACIÓN VISUAL

PRINCIPIO DE FUNCIONAMIENTO

Cerrando el interruptor S1 hacemos fluir una corriente en el


circuito, si cerramos el interruptor S4 provocamos que la misma
corriente que atraviesa el motor caiga en tierra de nuestro
circuito, lo que provocará que exista un movimiento hacia la
derecha o en sentido Horario

Fig. 3 Giro Horario

Ahora si se cierran los interruptores S2 y S3, provocamos el mismo


efecto, una corriente que circula a través del motoro y que
descansa en tierra, en este caso, el sentido del movimiento será
hacia la izquierda o Antihorario

Fig. 4 Giro AntiHorario

Lo que se debe de cuidar es no caer en errores como el cerrar los cuatro interruptores a la vez ya
que provocará un consumo de corriente debido a que la corriente se dividirá y tratará de llegar a
tierra, sin embargo lo realizará por ambos lados y provocará que el motor se quede trabado pero
en funcionamiento y por lo tanto el curcuito se descompondrá.

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 2


PROGRAMACIÓN VISUAL

CIRCUITO L293D (PUENTE H)


El CI L293D es un driver que posee 4 canales capaz de proporcionar una corriente de salida de hasta
1A por canal. Cada canal es controlado por señales de entrada compatibles con TTL y cada pareja
de canales dispone de una señal de habilitación llamada ENEABLE que desconecta las salidas de los
mismos. Dispone de una terminal para la alimentacion de las cargas que se estan controlando, de
fomra que dicha alimentacion es independiente de la logica de control, en la figura siguiente se
muestra el circuito y la descripcion de las terminales.

La señal de control EN1 activa las parejas de canales formadas por los
drivers 1 y 2, la señal EN2 activa la pareja de drivers 3 y 4,. Las salidas OUT1
a OUT4 se asocian con las correspondientes entradas IN1 a IN4. El motor
responde a una tabla de verdad misma que indica que pulsos se tienen que
enviar a través de sus entradas.

A B SALIDA
0 0 PARO
0 1 HORARIO
1 0 ANTIHORARIO
1 1 PROHIBIDO

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 3


PROGRAMACIÓN VISUAL

SERVOMOTOR
El servomotor es un dispositivo electromecánico que consiste en un motor eléctrico, un juego de
engranes y una tarjeta de control, todo dentro de una carcasa de plástico. Un servo tiene la
capacidad de contralar su posición. Es capaz de ubicarse en cualquiera de ella dentro de un rango
de operación generalmente de 0° a 180°, se suelen utilizar en robótica, automática y modelismo
(vehículos por radio-control, RC) debido a su gran precisión en el posicionamiento.

Los servomotores funcionan por medio de modulación por ancho de pulso (PWM), todos los servos
disponen de tres cables, dos para alimentación Vcc y Gnd (4.8 a 6 V) y un tercero para aplicar el tren
de pulsos de control para moverlo a la posición indicada. La frecuencia del PWM usada es de 50 Hz
esto significa que cada ciclo dura 20 ms. Las duraciones de cada pulso se interpretan como
comandos de posicionamiento del motor, mientras que los espacios entre cada pulso son
despreciados.

Fig. 5 Frecuencias de un Servomotor

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 4


PROGRAMACIÓN VISUAL

LIBRERÍA SERVO
Lo primero que hay que hacer para poder controlar un servomotor utilizando esta librería es
declarar un objeto de tipo Servo. Si suponemos que lo llamamos “miservo”, esto se haría con la
línea: Servo miservo; en la zona de declaraciones globales. A partir de aquí, la primera función
imprescindible que debemos escribir (normalmente dentro de “setup()”) es:

miservo.attach(): vincula el objeto “miservo” con el pin digital de la placa Arduino donde está
conectado físicamente el cable de control del servomotor. Su parámetro precisamente es el número
de ese pin. Esta función no tiene valor de retorno.

miservo.write(): controla el eje del servomotor. Su único parámetro es el ángulo (en grados) donde
se quiere situar dicho eje. Como resultado de ejecutar esta instrucción en un servomotor estándar,
se obtendrá un movimiento del eje hasta alcanzar ese ángulo especificado.

miservo.writeMicroseconds(): controla el eje del servomotor. Su parámetro –de tipo “int”–, en vez
de ser el ángulo en grados como en miservo.write(), es la duración del pulso de la señal de control.
Un valor de 1500 mantiene el eje en la posición central, un valor de 1000 lo mueve hasta su posición
mínima y un valor de 2000 lo mueve hasta el otro extremo. Algunos fabricantes no siguen este
estándar muy estrictamente, por lo que los servomotores a menudo responden a valores entre 700
y 2300, así que en la práctica deberemos ir probando de aumentar los límites hasta que el
servomotor no aumente su movimiento. De todas formas, intentar hacer funcionar un servomotor
más allá de sus límites (frecuentemente notificado por un ruido característico) es un estado de alta
corriente y debería ser evitado. Esta función no tiene valor de retorno.

miservo.read(): devuelve el ángulo actual del servomotor (es decir, el valor pasado en la última
ejecución de miservo.write()).No tiene ningún parámetro.

miservo.attached(): comprueba si el objeto “miservo” está vinculado a algún pin de la placa


Arduino. Si es así, devuelve “true”, si no, “false”. No tiene ningún parámetro.

miservo.detach(): desvincula el objeto “miservo” del pin de la placa Arduino asociado. Solamente
cuando todos los objetos Servo existentes en nuestro sketch sean desvinculados, los pines 9 y 10
de la placa podrán ser utilizados como salida PWM estándar otra vez. No tiene ni parámetros ni
valor de retorno.

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 5


PROGRAMACIÓN VISUAL

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 6


PROGRAMACIÓN VISUAL

SCROLLBAR EN C#
Los Formularios de Windows contienen las herramientas de Scroll que proveen una navegación a
través de largas listas de elementos ya sea verticales u horizontales. Muchos desarrolladores
implementan Scrolls para el control de software o desplazamientos.

Existen dos controles, el HScroll (horizontal) y VScroll (vertical) ambos controles operan de manera
independiente entre ellos y tienen los mismos eventos, propiedades y métodos.

Propiedad Value

La propiedad Value (cuyo valor por default es 0) es del tipo int y corresponde con la posición del
scrollbar. Cuando la barra se desplaza al valor mínimo, se desplaza a la izquierda para los scroll
horizontales y abajo en los scroll verticales, de caso similar ocurre cuando alcanza los valores
máximos.

Recordemos que debemos de programar cada control con lo que se quiere realizar, en este caso
queremos que nuestro control HScrollBar muestre los valores de su desplazamiento en un label,
para ello vamos crear una interfaz como lo muestra la siguiente imagen:

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 7


PROGRAMACIÓN VISUAL

Al darle click a cada uno de los scroll, generamos sus eventos, a continuación se muestra cada uno
de los eventos

Ambos métodos funcionan de la misma manera, en ambos deseamos que se muestre el valor
numérico de los scrolls dentro de los label, el label o textbox, son objetos de tipo string, y el de los
scrolls son de tipo entero, entonces lo que estamos haciendo es obtener la propiedad Value que es
de tipo int y la transformamos usando el método ToString(), para que pueda ser mostrado en el
label por medio de su propiedad Text, el segundo scroll hace exactamente lo mismo.

En este caso el objeto label tiene el valor número pero en formato string, si se quiere obtener el
valor entero para ser enviado a arduino es necesario declarar una variable global que sea de tipo
entero como se muestra a continuación:

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 8


PROGRAMACIÓN VISUAL

El resultado final se muestra a continuación:

LLAMADAS A OTROS FORMULARIOS

En C# podemos crear distinto formularios y activarlos cuantas veces sean necesarios, sin embargo
dependen del formulario principal para poder ser invocados.

Al trabajar con un lenguaje visual, todos los elementos se convierten en objetos, y los formularios
(Forms) no son la excepción.

También manejan propiedades y eventos, los principales son los que precisamente nos permite
manipularlos, entre ellas destacan únicamente para nuestros fines las siguientes:

Show(): Permite al formulario mostrarse, en este caso cuando es invocado por otro formulario o
por algún objeto, al abrirse el formulario principal (padre) se mantiene abierto y activo.

ShowDialog(): Permite mostrar y ocultar el formulario anterior, además de que el nuevo


formulario es el que tendrá todos los controles activos.

Hide(): Oculta el formulario actual, en el caso de que el padre invoque al formulario, podemos
aplicar esta propiedad para ocultar el formulario mientras se encuentra activo el hijo, pero
debemos recordar que al cerrar el formulario hijo necesitamos restaurar al padre.

Close(): Cierra definitivamente el formulario pero sigue activo en memoria del CPU.

Dispose(): Libera todos los recursos del formulario que se cerró y deja vacía la sección de memoria
del CPU desde donde se invocó.

M. EN E. JUAN MANUEL ZARAGOA AMBRIZ 9


PROGRAMACIÓN VISUAL

Para invocar un nuevo formulario seguimos las instrucciones siguientes:

1.- Creamos un proyecto nuevo y damos el nombre que deseemos. Damos click derecho en árbol
del proyecto y seleccionamos Agregar y elegimos Windows Forms

2.- Asignamos un nombre o bien lo dejamos por defecto (Form2.cs) y damos clic en Agregar:

1
M. EN E. JUAN MANUEL ZARAGOA AMBRIZ
0
PROGRAMACIÓN VISUAL

3.- Una vez creado, debemos de tener la ventana como se muestra a continuación:

4.- Ahora Agregamos un botón a cada formulario para poder controlar los accesos.

1
M. EN E. JUAN MANUEL ZARAGOA AMBRIZ
1
PROGRAMACIÓN VISUAL

5.- En cada botón programamos las llamadas para que funcionen de acuerdo al siguiente código:

Observe lo siguiente: hacemos uso de la palabra reservada this para referirnos al objeto actual, este
caso a nuestro Form1, ya que desde ahí se está haciendo la invocación al Form2; por otro lado,
ocupamos la propiedad ShowDialog() que nos permite mostrar el nuevo formulario y ocultar por
completo el formulario anterior, y finalmente hide() para ocultar el formulario anterior y show()
para que cuando el nuevo formulario se cierre, nuevamente se vuelva a abrir el primer formulario.

1
M. EN E. JUAN MANUEL ZARAGOA AMBRIZ
2

También podría gustarte