Está en la página 1de 12

REPORTE DE PRÁCTICA 1

Dirección General de Educación


Superior
Tecnológica

“PROGRAMACIÓN AVANZADA”

PRESENTADO POR:
MATEO DIAZ DAVID
MACIN CARBALLO GERARDO

NO. DE CONTROL:
10TE0347
10TE0366

Envío y recepción de datos por medio de RS232


PARTE 1

LICENCIATURA EN:
INGENIERÍA MECATRONICA

DE LA ESPECIALIDAD EN:
Automatización de procesos.

DOCENTE:
M.S.C. Montiel Martínez Miguel

Teziutlán, Puebla; Marzo 2014

Instituto Tecnológico Superior de Teziutlán


Índice
Envío y recepción de datos por medio de RS232 ...................................................................................... 2
Resumen ....................................................................................................................................................... 2
Antecedentes ................................................................................................................................................ 2
Desarrollo ..................................................................................................................................................... 3
Código de microcontrolador....................................................................................................................... 8
Bibliografía ................................................................................................................................................ 11

1
Envío y recepción de datos por medio de RS232

Resumen

La comunicación Serial se puede intercambiar información entre el micro


controlador y la PC. La mayoría de los micros controladores AVR tienen un UART (Universal Asynchronous
Receiver/Transmitter). La información transmitida entre el micro controlador y la PC es serial y asynchronous,
serial significa que los bits son enviados uno después del otro y asynchronous significa que no hay señal de
reloj en la información que es enviada o recibida.

Como es bien sabido la comunicación del microcontrolador en la computadora,


para poder realizar la práctica siguiente se deben tomar en cuenta varios componentes que se mencionaran
más adelante estos elementos son de manera general cable RS232, MAXX232 un simulador de Hyperterminal y
el uso del software MyOpenLab.

Antecedentes
El estándar RS-23

En telecomunicaciones, RS-232 es el nombre tradicional de una


serie de normas para los datos binarios en serie de una sola terminal y las señales de control
de conexión entre DTE y DCE. Es de uso general en los puertos serie del ordenador. La
norma define las características eléctricas y sincronización de las señales, el significado de
las señales, y el tamaño físico y la disposición de las patillas de los conectores . La versión
actual de la norma es la norma TIA -232-F interfaz entre equipo terminal de datos y datos de
terminación del circuito de Equipos que utilicen la serie de intercambio de datos binarios,
publicado en 1997.

Un puerto serie RS-232 fue una vez una característica estándar


de un ordenador personal, que se utiliza para las conexiones con módems, impresoras,
ratones, almacenamiento de datos, fuentes de alimentación ininterrumpibles y otros
dispositivos periféricos. Sin embargo, la velocidad de transmisió n baja, gran oscilación de la
tensión, y grandes conectores estándar motivados desarrollo del Universal Serial Bus, que ha
desplazado a RS-232 de la mayoría de sus funciones de interfaz de periféricos. Muchos
ordenadores modernos no tienen puertos RS -232 y deben utilizar un convertidor de USB a
RS-232 para conectar periféricos RS-232. Dispositivos RS-232 todavía se encuentran, sobre
todo en máquinas industriales, equipos de red, y los instrumentos científicos. (WebAcademia)

El puerto serie RS-232C, presente en todos los ordenadores actuales, es


la forma más comúnmente usada para realizar transmisiones de datos entre ordenadores. El RS-232C es
un estándar que constituye la tercera revisión de la antigua norma RS-232, propuesta por la EIA
(Asociaci¢n de Industrias Electrónicas), realizándose posteriormente un versión internacional por el
CCITT, conocida como V.24. Las diferencias entre ambas son mínimas, por lo que a veces se habla
indistintamente de V.24 y de RS-232C (incluso sin el sufijo "C"), refiriéndose siempre al mismo estándar.

El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es


normal encontrar la versión de 9 pines DB-9, más barato e incluso más extendido para cierto tipo de
periféricos (como el ratón serie del PC). En cualquier caso, los PCs no suelen emplear más de 9 pines en
el conector DB-25. Las señales con las que trabaja este puerto serie son digitales, de +12V (0 lógico) y -
12V (1 lógico), para la entrada y salida de datos, y a la inversa en las señales de control. El estado de
reposo en la entrada y salida de datos es -12V. Dependiendo de la velocidad de transmisión empleada, es
posible tener cables de hasta 15 metros. (Shizuka)

2
Desarrollo
Objetivo:

Diseñar software para el envío y recepción de datos por el puerto USB


usando el protocolo USB-CDC con un microcontrolador.

La práctica se divide en dos partes la primera parte consiste en diseñar


una interfaz gráfica de usuario en la cual se realice la activación y monitorización de un sensor LM35
mediante la comunicación simulada con Isis Proteus y el uso de un microcontrolador ATmega48 en el cual
simplemente se ara el funcionamiento de manera simulada.

Tendremos un generador numérico en el cual pondremos los rangos de la


temperatura sesada a la cual el sensor LM35 reaccionara de acuerdo a las condiciones dadas desde
MyOpenLab, con esto se hace uso de una calculadora que cambiara y obtendrá como salida el valor que
sea desea enviar al microcontrolador este mismo ira en aumento con valores de 10 en 10, en este caso
serán grados centígrados, dicho aumento puede ser modificable para que usuario realice esta tarea de
manera fácil.

En primera tendremos la fase uno de la práctica en la cual tendremos los


siguientes componentes que en conjunción realizaran la gráfica de una función sencilla:

Elementos de decoración

Operadores numéricos

Tratamiento de caracteres

Color

Agrupación de elementos

Elementos de activación digital

Elementos de Entrada y salida de cadenas


de caracteres

Elementos de comunicación

Dentro de este elemento podemos observar


las características que lo componen tales

3
son: las entradas y salidas de carácter
booleano y de forma de Bytes mismo que
serán enviados y recibidos mediante la
ayuda de Isis Proteus y el microcontrolador
a usar.

Gracias a estos componentes se podrá obtener el siguiente entorno dentro de MyOpenLab.

Figura 1.- Interfaz inicial del control de la temperatura de un LM35.

En la figura anterior podemos observar una barra la cual nos indica el


incremento o decremento de la temperatura y así mismo el valor real de la misma, de igual forma
podemos ver un botón de control, en este nos ayuda para la realización de poner en modo start dicha
interfaz.

Ahora se procederá a realizar la parte del circuito que es la parte más


importante ya que es la que realiza la función de generar la seria numérica y que esta sea vista por el
usuario además de que se hace uso de los componentes o iconos.

4
Figura 2.- Muestra el diseño del circuito que realizaría la función generar el control de la temperatura de
intervalos de 10.

Como se puede observar en la figura anterior se hace uso de los iconos


mostrados anteriormente, tales son los botones de iniciar, la barra de estado de temperatura y el icono
que compone la conexión de la comunicación RS232.

Una vez hecho esto mostrado anteriormente procederemos a la ejecución


del programa:

5
Figura 3.- Muestra la interfaz en funcionamiento donde el usuario oprime un botón y este inicia el
programa mandado del microcontrolador para poder realizar la etapa de censado de temperatura.

Como podemos ver se va incrementado la temperatura de manera


gradual y de manera física se mostrara algunas imágenes del funcionario de la misma pero esto será en la
parte dos de la práctica.

De manera siguiente se muestra el circuito usado para poder realizar la


comunicación de nuestra interfaz con nuestro microcontrolador, dicho circuito es el siguiente:

6
Figura 4.- Imagen que muestra el circuito elaborado en Isis Proteus para la obtención de la señal a
manipular con el sensor LM35.

Ahora de igual forma se menciona el código fuente que se coloca dentro


del microcontrolador para dicha simulación sea exitosa, el código se realizó en Atmel Studio 6.0 y es el
siguiente:

7
Código de microcontrolador

/*
* practica_rs232.c
*
* Created: 01/03/2014 05:04:30 p.m.
* Author: Macin, Mateo
*/
#include <avr/io.h>
#ifndef F_CPU
#define F_CPU 8000000UL // XTAL de 8 MHz
#endif
#include "UARTAiNit.h"
//#include "TIMER0.h"
#include <avr/interrupt.h>
#include <util/delay.h>
#define setbit(sfr,bit) (_SFR_BYTE(sfr)|=(_BV(bit)))
#define clearbit(sfr,bit) (_SFR_BYTE(sfr)&=~(_BV(bit)))
#define bittoggle(sfr,bit)(_SFR_BYTE(sfr)^=_BV(bit))
unsigned char x;
unsigned char motor;
unsigned char temp_deseada;
unsigned char temp_ADC;
unsigned char temperatura;

ISR (USART_RX_vect){

//TODO:: Please write your application code


x=ReceiveUART0();

if(x==48) //start
{
temp_deseada=10;

else if(x==49)//detenido
{

temp_deseada=20;
}
else if (x==50)//Aumentar rango de temp
{
temp_deseada=30;

}
else if (x==51)//Aumentar rango de temp
{
temp_deseada=40;

8
}
else if (x==52)//Aumentar rango de temp
{
temp_deseada=50;
}
else if (x==53)//Aumentar rango de temp
{
temp_deseada=60;
}
else if (x==54)//Aumentar rango de temp
{
temp_deseada=70;
}
else if (x==55)//Aumentar rango de temp
{
temp_deseada=80;
}
else if (x==56)//Aumentar rango de temp
{
temp_deseada=90;
}
else if (x==57)//Aumentar rango de temp
{
temp_deseada=100;
}
}

int main(void)
{

setbit(ADCSRA,ADEN); //ADC habilitado


clearbit(ADCSRA,ADATE); //Modo manual (Normal)
clearbit(ADCSRA,ADPS2); //Seleccion del Prescalador reloj
setbit(ADCSRA,ADPS1); // n = 8
setbit(ADCSRA,ADPS0);
//vref+ y Vref-: Vcc y GND
//Justificación: Izquierda (Para lectura de 8 bits)
clearbit(ADMUX,REFS1); //Referencia a AVcc
setbit(ADMUX,REFS0);
setbit(ADMUX,ADLAR);
// Reloj del ADC0: F_CPU/8 = 125kHz
// Estado del convertidor: ON
// Modo: Manual
_delay_us(10); //delay para estabilizar el voltaje de entrada del ADC

DDRD|=(1<<DDRD6);//SALIDA DEL MOTOR

initializeUART0(9600,0,8,2,2);

9
setbit(UCSR0B,RXCIE0);
sei();

while(1)
{

temperatura=((temp_deseada*255)/150);
//255-----150
//bits de temp---temperatura
_delay_ms(20);
setbit(ADCSRA,ADSC); //se inicia la
conversion
while(bit_is_clear(ADCSRA,ADIF))
//Espera a que termine la conversion

temp_ADC=ADCH;

TransmiteUART0(temp_ADC);
if (temperatura<temp_ADC)
{

PORTD&=~(1<<PORTD6);
}
else
{

PORTD|=(1<<PORTD6);
}

}
}

Dentro de la documentación de la parte dos de dicha práctica se


expondrá de manera detallada la simulación así como evidencia del trabajo físico en funcionamiento de
dicha práctica.

La parte de la primera parte fue lo anterior ya que solo es una breve


descripción de la interfaz creada.

10
Bibliografía
Bricos. (8 de Noviembre de 2012). Obtenido de http://bricos.com/2012/11/temporizadores-clases-y-
funcionamiento/

Arias, L. N. (s.f.). Slideshare. Obtenido de http://www.slideshare.net/NoraO/contadores-y-acumuladores-


3185194

Kuo, B. C. (1996). Sistemasd de Control Automático. México: Pearson Prentice Hall.

Shizuka. (s.f.). Euskalnet. Recuperado el 06 de Marzo de 2014, de


http://www.euskalnet.net/shizuka/rs232.htm

WebAcademia. (s.f.). Recuperado el 05 de Marzo de 2014, de http://centrodeartigos.com/articulos-


informativos/article_71073.html

11

También podría gustarte