• No se han encontrado resultados

Prácticas de InstrumentaciónComunicación PC a PIC dual #2

N/A
N/A
Protected

Academic year: 2021

Share "Prácticas de InstrumentaciónComunicación PC a PIC dual #2"

Copied!
15
0
0

Texto completo

(1)

Prácticas de Instrumentación Comunicación PC a PIC dual #2

Miguel Ceballos; Verónica López; Luis López; Ángel Mendoza; Martín Silva INSTITUTO TECNOLÓGICO DE COLIMA

Departamento de Ingeniería Mecatrónica

Av. Tecnológico No. 1 villa de Álvarez C.P. 28976 Tel: 312 99 20 Fax: 314 0683.

Resumen— En el presente reporte se mostrara de una forma clara y entendible para personas con bajo conocimiento en el área de instrumentación, como realizar una práctica de comunicación de PC a PIC dual, con ayuda del conocimiento de la comunicación serial y programas de interfaz gráfica, asimismo nos apoyaremos con material didáctico como son imágenes, códigos de programación y videos; con la finalidad de que dicho reporte en mención sea una guía o comúnmente como una receta, de la realización de la práctica de comunicación PC a PIC dual #2.

I. INTRODUCCIÓN

El presente documento es una guía de cómo se puede realizar una comunicación serial de PC a PIC y de PIC a PC al mismo tiempo, donde se aprenderá paso por paso y con explicaciones claras que materiales son los que se utilizan.

La comunicación serial consiste en el envío de un bit de información de manera secuencial, esto es un bit a la vez y a un ritmo acordado entre el emisor y el receptor.

II. PLANTEAMIENTO DEL PROBLEMA

Realizar una comunicación serial con la cual se pueda controlar la referencia de temperatura ambiente a la cual se prende un ventilador de corriente alterna mandando la referencia desde el PC usando una interfaz gráfica.

III. MARCO TEÓRICO

Microcontrolador (PIC 16f877A)

Es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de una computadora completa en un solo circuito integrado programable y se destina a gobernar una sola tarea con el programa que reside en su memoria. Sus líneas de entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar.

Figura 1. Pic PIC 16f877A

XTAL (cristal)

Dentro de la carcasa de metal es una

pequeña pieza de cristal de cuarzo que se

ha cortado con precisión en tamaño de

modo que la pieza de cristal vibra a una

frecuencia específica. El valor del cristal

generalmente es de 4Mhz. o 10Mhz.

(2)

Figura 2. Cristal utilizado para la frecuencia de ejecución que utiliza el pic.

Capacitor cerámico

Los capacitores cerámicos son utilizados en circuitos resonantes, alta frecuencia y acoplamiento, dieléctricos de temperatura compensada, estabilidad dieléctrica y otras aplicaciones.

Figura 3. Capacitor cerámico utilizado para el buen funcionamiento del pic.

JY-MCU

Modulo de comunicación serial que recibe la señal que se deséa enviar del PIC transfiriendola vía bluetooth, usador para comunicar de forma inalambrica el PIC con algún dispositivo con bluetooth.

Figura 4.Modulo bluetooth JY-MCU para PIC.

Display LCD (16 x 2)

Las pantallas LCD están construidas en base a un material cuya polarización de la luz varía en presencia de un campo eléctrico denominado cristal liquido, este display funciona gracias a un circuito interno el cual hace que cuando el display

se conecte al microcontrolador de forma correcta y por una serie de instrucciones, en la pantalla muestre los caracteres que se quieren.

Figura 5. LCD (display) utilizado para la impresión de resultados.

Circuito integrado LM35

Sensor de temperatura con una precisión calibrada de 1ºC. Puede medir

temperaturas en el rango que abarca desde -55º a + 150ºC. La salida es muy lineal y cada grado centígrado equivale a 10 mV en la salida.

Figura 6. Circuito integrado LM35.

Triac

Dispositivo semiconductor, de la familia de los tiristores. La diferencia con un tiristor convencional es que éste es unidireccional y el TRIAC es bidireccional. De forma coloquial podría decirse que el TRIAC es un interruptor capaz de conmutar la corriente alterna.

Su estructura interna se asemeja en cierto

modo a la disposición que formarían

dos SCR en direcciones opuestas.

(3)

Figura 7. Triac

M.O.C

Un moc es un opto acoplador. Dentro de su encapsulado tiene un led infrarrojo y un fototransistor, la finalidad de esto es aislar el circuito de control del de carga

Figura 8. moc.

PCWHD

Compilador C de la firma CCS (Custom Computer Services). Lenguaje de alto nivel que contiene las funciones y librerías necesarias para el diseño de cualquier aplicación basada en microcontroladores PIC: matemáticas, control de protocolos serie, I2C, etc. La versión PCWHD admite todos los dispositivos PIC de las gamas baja (12xxx), media (16xxx) y alta (18xxxx), con núcleos de 12, 14 y 16 bits respectivamente y los nuevos PIC24/dsPIC de 24 bits.

Microsoft Visual C#

Lenguaje de programación orientada a objetos, el cual permite hacer programas con interfaces gráficas, el cual permite

además la comunicación atravez de un puerto serie.

ISIS Proteus

El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente) permite diseñar el plano eléctrico del circuito que se desea realizar con componentes muy variados, desde simples resistencias, hasta alguno que otro microprocesador o microcontrolador, incluyendo fuentes de alimentación, generadores de señales y muchos otros componentes con prestaciones diferentes. Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente con ISIS.

Figura 9. Programa simulador de circuitos electronicos.

Programador MINIPROG+

Es una herramienta de programación y depuración profesional para la familia de microcontroladores PIC. Con dicho programador se le graba al pic el programa creado y compilado en el programa de la figura 10.

Figura 10. Programador

PICKIT

Es una familia de programadores de

microcontroladores PIC realizados por

(4)

Microchip Technology. Se utilizan para programción y depuración de microcontroladores.

Figura 11. Programa para grabar el código al Microcontrolador.

Resistencia

Mayor o menor oposición que ofrecen los cuerpos conductores al paso de la corriente eléctrica, la unidad que mide la resistencia es el Ω, en la práctica se usará cierto número de resistencias las cuales se parecen a la de la Fig. 12, estas resistencias tienen 2 pines, no tienen polaridad y pueden tener un gran número de resistencia el cual es determinado por los colores de las franjas que tiene.

Figura 12. Resistencia

Protoboard

Tablero con orificios conectados eléctricamente entre sí, habitualmente siguiendo patrones de líneas, en el cual se Pueden insertar componentes electrónicos y cables para el armado y prototipado de circuitos electrónicos y sistemas similares.

Figura 13. Protoboard

Virtual Serial Port Driver

Programa usado para crear puertos virtuales los cuales ayudan a poder probar el circuito y los programas de forma virtual.

IV. LISTA DE MATERIALES

 1 PIC 16f877A

 1 Resistencia de 10KΩ

 1 Resistencia de 330Ω

 1 Moc 3011

 1 Triac 6073AG

 1 Resistencia de 2.7k

 1 T-block de 2 entradas

 Cable para corriente alterna

 1 Foco

 1 Socket

 Módulo JY-MCU

 1 Cristal de cuarzo de 4MHz

 1 Display LCD 16 x 2

 1 LM35

 2 Capacitores cerámicos de 22pF

 Cables para conectar en protoboard

 1 MINIPROG+

 1 Cable de USB A a USB B

 1 Computadora con ISIS proteus, PICkit, PCWHD y C#

V.

DESARROLLO

Para realizar la práctica primeramente se deben tener todos los materiales a la mano, tanto la computadora con los 4 software necesarios y los materiales físicos.

Primer paso. Conexión del circuito en el software ISIS Proteus, con todos los componentes de dicho circuito incluyendo la comunicación serial.

Nota: en este caso la conexión a la corriente

(5)

alterna se sustituye en el simulador por un LED, simulando que es el encendido del ventilador ya que el simulador tiene problemas a veces con la corriente alterna y los MOC.

Figura 14. Circuito conectado a comunicación serial.

Segundo paso. Se identifica las variantes de la problemática, y para solucionarlas se crea un programa en el PCWHD y en C#.

Tercer paso. Se crean puertos virtuales con ayuda del programa “Virtual Serial Port Driver” y se hace la configuración de los puertos seriales tanto en C# como en ISIS para que ambos puertos estén sincronizados acomodando el de ISIS en COM2 y el de C# en COM1 y ajustando los baudios de los puertos a 9600.

Cuarto paso. Se le carga el programa al Microcontrolador del circuito conectado en ISIS Proteus, esto se lleva acabo dando doble clic y cargando el archivo .hex creado al compilar el programa. Se continúa realizando la simulación para cerciorarse de que el programa cumple con las especificaciones necesarias para satisfacer la problemática actual.

Figura 15. Simulación del circuito de comunicación serial.

Quinto paso. Se hace la prueba del programa realizado en C# en conjunto

con la simulación en ISIS para comprobar que efectivamente hace la comunicación.

Figura 16. Simulación del circuito de comunicación serial y programa de C#.

Sexto paso. Una vez que la simulación de ISIS y de C# funcionan como se desea que lo haga el circuito en físico, se le carga el programa al pic 16f8877A utilizando el programador MINIPROG+ y el software PICkit.

Séptimo paso. Se procede a comenzar a conectar el circuito en la protoboard, en el caso de esta práctica ya se tiene hecha una placa en baquelita donde se puede conectar directamente el módulo JY- MCU al PIC y de igual forma el display LCD. Primeramente se conecta el pic 16f8877A, de ahí se le conectan los componentes necesarios:

- 1 resistencia de 10kΩ de la alimentación positiva al pin 1 del pic. El número de pin del pic se puede ver en la figura 15.

- 2 capacitores de 22pF conectados desde tierra, uno al pin 13 y el otro al pin 14 del pic.

- 1 Cristal de cuarzo de 4MHz conectado entre el pin 13 y el pin 14, cabe destacar que el cristal no posee polaridad.

- El pin 11 y 32 del pic se conectan

a la alimentación positiva. El pin

12 y 31 se conectan a tierra.

(6)

Figura 14. Numeración de los pines del pic 16F877A según el datasheet.

Sexto paso. Conexión de la LCD al pic y un potenciómetro de 5kΩ según como se muestra en la figura 15. La fuente de voltaje que se muestra en dicha figura en forma de triángulo, es una conexión a la alimentación positiva de una de las terminales que está en un extremo del potenciómetro.

Nota. El potenciómetro de 5kΩ solo se utiliza para regular el contraste de la LDC, si no se desea controlar no se utilizará.

Figura 15. Conexión de la LCD.

Séptimo paso. Se conecta el modulo bluetooth JY-MCU al PIC, siguiente la configuración impresa en el módulo como se muestra en la figura 16, teniendo en cuenta que el pin Vcc se conecta a 5v, el pin GND a tierra(ambos pines al mismo voltaje y tierra que le PIC), el pin RXD del módulo se conecta al pin 25 del PIC(TX) y el pin TXD del módulo se conecta al pin 26 del PIC(RX)

Figura 16. Módulo JY-MCU visto por atrás.

Décimo paso. Se conecta la tarjeta del sensor de luz que se hizo en una unidad pasada, siguiendo los pasos que se describen en el reporte del sensor de luz.

Undécimo paso. Se conecta el circuito del MOC, TRIAC y ventilador como se presentó de igual forma en la práctica de la regulación del sensor de temperatura que controla el momento de encendido de un ventilador como se muestra en la figura 17.

Nota. El foco de la simulación es sustituido por un ventilador.

Figura 17. Conexión del circuito de potencia.

Doceavo paso. Se alimenta el circuito con 5V. Es importante checar que la fuente que alimenta al circuito no sobrepase los 5V porque se quemaría el PIC. Y se conecta la corriente alterna tal y como se describió en el paso anterior Treceavo paso. Conectar el modulo bluetooth, a la computadora vía bluetooth, esta forma de conectar varía dependiendo de la computadora usada, si para la comunicación se necesita una contraseña se debe intentar usar “1234” o “0000”

(estas contraseñas están prestablecidas por el fabricante).

Catorceavo paso. Probar que el

programa realizado en C# funcione

(7)

correctamente y que el PIC funcione de igual forma.

Conclusión. Una de las dificultades

presentadas en la práctica fue la creación

del programa de C#, ya que no se tenía

mucho conocimiento de este lenguaje de

programación, otra problemática que se

encontró fue la forma de como comparar

la referencia entregada por la interfaz

gráfica con el valor que entrega el PIC,

para lo cual se solucionó imprimiendo el

valor de temperatura en el programa de

C# en un textbox escondido, el cual se

convirtió su contenido en “INT” lo cual

facilitó la comparación de dicho valor con

el valor de referencia.

(8)

VI.

ANEXO 1. SIMULACION EN EL PROGRAMA ISIS PROTEUS

Figura 18. Circuito de comunicación serial funcionando.

VII.

ANEXO 2. DESARRO DEL PROGRAMA EN PCWHD

#include <16F877A.h> //Librería del PIC

#fuses XT,NOWDT,NOPROTECT,NOLVP //Librerías de fusibles como xt(para indicar que se usará cristal de cuarzo)

//NOWDT deshabilita el Watchdog timer "perro guardian"

//PUT habilita el Power Up Timer, tiempo de espera para estabilizacion de alimentacion

//NOPROTECT No se protege el codigo del PIC

#device ADC=10 //Declaración del numero de bits que se usarán para el ADC

#use delay(clock=4M) //Permite definir las frecuencia del oscilador del PIC

#use rs232 (baud=9600, xmit=pin_c6, rcv=pin_c7, parity=N, stop=1, bits=8) //Definición establecida de la comunicación serial

//Donde se especifican los baudios, los pines de comunicación,

//entre otras cosas establecidad

#include <lcd.c> //Librerías para indicar que se usará una LCD

#define venti Pin_B1 //Definición del pin_B1 con nombre venti, para hacer referencia a "venti" en lugar de "pin_B1"

int x; //Declaración de variable para almacenar el valor del ADC

char temp; //Declaración de variable la cual almacenará el valor de la temperatura

char recibidor; //Declaración de la variable que se va recibir con caracter

#int_rda //Declaración de interrupción por puerto serial void serial() //Inicio del programa del puerto serial

{

(9)

recibidor=getc(); //Recepción de la variable enviada por la PC

switch(recibidor) //Función switch para comparar el valor recibido del pic con los diferentes casos

{

case 'a': //Miniprograma a realizar cuando el caracter recibido sea "a"

output_high(venti); //Indicación de encendido del ventilador

lcd_gotoxy(1,2); //Dirección en la cual se desea imprimir en el LCD la siguiente impresión

printf(lcd_putc,"%S""%C;","vent encendido ",recibidor); //Impresioón de LCD junto con el caracter recibido

delay_ms(1000); //Restraso de 1 segundo break; //Fin del miniprograma

case 'b': //Miniprograma a realizar cuando el caracter recibido sea "b"

output_low(venti); //Indicación de apagado del ventilador

lcd_gotoxy(1,2); //Dirección en la cual se desea imprimir en el LCD la siguiente impresión

printf(lcd_putc,"%S""%C;","vent apagado ",recibidor); //Impresioón de LCD junto con el caracter recibido

delay_ms(1000); //Restraso de 1 segundo break; //Fin del miniprograma

default: //Miniprograma para cuando la variable recibida no coincida con ningun caso

disable_interrupts(INT_RDA); //Desabilitación del uso de la interrupción serial break; //Fin del miniprograma

};

}

void main() //Inicio del programa principal {

enable_interrupts(GLOBAL); //Habilitación de las interrupciones globales enable_interrupts(INT_RDA); //Habilitación de la interrupción serial

setup_adc_ports(RA0_RA1_RA3_ANALOG); //Inicio de funcionamiento del puerto ADC AN0, AN1 y AN3, en este caso solo se usa el AN0

setup_adc(ADC_CLOCK_INTERNAL); //Activación del reloj interno del ADC lcd_init();

while(1) //Inicio del ciclo infinito para que lo que hay dentro se realize siempre que esté alimentado el PIC

{

lcd_putc( "\f"); //Borrado de lo qué hay en el display LCD

lcd_gotoxy(1,1); //Dirección en la cual se desea imprimir en el LCD la siguiente impresión

set_adc_channel(0); //Canal 0 del ADC

x = read_adc(); //Obtención del valor del ADC en la variable x delay_us(20); //Retraso de 20 microsegundos

temp=(x*500.0)/1023; //Conversión del valor análogo del ADC a temperatura

printf(lcd_putc, "\fTemp = %u", temp); //Impresión de ADC incluyendo valor de

temperatura

(10)

printf("%i;",temp); //Impresión de temperatura por el puerto serial para ser mostrado en la interfaz

delay_ms(200); //Retraso de 200 milisegundos }

}

VIII.

ANEXO 3. Programa de C#

//librerías necesarias para el programa using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO.Ports; //librería especial para puertos serial //Programa general

namespace interfaz_serial {

public partial class SERIAL : Form {

//Región de variables #region Variables Globales

string[] Puertos = new string[20]; //Vector de Cadenas para nombrar Puertos existentes

string datos_entrate; //Variable recibida del PIC int comparacion = 80; //variable para comparar char caracter_final; //Variable recibida del PIC int valor; //Variable para comparar

#endregion public SERIAL() {

InitializeComponent();

CheckForIllegalCrossThreadCalls = false;//deshabilita excepciones en subprocesos

Puerto_Serie.ReadTimeout = 200; //tiempo de espera para leer Puerto_Serie.WriteTimeout = 200; //tiempo de espera para escribir label8.Text = comparacion.ToString(); //impresión de la variable a comparar

Puertos = SerialPort.GetPortNames(); //Actualización de puertos cmbPuertos.Items.Clear(); //Limpia los puertos que hay en el combobox for (int i = 0; i < Puertos.Length; i++) //ciclo for para rellenar el combobox con los puertos existentes

{

cmbPuertos.Items.Add(Puertos[i]); //Impresión en el combobox del com encontrado

}

cmbPuertos.Text = cmbPuertos.Items[0].ToString(); //Conversión del nombre de los puertos para poder ser vistos por el usuario

cmbPuertos.Focus(); //Comando para centrar el programa en esta acción

(11)

lblEstado.Text = "listo"; //Impresión de palabra listo en la barra de estado

Puerto_Serie.DataReceived += new

SerialDataReceivedEventHandler(Puerto_Serial_DataRecived); //Recibir datos del PIC }

#region RECIBIR RS232 e impresion en label y comparación private void Puerto_Serial_DataRecived(object sender, SerialDataReceivedEventArgs e)

{

try //Comando para hacer que intente hacer la acción entre {} para evitar errores, en caso de que no se haga

//entra a las acciones del catch pero no cierra el programa {

datos_entrate = ""; //borrar variable datos_entrante

caracter_final = (char)0; //borrar variable caracter final

while (caracter_final != ';') //condición de mientras caracter_final sea diferencte a ;

{

caracter_final = (char)Puerto_Serie.ReadChar(); //recepción de caracter de pic en caracter_final

if (caracter_final == ';') //condición para si caracter_final es ;

break; //romper while

datos_entrate += caracter_final.ToString(); //caracter_final a string datos_entrantes

}

textBox1.Text = datos_entrate; //impresión de dato entrante valor = byte.Parse(textBox1.Text); //convertir la variable del textbox a byte

//Región para comparar #region comparación

if (valor >= comparacion) //compararación de si la referencia es menor o no a la comparación

{

try //Comando para hacer que intente hacer la acción entre {} para evitar errores, en caso de que no se haga

{

Puerto_Serie.Write("a"); //impresión de caracter en puerto serie

label6.Text = "temp alta ventilador prende"; //impresión en el label 6

}

catch //Acción a realizar si no se pudo hacer lo del TRY {

lblEstado.Text = "NO se pudo mandar el dato "; //impresión en el lblestado del texto entre comillas

} }

if (valor < comparacion) //compararación de si la referencia es mayor o no a la comparación

{ try {

Puerto_Serie.Write("b"); //impresión de caracter en puerto serie

label6.Text = "temp estable ventilador apagado"; //impresión en el label 6

(12)

}

catch //Acción a realizar si no se pudo hacer lo del TRY {

lblEstado.Text = "NO se pudo mandar el dato "; //impresión en el lblestado del texto entre comillas

} }

#endregion

this.Invoke(new EventHandler(Actualizar_labels)); //invocación al subrpograma actualizar_labels

} catch {

MessageBox.Show("Conexion Bluetooth perdida, Intente conectar nuevamente", "Bluetooth:", MessageBoxButtons.OK, MessageBoxIcon.Information);

//impresión de texto entre comillas en una alerta }

}

private void Actualizar_labels(object s, EventArgs e) {

label4.Text = "Temperatura = " + datos_entrate; //impresión del string datos_entrante en label 4

label8.Text = comparacion.ToString(); //impresión de la variable comparación

}

#endregion

#region conexión serial

//Acciones a realizar cuando el boton btnabrir(boton de bluetooth) recibe un click

private void btnabrir_Click(object sender, EventArgs e) {

lblEstado.Text = "Abriendo Puerto"; //Impresión de frase abriendo puerto

try //Comando para hacer que intente hacer la acción entre {} para evitar errores, en caso de que no se haga

//entra a las acciones del catch pero no cierra el programa {

if (Puerto_Serie.IsOpen) //Acción a realizar si hay algún puerto abierto

{

Puerto_Serie.Close(); //Cerrar el puerto abierto }

Puerto_Serie.PortName = cmbPuertos.SelectedItem.ToString();

//Comando para hacer compatible el com selecccionado con el programa

if (!Puerto_Serie.IsOpen) //Acción a realizar si no hay puertos abiertos

{

Puerto_Serie.Open(); //Comando para abrir el puerto seleccionado del combobox

}

lblEstado.Text = "Puerto " + Puerto_Serie.PortName + " Abierto";

//Imprimir en la barra de estado que el puerto seleccionado se abrió }

catch (Exception) //Acción a realizar si no se pudo hacer lo del TRY

{

(13)

lblEstado.Text = "No se pudo Abrir el Puerto " +

Puerto_Serie.PortName; //Impresión en la barra de estado que no se pudo abrir el com seleccionado

} }

//Acciones a realizar cuando el boton btncerrar(boton de la X) recibe un click

private void btncerrar_Click(object sender, EventArgs e) {

try {

Puerto_Serie.Close(); //Cerrar el puerto abierto

lblEstado.Text = "Puerto " + Puerto_Serie.PortName + " Cerrado";

}

catch (Exception) //Acción a realizar si no se pudo hacer lo del TRY {

MessageBox.Show("No se pudo Cerrar el Puerto!", "Error",

MessageBoxButtons.OK, MessageBoxIcon.Warning); //Alerta para indicar que no se pudo cerrar el puerto

} }

private void btnrefresh_Click(object sender, EventArgs e) {

try //Acciones a realizar cuando el boton btnrefresh(boton de las flechas) recibe un click

{

Puertos = SerialPort.GetPortNames(); //obtención de los com utilizables

cmbPuertos.Items.Clear(); //Limpieza del combobox for (int i = 0; i < Puertos.Length; i++) //ciclo for para rellenar el combobox con los puertos existentes

{

cmbPuertos.Items.Add(Puertos[i]); //Impresión en el combobox del com encontrado

}

cmbPuertos.Text = cmbPuertos.Items[0].ToString(); //Conversión del nombre de los puertos para poder ser vistos por el usuario

cmbPuertos.Focus(); //Impresión en el combobox del com encontrado

lblEstado.Text = "Puertos Actualizados"; //Impresión de frase

"Puertos Actualizados" en la barra de estado }

catch //Acción a realizar si no se pudo hacer lo del TRY {

lblEstado.Text = "Puerto Cerrado Tienes que abrirlo..! ";

//Impresión en la barra de estado que se debe abrir los puertos }

}

#endregion

//acción para cuando se presione la figura de la carta private void pictureBox2_Click(object sender, EventArgs e) {

try //Acciones a realizar cuando el boton de la carta recibe un click

{

comparacion = byte.Parse(valor_1.Text); //convertir el valor del text en byte

lblEstado.Text = "Referencia cambiada"; //impresión de "referencia cambiada"

(14)

} catch {

lblEstado.Text = "No se introdujo valor "; //impresión de "no se introdujo valor"

} }

private void Form1_FormClosing(object sender, FormClosingEventArgs e) {

if ((MessageBox.Show("¿salir?", "Saliendo RS-232",

MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)) //Acción para especificar si se selecciona NO en la ventana

{

e.Cancel = true; //Acción a realizar para cuando se oprime no, se cancela el cerrado

}

else //Acción para cuando se presiona si en el mensaje {

Puerto_Serie.Close(); //Cerrado de puerto serie activo para evitar problemas futuros

e.Cancel = false; //Comando para indicar que el cerrado sigue como debería

} }

private void textBox1_TextChanged(object sender, EventArgs e) {

textBox1.Text = datos_entrate; //meter variable que entra en el texbox1 }

private void serialform_Load(object sender, EventArgs e) {

} } }

(15)

IX.

ANEXO 4. Form usado en el programa de C#

X.

ANEXO 5. Circuito para imprimir de la baquelita usada en la práctica

Para poder usar el bluetooth en esta baquelita se deben usar dos jumpers los cuales

permiten alimentar el modulo, dichos jumpers van en forma horizontal en donde está el

círculo rojo.

Referencias

Documento similar

· Emisión de informe sobre la adecuación entre las competencias y conocimientos adquiridos de acuerdo con el plan de estu- dios del título de origen, o la experiencia laboral

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

dente: algunas decían que doña Leonor, &#34;con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Y tendiendo ellos la vista vieron cuanto en el mundo había y dieron las gracias al Criador diciendo: Repetidas gracias os damos porque nos habéis criado hombres, nos