Proyecto ROBOT-BALIZA

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Proyecto ROBOT-BALIZA"

Transcripción

1 Proyecto ROBOT-BALIZA Departamento de Electricidad-Electrónica Alumno: Juan Manuel Romero Rodríguez Profesores: Pedro Alonso Sanz Alfonso García Gallego Juan Dongil García Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes Curso: 2007/2008

2 Índice: Pagina 1.- Explicación breve del Proyecto Diagrama en Bloques del Robot Laberinto y Coche Teledirigido Análisis de los Bloques Alimentación del Circuito Receptor de Radiofrecuencia Sensores de Distancia, Brújula y Servomotor Cargador del Programa Control Etapa de Potencia Indicadores Luminosos Pantalla LCD Motores de C.C Mando Baliza 4.-Esquema eléctrico de simulación con Proteus Simulación del Robot Baliza Simulación del Robot Baliza + Coche Teledirigido Programas Robot Baliza (Simulación) (Real) Programas Robot Baliza + Coche Teledirigido (Simulación) (Real) Librerías I2C.INC Librería de control de bus I2C I2C_16F.INC Librería de control de bus I2C de Microsystems BIN_BCD.INC Librería que transforma un numero en binario en BCD PWM_RC1.INC Librería de Control de PWM por la patilla RC PWM_RC2.INC Librería de Control de PWM por la patilla RC RETARDOS.INC Librería de Retardos LCD_4B_1.INC Librería de Control del LCD LCD_MENS.INC Librería de Control de mensajes en el LCD SRF08_L1.INC Librería de control del sonar SRF RM1_S_RF.INC Librería de Recepción Serie T_M_S_RF.INC Librería de Transmisión Serie Diseño de Placas de Circuitos Impresos Alimentación del Circuito + Cargador del Programa Esquema Eléctrico Cara de Componentes y de pistas Top Copper Cara de pistas Bottom Copper

3 Índice: Pagina Control + Potencia + etc Esquema Eléctrico Cara de Componentes y de pistas Top Copper Cara de pistas Bottom Copper Mando Esquema Eléctrico Cara de Componentes y de pistas Top Copper Cara de pistas Bottom Copper Baliza Esquema Eléctrico Cara de Componentes y de pistas Top Copper Cara de pistas Bottom Copper Diseño mecánico Carrocería Placa-Robot Lista de Componentes Alimentación del Circuito + Cargador del Programa Control + Potencia + etc Mando Baliza Carrocería Coste Económico Desarrollo del Proyecto Material Referencias Anexos Características Eléctricas del Motor de Corriente Continua Características Eléctricas Tarjeta Emisora SAW para Datos 433,92 MHz. ( CEBEK C-0503 ) Características Eléctricas Tarjeta Receptora de Datos 433,92 MHz. ( CEBEK C-504 ) Características Eléctricas del Sonar SRF Características Eléctricas del Compás Digital. CMPSO Características principales del PIC 16F876A Características pantalla LCD (2X16).... 3

4 1.- Explicación breve del Proyecto. El proyecto que he llevado a cabo consiste en un robot cuya misión será la de detectar una baliza e ir hacia ella. La función de la baliza es emitir una señal infrarroja a una determinada frecuencia. En el robot estarán alojados dos receptores de infrarrojos que detectarán la señal infrarroja que emite la baliza. Además, el robot incluye un sensor de ultrasonidos, con la finalidad de detectar obstáculos y esquivarlos. También he añadido al robot tres salidas más que de momento están inutilizadas: dos para sensores de ultrasonidos y la otra para un compás digital. El microcontrolador que he utilizado es un PIC16F877, que consta de 5 puertos. El control de giro del robot es mediante un servomotor. Consta a su vez de dos motores de tracción, los cuales podremos controlar su velocidad mediante PWM. Le he dotado de una pantalla LCD y unos led para indicar lo que hace en cada momento el robot e interactuar con la persona que lo usa. El robot incluye también una comunicación vía radiofrecuencia para poder ser utilizado sin cables y a distancia. Esto se consigue con las tarjetas transmisora y receptora CEBECK C-0503 y C-0504.Estas tarjetas envían y reciben datos en modulación AM que trabajan a una frecuencia portadora 433,92 MHz y tienen un Ancho de Banda de 4 KHz. Otra característica importante del robot es que la fuente de alimentación y el cargador de programas del PIC se ha elaborado en una placa aparte, separándolo así de la placa principal del robot. El software del robot-baliza se puede grabar directamente en el microcontrolador sin necesidad de extraerlo. Para ello se ha utilizado el grabador PICdownloader.exe. Los microcontroladores tienen que tener cargado previamente un programa de comunicaciones para comunicarnos con un Ordenador Personal. 4

5 2.- Diagrama en Bloques del Robot Laberinto y Coche Teledirigido. 5

6 3.- Análisis de los Bloques Alimentación del Circuito. La Fuente de Alimentación es un circuito regulador de tensión que se encarga de obtener una tensión de 5V fijos y continuos a partir de una superior de 12V. Para ello se ha utilizado el regulador 7805 (Encapsulado TO3) que nos puede dar una corriente de salida Imax de 1,5 A. C2,C3 y C4 son condensadores de filtro, para eliminar ruido e interferencias. El diodo D3 tiene la misión de proteger el circuito en caso de poner la batería BAT1 al revés. El diodo Led D4 nos indica que la fuente esta encendida, estando limitada su corriente a 20 ma por la resistencia R1. Los diodos D1 y D2 son de protección del regulador 7805 de sobretensiones e inversiones de tensión de salida. También obtenemos una tensión de 11,4 V para alimentar los motores Receptor de Radiofrecuencia. La Tarjeta Receptora de Datos CEBEK C-0504 es un circuito híbrido encargado de recibir vía radiofrecuencia, los datos digitales procedentes del Mando. La señal digital tiene que tener una frecuencia entre 20 Hz < fo < 4 KHz. y una portadora de 433,92 MHz. Este circuito demodula la señal de AM obteniendo los datos transmitidos. 6

7 3.3.- Sensores de Distancia, Brújula y Servomotor. El sensor SFR08 consiste en un medidor ultrasónico de distancia de bajo coste desarrollado por la firma DEVANTECH Ltd. Emplea un microcontrolador PIC 16F872 que realiza todas las funciones de control e interface, lleva dos capsulas ultrasónicas de 40 KHz que nos van a proporcionar la distancia a un objeto y una célula LDR que nos va a indicar la luz ambiental existente. El rango de medidas es hasta 6m, pero cuanto más cerca mida, más exacto será la medición. Se controla a través del bus I2C. El consumo es mínimo, de 3 a 15 ma. Puede medir ecos. Nos da la medida en cm, pulgadas o microsegundos. El compás digital Se trata de un módulo diseñado por la firma DEVANTECH Ltd. Capaz de medir la posición en grados respecto al norte magnético. Es un compás o brújula digital. Emplea los sensores KMZ51 de PHILIPS sensibles al campo magnético de la tierra. Ambos sensores están montados en ángulo recto entre sí sobre la placa impresa. La medida nos la puede dar de dos maneras: Una señal PWM proporcional a la variación de grados. Un número de 0 a 3600 proporcional a la variación de grados a través de bus I2C. El servomotor es un dispositivo similar a un motor de corriente continua, que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Está conformado por un motor, una caja reductora y un circuito de control. Motor de corriente continua Es el elemento que le brinda movilidad al servo. Cuando se aplica un potencial a sus dos terminales, este motor gira en un sentido a su velocidad máxima. Si el voltaje aplicado en sus dos terminales es inverso, el sentido de giro también se invierte. Engranajes reductores Se encargan de convertir gran parte de la velocidad de giro del motor de corriente continua en torsión. Circuito de control Este circuito es el encargado del control de la posición del motor. Recibe los pulsos de entrada y ubica al motor en su nueva posición dependiendo de los pulsos recibidos. 7

8 El servomotor consta de 3 terminales: Los servomotores tienen 3 terminales: I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica Terminal positivo: Recibe la alimentación del motor (4 a 8 voltios) Terminal negativo: Referencia tierra del motor (0 voltios) Entrada de señal: Recibe la señal de control del motor Cargador del Programa. El cargador de programa nos servirá para intercambiar datos en serie entre un PC y el microcontrolador del robot. Por lo tanto será el interfaz que nos sirva para introducir los programas desde el PC al microcontrolador. El circuito integrado lleva internamente 2 conversores de nivel de TTL a rs232 y otros 2 de rs232 a TTL con lo que en total podremos manejar 4 señales del puerto serie del PC. Estos conversores son suficientes para manejar las señales más utilizadas del puerto serie del PC, que son TX, RX, RTS y CTS. Consiste en un circuito que intercambia niveles TTL a RS 232 donde Un 0 en TTL equivale a 0V en RS232, equivalente a una tensión comprendida entre 3 y 15V. Un 1en TTL equivale a 5V en RS232, equivalente a una tensión comprendida entre -3 y -15V. El Circuito Integrado MAX 232 se encarga de convertir los niveles de TTL a RS232. Los datos se comunican en serie de la siguiente manera: Primero se envía un bit de star, a continuación los bits de datos (primero el bit de mayor peso) y finalmente los bits de STOP. El número de bits de datos y de bits de Stop es uno de los parámetros configurables, así como el criterio de paridad par o impar para la detección de errores. Normalmente, las comunicaciones serie tienen los siguientes parámetros: 1 bit de Start, 8 bits de Datos, 1 bit de Stop y sin paridad. En esta figura se puede ver un ejemplo de la transmisión del dato binario La línea en reposo está a nivel alto: 8

9 Número de pin Señal 1 DCD (Data Carrier Detect) 2 RX 3 TX 4 DTR (Data Terminal Ready) 5 GND 6 DSR (Data Sheet Ready) 7 RTS (Request To Send) 8 CTS (Clear To Send) 9 RI (Ring Indicator) 9

10 10

11 3.6.- Control. Un microcontrolador PIC16F877 se encarga de realizar el control del robot (control con PWM de los motores, lectura de los sensores infrarrojos, lectura del sensor de ultrasonidos e indicación de sus medidas en el LCD) y de recibir los datos procedentes del receptor de radiofrecuencia. El microcontrolador PIC 16F877 trabaja con un cristal de una frecuencia de 1 MHz. Tiene un Jumper (J1) que nos sirve para elegir entre cargar el programa (procedente del Ordenador Personal) en el microcontrolador o para recibir los datos del receptor de RF. Se ha añadido un conmutador (SW5) que nos servirá para la elección del programa que queremos utilizar: Robot Baliza o Coche Teledirigido. El microcontrolador enviará también señales a la pantalla LCD, para mostrarnos diferentes mensajes y lecturas. CARACTERÍSTICAS 16F877 Frecuencia máxima DX-20MHz Memoria de programa flash palabra de 14 bits 8KB Posiciones RAM de datos 368 Posiciones EEPROM de datos 256 Puertos E/S A,B,C,D,E Número de pines 40 Interrupciones 14 Timers 3 Módulos CCP 2 Comunicaciones Serie MSSP, USART Comunicaciones paralelo PSP Líneas de entrada de CAD de 10 bits 8 Juego de instrucciones 35 Instrucciones Longitud de la instrucción 14 bits Arquitectura Harvard CPU Risc Canales Pwm 2 Pila Harware - Ejecución En 1 Ciclo Máquina - 11

12 12

13 3.7.- Etapa de Potencia. La misión de este circuito es la de trabajar como un interruptor y alimentar a los motores desde VCC2. Las señales procedentes del microcontrolador RC1 saturaran (Interruptor Cerrado VCE4 o VCE6 = 1V) o cortarán los transistores (Interruptor Abierto VCE4 o VCE6 = 11,4V) Q4-Q5. Mediante la patilla RC1 podremos controlar la velocidad del motor mediante PWM(Controlaremos el tiempo a nivel alto de la frecuencia, para poder regular la velocidad). Una pequeña corriente de base IB4 o IB5 [ IB3 = (VCC2 VEB4-VEB5)/ R11)= (11.4V-0,7V- 0,7V)/10K = 1 ma] saturaran los transistores ya que la ganancia de los transistores en montaje Darlington es muy grande t 4 x 5 = Con una IB=1mA saturamos los transistores siempre y cuando el motor consuma menos de IE t x IB = 1mA x 2500 = 2,5 A. El optoacoplador tiene la misión de aislar eléctricamente el circuito de Control con el de Potencia, con el fin de evitar que entre ruido al micro. Se obtiene una tensión VCE proporcional a la luz que incide en la base del TRT (En caso de rotura del motor, la barrera de luz protege el sistema de control ya que este aguanta más de 2000V). Funcionamiento: RC1 = 1 Ib4 (Opto) 20 ma Vce4 (Opto) 0V. IB(Q3) 1mA (Q3 y Q4) saturado Vce4(TRT4) 1V Vmotor Izquiedo 10,4V Motor funcionando. RC1 = 0 Ib4 (Opto) 0 ma Vce4 (Opto) 10V. IB(Q3) 0mA (Q3 y Q4) cortado Vce4(TRT4) 11,4V Vmotor Izquiedo 0V Motor parado. 13

14 3.8.- Indicadores Luminosos. Los indicadores luminosos LED nos indicaran en todo momento en que sentido de giro esta el robot o si está parado. Los LED están limitados en corriente por resistencias de 330 ohm. I (Led) = [ (VR V(Led)) / R ] = I (Led) = [ (5V 2V) / 330 ] = 9 ma 14

15 3.9.- Pantalla LCD. La pantalla de LCD nos muestra lo que está ocurriendo en el Robot. Nos indica la dirección de giro del robot y la distancia a tiempo real hasta los objetos (Gracias al sensor de ultrasonidos). Características: Es una pantalla de 2 Líneas por 16 caracteres. Consumo de 7,5 mw. Representa caracteres ASCII. Desplaza los caracteres a derecha e Izquierda. Memoria de 40 caracteres por línea de pantalla, visualizando 16 caracteres por línea. Se pueden programar 8 caracteres. Se puede gobernar de 2 formas diferentes: o Conexión con un bus de 4 bits. o Conexión con un bus de 8Bits. El potenciómetro tiene la misión de controlar el contraste en el LCD Motor de C.C. Los motores de C.C. se componen de un rotor y un stator. Se recomienda poner un filtro paso bajo de orden 1 de 20db/década para rechazar el ruido que genera el motor. Este filtro atenuaria los ruidos generados por el motor a frecuencias superiores a 50 Hz. Se recomienda poner el chasis a masa para filtrar los ruidos que generan los motores en el espectro de radiofrecuencia, creando una Jaula de Faraday. Finalmente, a la hora del montaje he incorporado dos motores en paralelo, en lugar de uno solo. 15

16 K K K K K A A A A A K VSS A Vcc GND3 Antena GND2 - Ve 2 2 GND1 1 GND I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica Mando. El mando tiene la misión de transmitir un código asociado a cada pulsador, para poder controlar a distancia el robot. El microcontrolador PIC 16F877 lee los pulsadores y transmite los códigos vía serie a la tarjeta transmisora de radiofrecuencia a una velocidad de 1562,5 baudios por segundo. Es una transmisión asíncrona (1bit de comienzo, 8bit de Datos, 1 bit de parada sin bit de paridad ). La Alimentación procede de un regulador 7805 que suministra 5V a todos los circuitos. El TRT Q1E tiene la misión de deshabilitar la tarjeta de radiofrecuencia cuando esta no transmite datos. La Tarjeta Emisora SAW para Datos 433,92 MHz. CEBEK C-0503 es un circuito híbrido encargado de transmitir vía radiofrecuencia, los datos digitales procedentes del microprocesador (TX). La señal digital tiene que tener una 20 Hz < fo < 4 KHz. Se modula en AM cuya frecuencia portadora es de 433,92 MHz. El microcontrolador PIC 16F876a trabaja a una frecuencia de 4 MHz y ejecuta una instrucción en 1uS. El Led D7E nos indica que el mando está encendido, está limitada su corriente en 20 ma. El resto de los LED se iluminan cuando activamos el Pulsador correspondiente. El diodo D7E tiene la misión de proteger el circuito en cado de invertir la Batería. Los condensadores C1 y C2 son filtros. Mando VDD D6E SW6E 1 2 A K INTERRUPTOR_JOAN 1N4007_JOAN BAT1E 9V U2E 7805_JOAN 1 VI C1E 220uF VO 3 C2E 220uF R6E 220 Q1E BD136_JOAN R7E 2.2k E_RF1E Emisor de Datos CEBEK C-0503 D7E LED-RED_JOAN CON1E 1 BORNIER1_JOAN C3E 15pF R1E 220 D1E LED-YELLOW_JOAN R2E 220 D2E LED-GREEN_JOAN R3E 220 D3E LED-RED_JOAN R4E 220 D4E LED-RED_JOAN R5E 220 D5E LED-RED_JOAN RB1E RB3E RB0E RB2E RB4E RB0E RB1E RB2E RB3E RB4E U1E 21 RB0/INT OSC1/CLKIN 22 RB1 OSC2/CLKOUT 23 RB2 MCLR/Vpp/THV 24 RB3/PGM 25 RB4 RA0/AN0 26 RB5 RA1/AN1 27 RB6/PGC RA2/AN2/VREF- 28 RB7/PGD RA3/AN3/VREF+ RA4/T0CKI 11 RC0/T1OSO/T1CKI RA5/AN4/SS 12 RC1/T1OSI/CCP2 13 RC2/CCP1 14 RC3/SCK/SCL 15 RC4/SDI/SDA 16 RC5/SDO 17 RC6/TX/CK 18 RC7/RX/DT VDD X1E 4MHz C4E 15pF SW1E SW2E SW3E SW4E SW5E PIC16F876_JOAN Izquierda Atras Adelante Parar Derecha 16

17 Baliza. La baliza consiste básicamente en un sistema de emisión de infrarrojos. Esta señal infrarroja nos servirá para que los receptores de infrarrojos incorporados en el coche la detecten. Se compone principalmente de un 555, cuya función es la de generar una determinada frecuencia (36Khz). Esta frecuencia se trata de una señal cuadrada, que saturará y cortara el transistor Q1. El diodo D1 servirá de protección en caso de conectar la alimentación al revés. El diodo D2, limitado por su correspondiente resistencia de 330 ohm nos indicará si la baliza esta conectada. Mediante el potenciómetro RV1 podremos controlar la frecuencia de salida de la señal infrarroja dentro de unos determinados márgenes. 17

18 4.-Esquema eléctrico de simulación con Proteus Simulación del Robot Baliza. 18

19 4.2.- Simulación del Robot Baliza + Coche Teledirigido. 19

20 5.- Programas Robot-Baliza (Simulación) (Real). 6.- Programas Robot Baliza + Coche Teledirigido (Simulación) (Real)

21 7.- Librerías I2C.INC title " Librería de Transmisión y recepción de datos con I2C " Config_transmision_I2C BSF STATUS,RP0 Selecciono la pagina 1 de la memoria Transmisión BSF TRISC,4 BSF TRISC,3 MOVLW 0X09 MOVWF SSPADD BCF STATUS,RP0 BCF PIR1,SSPIF BSF SSPCON,SSPM3 BCF SSPCON,SSPM2 BCF SSPCON,SSPM1 BCF SSPCON,SSPM0 BSF SSPCON,SSPEN GOTO VOLVER Cargas 09H en el registro SSPADD La velocidad de será de 100 KHz Selecciono la pagina 0 de la memoria I2C en modo maestro con una F de Tr. = Fosc/(4*(SSPADD+1)) Permites la configuración serie de los pines SDA y SCL. Bit_start_I2C BSF STATUS,RP0 Selecciono la pagina 1 de la memoria BSF SSPCON2,SEN Lanzamos el bit de START. BCF STATUS,RP0 BTFSS PIR1,SSPIF GOTO $-1 BCF PIR1,SSPIF Selecciono la pagina 0 de la memoria Compruebas si se ha transmitido el Bit de START. GOTO VOLVER Transmitir_dato_I2C MOVWF SSPBUF Transmitimos el dato al Esclavo BCF STATUS,RP0 BTFSS PIR1,SSPIF GOTO $-1 BCF PIR1,SSPIF BSF STATUS,RP0 Selecciono la pagina 0 de la memoria Compruebas si se ha transmitido el Dato. Selecciono la pagina 1 de la memoria BTFSS SSPCON2,ACKSTAT GOTO Trans_correcta Si el esclavo pone ACKSTAT = 0 la transmisión es correcta, Si no hay respuesta del esclavo enviamos STOP. GOTO Bit_stop_I2C 21

22 Trans_correcta BCF STATUS,RP0 Selecciono la pagina 0 de la memoria GOTO VOLVER Recibir_dato_I2C BSF STATUS,RP0 Selecciono la pagina 1 de la memoria BSF SSPCON2,RCEN Permito la Recepción de datos BCF STATUS,RP0 BTFSS PIR1,SSPIF GOTO $-1 BCF PIR1,SSPIF MOVF SSPBUF,W BSF STATUS,RP0 BSF SSPCON2,ACKDT BSF SSPCON2,ACKEN BCF STATUS,RP0 Selecciono la pagina 0 de la memoria Compruebo si he recibido algún dato. Dato recibido en el registro SSPBUF Selecciono la pagina 1 de la memoria Pone el maestro el bit de reconocimiento de que ha llegado el Dato. Permito que el bit de reconocimiento este activo. Selecciono la pagina 0 de la memoria BTFSS PIR1,SSPIF GOTO $-1 BCF PIR1,SSPIF GOTO VOLVER Bit_stop_I2C BSF STATUS,RP0 Selecciono la pagina 1 de la memoria BSF SSPCON2,PEN Activo STOP BCF STATUS,RP0 BTFSS PIR1,SSPIF GOTO $-1 BCF PIR1,SSPIF Selecciono la pagina 0 de la memoria Compruebo que esta activado. GOTO VOLVER ReStart_I2C BSF STATUS,RP0 Comenzar de nuevos sin mandar STOP. BSF SSPCON2,RSEN BCF STATUS,RP0 BTFSS PIR1,SSPIF GOTO $-1 BCF PIR1,SSPIF Compruebo que esta activado. VOLVER RETURN 22

23 7.2.- I2C_16F.INC I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica ****************************************************************************************** ***** I2C_16FXXX.INC Autor: Mikel Etxebarria (c) Ingeniería de Microsistemas Programados S.L. Bilbao 2007 El conjunto de rutinas de propósito general que se presentan a continuación permiten realizar las funciones básicas del protocolo I2C mediante un PIC16FXXX. Este fichero se debe incluir en los futuros programas fuente mediante la directiva INCLUDE: I2C_INI: Activa e inicia el módulo MSSP de algunos dispositivos PIC16FXXX para trabajar en el modo I2C Master a 100KHz I2C_Send_Start: Genera en el bus I2C la condición de inicio I2C_Senta_Stop: Genera en el bus I2C la condición de Stop I2C_Send_Byte: Transmite el byte contenido en W por el bus I2C. La rutina finaliza cuando se recibe el /ACK generado por el slave. I2C_Read_Byte: Lee un byte procedente del dispositivo I2C slave seleccionado y lo devuelve en el registro W. Seguidamente se genera y transmite el bit /ACK si procede (bit 0 de variable ACK=0) o el bit NACK (bit 0 de variable ACK=1) Leer_I2C: Lee un nº de bytes del dispositivo I2C. La variable Dir_I2C contiene la dirección I2C del dispositivo. La variable I2C_Dir_Ini contiene la dirección interna inicial. La variable I2C_N_Bytes contiene el nº de bytes a leer. Los bytes recibidos se depositan en RAM a partir de la posición indicada por I2C_Buffer. Escr_I2C: Escribe sobre el dispositivo I2C un nº de bytes. La variable Dir_I2C contiene la dirección del dispositivo. La variable Dir_Ini contiene la dirección interna inicial. La variable I2C_N_Bytes contiene el nº de bytes a escribir. Se supone que los bytes a escribir están previamente depositados en un buffer de memoria cuyo inicio está representado por I2C_Buffer. ifndef I2C_Var En el programa principal se ha definir la dirección inicial para las variables empleadas en I2C_16FXXX messg "ERROR!! - Establecer dirección de inicio de las variables empleadas en I2C_16FXXX (p.e. I2C_Var equ 0x20)" endif ****************************************************************************************** ***** 23

24 Reserva posiciones RAM empleadas por las rutinas I2C. El inicio debe ser ajustado por el usuario para que esas posiciones no se solapen con las empleadas por otras rutinas. cblock endc I2C_Var I2C_ACK Dir_I2C I2C_Dir_Ini I2C_N_Bytes I2C_Buffer Define inicio de posiciones RAM empleadas por las rutinas I2C Envío de ACK/NACK. Si I2C_ACK<0>=0 --> ACK si I2C_ACK<0>=1 --> NACK Dirección I2C del dispositivo Dirección interna del dispositivo I2C Nº de bytes a transferir Inicio del buffer de transferencia con un dispositivo I2C ****************************************************************************************** ***** I2C_Ini: Ajusta el módulo MSSP en el modo Master con frecuencia de trabajo = Fosc/(4*(SPADD+1)) I2C_Ini bsf STATUS,RP0 Página 1 movlw b' ' movwf SSPSTAT Velocidad estándar con niveles I2C movlw.9 movwf SSPADD Valor en SSPADD para 100KHz bcf STATUS,RP0 Página 0 movlw b' ' movwf SSPCON Módulo MSSP en ON, modo Master y Fscl = Fosc/(4*(SPADD+1)) return ****************************************************************************************** ***** I2C_Send_Start: Envía la condición de inicio I2C_Send_Start bcf PIR1,SSPIF Restaura el flag del módulo MSSPç bsf STATUS,RP0 Página 1 bsf SSPCON2,SEN Activa secuencia de inicio bcf STATUS,RP0 Página 0 I2C_Start_Wait btfss PIR1,SSPIF Fin de secuencia de inicio?? goto I2C_Start_Wait No, esperar return ****************************************************************************************** ***** I2C_Send_Stop: Envía la secuencia de stop I2C_Send_Stop bcf PIR1,SSPIF Restaura el flag del módulo MSSP bsf STATUS,RP0 Página 1 bsf SSPCON2,PEN Activa secuencia de stop bcf STATUS,RP0 Página 0 I2C_Stop_Wait btfss PIR1,SSPIF Fin de secuencia de Stop?? goto I2C_Stop_Wait No, esperar return ****************************************************************************************** ***** I2C_Send_Byte: Transmite el byte del W vía I2C. La rutina finaliza cuando se recibe /ACK 24

25 I2C_Send_Byte bcf PIR1,SSPIF Restaura el flag del módulo MSSP movwf SSPBUF Byte a transmitir pasa al buffer de salida I2C_Send_Byte_1 btfss PIR1,SSPIF Recibido el bit /ACK?? goto I2C_Send_Byte_1 No, esperar return ****************************************************************************************** ***** I2C_Read_Byte: Lee un byte procedente del dispositivo I2C seleccionado y lo devuelve en W Seguidamente se genera y transmite el bit /ACK si procede (bit 0 de variable ACK=0) o el bit NACK (bit 0 de variable ACK=1) I2C_Read_Byte bcf PIR1,SSPIF Restaura el flag del módulo MSSP bsf STATUS,RP0 Página 1 bsf SSPCON2,RCEN Activa el receptor I2C bcf STATUS,RP0 Página 0 I2C_Read_Wait btfss PIR1,SSPIF Recibidos los 8 bits?? goto I2C_Read_Wait No, esperar bcf PIR1,SSPIF Restaura el flag del módulo MSSP btfsc I2C_ACK,0 Enviar ACK?? goto No_ACK No, enviar NACK bsf STATUS,RP0 Si, selecciona página 1 bcf SSPCON2,ACKDT Pone bit ACK a "0" bsf SSPCON2,ACKEN Activa la secuencia de generación del bit ACK bcf STATUS,RP0 Página 0 ACK_Wait btfss PIR1,SSPIF Secuencia ACK finalizada?? goto ACK_Wait No, esperar movf SSPBUF,W Lee el byte recibido return Algunos dispositivos precisan que el master envíe un NACK tras recibir el último byte No_ACK bsf STATUS,RP0 Página 1 bsf SSPCON2,ACKDT Pone bit ACK a "1" bsf SSPCON2,ACKEN Activa la secuencia de generación del bit NACK bcf STATUS,RP0 Página 0 NACK_Wait btfss PIR1,SSPIF Secuencia NACK finalizada?? goto NACK_Wait No, esperar movf SSPBUF,W Lee el byte recibido return ****************************************************************************************** ***** Leer_I2C: Lee un nº de bytes del dispositivo I2C. La variable Dir_I2C contiene la dirección I2C del dispositivo. La variable I2C_Dir_Ini contiene la dirección interna inicial. La variable I2C_N_Bytes contiene el nº de bytes a leer. Los bytes recibido se depositan en RAM a partir de la posición indicada por I2C_Buffer Leer_I2C último) movlw I2C_Buffer movwf FSR Inicio de la dirección del Buffer en RAM bcf I2C_ACK,0 Envío de ACK tras cada byte leído (excepto el call I2C_Send_Start Secuencia de inicio movf Dir_I2C,W call I2C_Send_Byte Dirección I2C del dispositivo en modo escritura movf I2C_Dir_Ini,W call I2C_Send_Byte Envía la dirección interna del dispositivo 25

26 call I2C_Send_Stop Envía secuencia de stop call I2C_Send_Start Envía secuencia de inicio movf Dir_I2C,W iorlw b' ' call I2C_Send_Byte Envía dirección I2C del dispositivo en modo lectura Leer_I2C_1 decfsz I2C_N_Bytes,F Ultimo byte a leer?? goto Leer_I2C_2 No goto Fin_Leer_I2C Si Leer_I2C_2 call I2C_Read_Byte Lee el byte del dispositivo y manda ACK movwf INDF Almacena en el buffer incf FSR,F Siguiente posición del buffer goto Leer_I2C_1 Continuar leyendo Fin_Leer_I2C bsf I2C_ACK,0 Si, enviar NACK cuando se lea el último call I2C_Read_Byte Lee último byte y manda NACK movwf INDF Almacena en el buffer incf FSR,F Siguiente posición del buffer call I2C_Send_Stop Si, mandar condición de stop return ****************************************************************************************** ***** Escr_I2C: Escribe sobre el dispositivo I2C un nº de bytes. La variable Dir_I2C contiene la dirección del dispositivo. La variable Dir_Ini contiene la dirección interna inicial. La variable N_Bytes contiene el nº de bytes a escribir. Se supone que los bytes a escribir están previamente depositados en un buffer de memoria cuyo inicio está representado por Buffer Escr_I2C movlw I2C_Buffer movwf FSR Inicio de la dirección del Buffer en RAM call I2C_Send_Start Secuencia de inicio movf Dir_I2C,W call I2C_Send_Byte Dirección I2C del dispositivo en modo escritura movf I2C_Dir_Ini,W call I2C_Send_Byte Envía la dirección interna del dispositivo Escr_I2C_1 movf INDF,W Coge del buffer en RAM el byte a escribir call I2C_Send_Byte Lo escribe sobre el dispositivo I2C incf FSR,F Siguiente dirección del buffer en RAM decfsz I2C_N_Bytes,F I2C_Contador,F Es el último?? goto Escr_I2C_1 No call I2C_Send_Stop Envía secuencia de stop BIN_BCD.INC. return ********************************* Librería "BIN_BCD.INC" **************************************** =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== Un número binario natural de 8 bits es convertido a BCD. El resultado se guarda en tres posiciones de memorias llamadas: BCD_Centenas, BCD_Decenas y BCD_Unidades. El procedimiento utilizado es mediante restas de 10, tal como se explicó en el capítulo 9. 26

27 Entrada: En el registro W el número binario natural a convertir. Salidas: En (BCD_Centenas), (BCD_Decenas) y (BCD_Unidades). En el registro W también las decenas (nibble alto) y unidades (nibble bajo). ********************************** Subrutina "BIN_a_BCD" **************************************** CBLOCK BCD_Centenas BCD_Decenas BCD_Unidades En las subrutinas no se debe fijar la dirección de la RAM de usuario. Se toma a continuación de la última asignada. ENDC BIN_a_BCD clrf BCD_Centenas Carga los registros con el resultado inicial. clrf BCD_Decenas En principio las centenas y decenas a cero. movwf BCD_Unidades Se carga el número binario a convertir. BCD_Resta10 movlw.10 A las unidades se les va restando 10 en cada subwf BCD_Unidades,W pasada. (W)=(BCD_Unidades) -10. btfss STATUS,C C = 1?, (W) positivo?, (BCD_Unidades)>=10? goto BIN_BCD_Fin No, es menor de 10. Se acabó. BCD_IncrementaDecenas movwf BCD_Unidades Recupera lo que queda por restar. incf BCD_Decenas,F Incrementa las decenas y comprueba si ha movlw.10 llegado a 10. Lo hace mediante una resta. 10 a subwf BCD_Decenas,W (W)=(BCD_Decenas)-10). btfss STATUS,C C = 1?, (W) positivo?, (BCD_Decenas)>=10? goto BCD_Resta10 No. Vuelve a dar otra pasada, restándole las unidades. BCD_IncrementaCentenas clrf BCD_Decenas Pone a cero las decenas incf BCD_Centenas,F e incrementa las centenas. goto BCD_Resta10 Otra pasada: Resta 10 al número a convertir. BIN_BCD_Fin swapf BCD_Decenas,W En el nibble alto de (W) también las decenas. addwf BCD_Unidades,W En el nibble bajo de (W) las unidades. return Vuelve al programa principal. La directiva "END" se debe poner en el programa principal no aquí. =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== PWM_RC1.INC. 27

28 title " Librería PWM salida por RC1 " El microcontrolador PIC 16f876a tiene un hardware integrado que puede generar 2 señales PWM por las patillas RC2 y RC1. El periodo para ambas señales se fija con la siguiente fornula T =[(PR2+1)*4*Tosc]*(TMR2_Valor_preescalar) El nivel alto T1H se controla con 10 bit ( Los 8 bit mas significativo con el registro CCPR1L y los dos bit menos significativos con CCP1X y CCP1Y que están en el registro CCP1CON) Esta señal sale por la patilla RC2. El nivel alto T2H se controla con 10 bit ( Los 8 bit mas significativo con el registro CCPR2L y los dos bit menos significativos con CCP2X y CCP2Y que están en el registro CCP2CON) Esta señal sale por la patilla RC1. Para refrescar el nivel alto T1H que haber transcurrido un tiempo superior a un periodo "T". El Servomotor de Futaba se controla con una señal cuadrada de periodo "T1". La posición del Servomotor lo determina el nivel alto de la señal "T1H" El Servomotor de Futaba necesita un periodo "T1" entre 10ms y 30 ms. Cargando los registros de forma correcta sale T1 =[(255+1)*4*1uS](16)=16,384 ms (Cristal de cuarzo 1 MHz) Tiene un control de Posición de -90 Grados < P (Angular)< +90 Grados controlado con T1H. Para -90 Grados corresponde un nivel alto T1H = 0,6 ms Para 0 Grados corresponde un nivel alto T1H = 1,2 ms Para +90 Grados corresponde un nivel alto T1H = 1,8 ms **************************** Igualdades ******************************************************* PERIODO EQU 0xFF Representa el Periodo de la señal de PWM. **************************** Sección de Configuración ******************************************* CONF_PWM_RC1 BSF STATUS,RP0 Ir al Banco1 BCF TRISC,1 MOVLW PERIODO MOVWF PR2 Habilitamos PC1 como salida. Cargamos el Periodo de la señal de PWM. BCF STATUS,RP0 Ir al Banco 0 MOVLW B' ' MOVWF T2CON MOVLW B' ' MOVWF CCP2CON Cargamos el Valor Preescalar.(PWM INTERNO) Cargamos los 2 Bit menos significativos del nivel Alto de la Señal PWM y configuramos y lanzamos PWM. Salida de señal por RC1 MOVLW D'0' Inicializamos la PWM con cero. MOVWF CCPR2L 28

29 RETURN *************************** Principal ********************************************************** PWM_RC1 MOVWF CCPR2L Nivel Alto de la señal PWM (Salida por RC1). CALL Retardo_20ms Tiene que transcurrir un periodo antes de refrescar el nivel alto de la señal. RETURN PWM_RC2.INC. title " Librería PWM salida por RC2 " El microcontrolador PIC 16f876a tiene un hardware integrado que puede generar 2 señales PWM por las patillas RC2 y RC1. El periodo para ambas señales se fija con la siguiente formula T =[(PR2+1)*4*Tosc]*(TMR2_Valor_preescalar) El nivel alto T1H se controla con 10 bit ( Los 8 bit mas significativo con el registro CCPR1L y los dos bit menos significativos con CCP1X y CCP1Y que están en el registro CCP1CON) Esta señal sale por la patilla RC2. El nivel alto T2H se controla con 10 bit ( Los 8 bit mas significativo con el registro CCPR2L y los dos bit menos significativos con CCP2X y CCP2Y que están en el registro CCP2CON) Esta señal sale por la patilla RC1. Para refrescar el nivel alto T1H que haber transcurrido un tiempo superior a un periodo "T". El Servomotor de Futaba se controla con una señal cuadrada de periodo "T1". La posición del Servomotor lo determina el nivel alto de la senal "T1H" El Servomotor de Futaba necesita un periodo "T1" entre 10ms y 30 ms. Cargando los registros de forma correcta sale T1 =[(255+1)*4*1uS](16)=16,384 ms (Cristal de cuarzo 1 MHz) Tiene un control de Posición de -90 Grados < P (Angular)< +90 Grados controlado con T1H. Para -90 Grados corresponde un nivel alto T1H = 0,6 ms Para 0 Grados corresponde un nivel alto T1H = 1,2 ms Para +90 Grados corresponde un nivel alto T1H = 1,8 ms **************************** Igualdades ********************************************************* 29

30 PERIODO EQU 0xFF Representa el Periodo de la señal de PWM. **************************** Sección de Configuración ******************************************** CONF_PWM_RC2 BSF STATUS,RP0 Ir al Banco 1 BCF TRISC,2 MOVLW PERIODO MOVWF PR2 Habilitamos PC2 como salida. Cargamos el Periodo de la señal de PWM. BCF STATUS,RP0 Ir al Banco 0 MOVLW B' ' MOVWF T2CON MOVLW B' ' MOVWF CCP1CON Cargamos el Valor Preescalar.(PWM INTERNO) Cargamos los 2 Bit menos significativos del nivel Alto de la señal PWM y configuramos y lanzamos PWM. Salida de señal por RC2 MOVLW D'0' MOVWF CCPR1L RETURN *************************** Principal *********************************************************** PWM_RC2 MOVWF CCPR1L Nivel Alto de la señal PWM (Salida por RC2). CALL Retardo_20ms Tiene que transcurrir un periodo antes de refrescar el nivel alto de la señal. RETURN RETARDOS.INC. **************************** Librería "RETARDOS.INC" ***************************************************** =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== Librería con múltiples subrutinas de retardos, desde 4 microsegundos hasta 20 segundos. Además se pueden implementar otras subrutinas muy fácilmente. Se han calculado para un sistema microcontrolador con un PIC trabajando con un cristal de cuarzo a 4 MHz. Como cada ciclo máquina son 4 ciclos de reloj, resulta que cada ciclo máquina tarda 4 x 1/4MHz = 1 µs. En los comentarios, "cm" significa "ciclos máquina". *********************************** ZONA DE DATOS *************************************************************** 30

31 CBLOCK R_ContA R_ContB R_ContC Contadores para los retardos. ENDC ****************************** RETARDOS de 4 hasta 10 microsegundos **************************************** A continuación retardos pequeños teniendo en cuenta que para una frecuencia de 4 MHZ, la llamada a subrutina "call" tarda 2 ciclos máquina, el retorno de subrutina "return" toma otros 2 ciclos máquina y cada instrucción "nop" tarda 1 ciclo máquina. Retardo_10micros La llamada "call" aporta 2 ciclos máquina. nop nop nop nop nop Retardo_5micros nop Retardo_4micros Aporta 1 ciclo máquina. Aporta 1 ciclo máquina. Aporta 1 ciclo máquina. Aporta 1 ciclo máquina. Aporta 1 ciclo máquina. La llamada "call" aporta 2 ciclos máquina. Aporta 1 ciclo máquina. La llamada "call" aporta 2 ciclos máquina. return El salto del retorno aporta 2 ciclos máquina. ********************************* RETARDOS de 20 hasta 500 microsegundos ********************************* Retardo_500micros La llamada "call" aporta 2 ciclos máquina. nop Aporta 1 ciclo máquina. movlw d'164' Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros Aporta 2 ciclos máquina. Retardo_200micros La llamada "call" aporta 2 ciclos máquina. nop Aporta 1 ciclo máquina. movlw d'64' Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros Aporta 2 ciclos máquina. Retardo_100micros La llamada "call" aporta 2 ciclos máquina. movlw d'31' Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros Aporta 2 ciclos máquina. Retardo_50micros La llamada "call" aporta 2 ciclos máquina. nop Aporta 1 ciclo máquina. movlw d'14' Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros Aporta 2 ciclos máquina. Retardo_20micros La llamada "call" aporta 2 ciclos máquina. movlw d'5' Aporta 1 ciclo máquina. Este es el valor de "K". 31

32 El próximo bloque "RetardoMicros" tarda: 1 + (K-1) (K-1)x2 + 2 = (2 + 3K) ciclos máquina. RetardoMicros movwf R_ContA Aporta 1 ciclo máquina. Rmicros_Bucle decfsz R_ContA,F (K-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto Rmicros_Bucle Aporta (K-1)x2 ciclos máquina. return El salto del retorno aporta 2 ciclos máquina. En total estas subrutinas tardan: - Retardo_500micros: (2 + 3K) = 500 cm = 500 µs. (para K=164 y 4 MHz). - Retardo_200micros: (2 + 3K) = 200 cm = 200 µs. (para K= 64 y 4 MHz). - Retardo_100micros: (2 + 3K) = 100 cm = 100 µs. (para K= 31 y 4 MHz). - Retardo_50micros : (2 + 3K) = 50 cm = 50 µs. (para K= 14 y 4 MHz). - Retardo_20micros : (2 + 3K) = 20 cm = 20 µs. (para K= 5 y 4 MHz). *************************************RETARDOS de 1 ms hasta 200 ms. ****************************************** Retardo_200ms La llamada "call" aporta 2 ciclos máquina. movlw d'200' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_100ms La llamada "call" aporta 2 ciclos máquina. movlw d'100' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_50ms La llamada "call" aporta 2 ciclos máquina. movlw d'50' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_20ms La llamada "call" aporta 2 ciclos máquina. movlw d'20' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_10ms La llamada "call" aporta 2 ciclos máquina. movlw d'10' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_5ms La llamada "call" aporta 2 ciclos máquina. movlw d'5' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_2ms La llamada "call" aporta 2 ciclos máquina. movlw d'2' Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms Aporta 2 ciclos máquina. Retardo_1ms La llamada "call" aporta 2 ciclos máquina. 32

33 movlw d'1' Aporta 1 ciclo máquina. Este es el valor de "M". El próximo bloque "Retardos_ms" tarda: 1 + M + M + KxM + (K-1)xM + Mx2 + (K-1)Mx2 + (M-1) (M-1)x2 + 2 = = (2 + 4M + 4KM) ciclos máquina. Para K=249 y M=1 supone 1002 ciclos máquina que a 4 MHz son 1002 µs = 1 ms. Retardos_ms movwf R_ContB Aporta 1 ciclo máquina. R1ms_BucleExterno movlw d'249' movwf R_ContA Aporta Mx1 ciclos máquina. Este es el valor de "K". Aporta Mx1 ciclos máquina. R1ms_BucleInterno nop Aporta KxMx1 ciclos máquina. decfsz R_ContA,F (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar). goto R1ms_BucleInterno Aporta (K-1)xMx2 ciclos máquina. decfsz R_ContB,F (M-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1ms_BucleExterno Aporta (M-1)x2 ciclos máquina. return En total estas subrutinas tardan: El salto del retorno aporta 2 ciclos máquina. - Retardo_200ms: (2 + 4M + 4KM) = cm = 200 ms. (M=200 y K=249). - Retardo_100ms: (2 + 4M + 4KM) = cm = 100 ms. (M=100 y K=249). - Retardo_50ms : (2 + 4M + 4KM) = cm = 50 ms. (M= 50 y K=249). - Retardo_20ms : (2 + 4M + 4KM) = cm = 20 ms. (M= 20 y K=249). - Retardo_10ms : (2 + 4M + 4KM) = cm = 10 ms. (M= 10 y K=249). - Retardo_5ms : (2 + 4M + 4KM) = 5007 cm = 5 ms. (M= 5 y K=249). - Retardo_2ms : (2 + 4M + 4KM) = 2007 cm = 2 ms. (M= 2 y K=249). - Retardo_1ms : (2 + 4M + 4KM) = 1005 cm = 1 ms. (M= 1 y K=249). *********************************RETARDOS de 0.5 hasta 20 segundos ****************************************** Retardo_20s La llamada "call" aporta 2 ciclos máquina. movlw d'200' Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima Aporta 2 ciclos máquina. Retardo_10s La llamada "call" aporta 2 ciclos máquina. movlw d'100' Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima Aporta 2 ciclos máquina. Retardo_5s La llamada "call" aporta 2 ciclos máquina. movlw d'50' Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima Aporta 2 ciclos máquina. Retardo_2s La llamada "call" aporta 2 ciclos máquina. movlw d'20' Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima Aporta 2 ciclos máquina. Retardo_1s La llamada "call" aporta 2 ciclos máquina. movlw d'10' Aporta 1 ciclo máquina. Este es el valor de "N". 33

34 goto Retardo_1Decima Aporta 2 ciclos máquina. Retardo_500ms La llamada "call" aporta 2 ciclos máquina. movlw d'5' Aporta 1 ciclo máquina. Este es el valor de "N". El próximo bloque "Retardo_1Decima" tarda: 1 + N + N + MxN + MxN + KxMxN + (K-1)xMxN + MxNx2 + (K-1)xMxNx2 + + (M-1)xN + Nx2 + (M-1)xNx2 + (N-1) (N-1)x2 + 2 = = (2 + 4M + 4MN + 4KM) ciclos máquina. Para K=249, M=100 y N=1 supone ciclos máquina que a 4 MHz son µs = 100 ms = 0,1 s = 1 décima de segundo. Retardo_1Decima movwf R_ContC Aporta 1 ciclo máquina. R1Decima_BucleExterno2 movlw d'100' movwf R_ContB Aporta Nx1 ciclos máquina. Este es el valor de "M". Aporta Nx1 ciclos máquina. R1Decima_BucleExterno movlw d'249' movwf R_ContA Aporta MxNx1 ciclos máquina. Este es el valor de "K". Aporta MxNx1 ciclos máquina. R1Decima_BucleInterno nop Aporta KxMxNx1 ciclos máquina. decfsz R_ContA,F (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar). goto R1Decima_BucleInterno Aporta (K-1)xMxNx2 ciclos máquina. decfsz R_ContB,F (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar). goto R1Decima_BucleExterno Aporta (M-1)xNx2 ciclos máquina. decfsz R_ContC,F (N-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1Decima_BucleExterno2 Aporta (N-1)x2 ciclos máquina. return En total estas subrutinas tardan: El salto del retorno aporta 2 ciclos máquina. - Retardo_20s: (2 + 4N + 4MN + 4KMN) = cm = 20 s. (N=200, M=100 y K=249). - Retardo_10s: (2 + 4N + 4MN + 4KMN) = cm = 10 s. (N=100, M=100 y K=249). - Retardo_5s: (2 + 4N + 4MN + 4KMN) = cm = 5 s. (N= 50, M=100 y K=249). - Retardo_2s: (2 + 4N + 4MN + 4KMN) = cm = 2 s. (N= 20, M=100 y K=249). - Retardo_1s: (2 + 4N + 4MN + 4KMN) = cm = 1 s. (N= 10, M=100 y K=249). - Retardo_500ms: (2 + 4N + 4MN + 4KMN) = cm = 0,5 s. (N= 5, M=100 y K=249). =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== 34

35 7.7.- LCD_4B_1.INC. I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica ************************************ Librería "LCD_4B_1.INC" *********************************** =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== Estas subrutinas permiten realizar las tareas básicas de control de un módulo LCD de 2 líneas por 16 caracteres, compatible con el modelo LM016L. El visualizador LCD está conectado al Puerto B del PIC mediante un bus de 4 bits. Las conexiones son: - Las 4 líneas superiores del módulo LCD, pines <DB7:DB4> se conectan a las 4 líneas superiores del Puerto B del PIC, pines <RB7:RB4>. - Pin RS del LCD a la línea RA0 del PIC. - Pin R/W del LCD a la línea RA1 del PIC, o a masa. - Pin Enable del LCD a la línea RA2 del PIC. Se utilizan llamadas a subrutinas de retardo de tiempo localizadas en la librería RETARDOS.INC. ******************************** ZONA DE DATOS ********************************************** CBLOCK ENDC LCD_Dato LCD_GuardaDato LCD_GuardaTRISB LCD_Auxiliar1 LCD_Auxiliar2 LCD_CaracteresPorLinea EQU.16 Número de caracteres por línea de la pantalla. #DEFINE LCD_PinRS #DEFINE LCD_PinRW #DEFINE LCD_PinEnable #DEFINE LCD_BusDatos PORTA,0 PORTA,1 PORTA,2 PORTB ********************************Subrutina "LCD_Inicializa" ************************************** Inicialización del módulo LCD: Configura funciones del LCD, produce reset por software, borra memoria y enciende pantalla. El fabricante especifica que para garantizar la configuración inicial hay que hacerla como sigue: LCD_Inicializa bsf STATUS,RP0 Configura las líneas conectadas al pines RS, bcf LCD_PinRS R/W y E. bcf LCD_PinEnable bcf LCD_PinRW bcf STATUS,RP0 bcf LCD_PinRW En caso de que esté conectado le indica que se va a escribir en el LCD. bcf LCD_PinEnable Impide funcionamiento del LCD poniendo E=0. 35

36 bcf LCD_PinRS Activa el Modo Comando poniendo RS=0. call Retardo_20ms movlw b' ' call LCD_EscribeLCD Escribe el dato en el LCD. call Retardo_5ms movlw b' ' call LCD_EscribeLCD call Retardo_200micros movlw b' ' call LCD_EscribeLCD movlw b' ' Interface de 4 bits. call LCD_EscribeLCD Ahora configura el resto de los parámetros: call LCD_2Lineas4Bits5x7 LCD de 2 líneas y caracteres de 5x7 puntos. call LCD_Borra Pantalla encendida y limpia. Cursor al principio call LCD_CursorOFF de la línea 1. Cursor apagado. call LCD_CursorIncr Cursor en modo incrementar. return ********************************** Subrutina "LCD_EscribeLCD" ******************************** Envía el dato del registro de trabajo W al bus de dato y produce un pequeño pulso en el pin Enable del LCD. Para no alterar el contenido de las líneas de la parte baja del Puerto B que no son utilizadas para el LCD (pines RB3:RB0), primero se lee estas líneas y después se vuelve a enviar este dato sin cambiarlo. LCD_EscribeLCD andlw b' ' Se queda con el nibble alto del dato que es el movwf LCD_Dato que hay que enviar y lo guarda. movf LCD_BusDatos,W Lee la información actual de la parte baja andlw b' ' del Puerto B, que no se debe alterar. iorwf LCD_Dato,F Enviará la parte alta del dato de entrada y en la parte baja lo que había antes. bsf STATUS,RP0 Acceso al Banco 1. movf TRISB,W Guarda la configuración que tenía antes TRISB. movwf LCD_GuardaTRISB movlw b' ' Las 4 líneas inferiores del Puerto B se dejan andwf PORTB,F como estaban y las 4 superiores como salida. bcf STATUS,RP0 Acceso al Banco 0. movf LCD_Dato,W Recupera el dato a enviar. movwf LCD_BusDatos Envía el dato al módulo LCD. call Retardo_20micros bsf LCD_PinEnable Permite funcionamiento del LCD mediante un pequeño bcf LCD_PinEnable pulso y termina impidiendo el funcionamiento del LCD. bsf STATUS,RP0 Acceso al Banco 1. Restaura el antiguo valor en movf LCD_GuardaTRISB,W la configuración del Puerto B. movwf PORTB Realmente es TRISB. bcf STATUS,RP0 Acceso al Banco 0. return ******************************* Subrutinas variadas para el control del módulo LCD ****************** Los comandos que pueden ser ejecutados son: 36

37 LCD_CursorIncr Cursor en modo incrementar. movlw b' ' goto LCD_EnviaComando LCD_Linea1 Cursor al principio de la Línea 1. movlw b' ' goto LCD_EnviaComando Dirección 00h de la DDRAM LCD_Linea2 Cursor al principio de la Línea 2. movlw b' ' Dirección 40h de la DDRAM goto LCD_EnviaComando LCD_PosicionLinea1 Cursor a posición de la Línea 1, a partir de la iorlw b' ' dirección 00h de la DDRAM más el valor del goto LCD_EnviaComando registro W. LCD_PosicionLinea2 Cursor a posición de la Línea 2, a partir de la iorlw b' ' dirección 40h de la DDRAM más el valor del goto LCD_EnviaComando registro W. LCD_OFF Pantalla apagada. movlw b' ' goto LCD_EnviaComando LCD_CursorON Pantalla encendida y cursor encendido. movlw b' ' goto LCD_EnviaComando LCD_CursorOFF Pantalla encendida y cursor apagado. movlw b' ' goto LCD_EnviaComando LCD_Borra Borra toda la pantalla, memoria DDRAM y pone el movlw b' ' cursor a principio de la línea 1. goto LCD_EnviaComando LCD_2Lineas4Bits5x7 Define la pantalla de 2 líneas, con caracteres movlw b' ' de 5x7 puntos y conexión al PIC mediante bus de goto LCD_EnviaComando 4 bits. ************************* Subrutinas "LCD_EnviaComando" y "LCD_Caracter" ********************* "LCD_EnviaComando". Escribe un comando en el registro del módulo LCD. La palabra de comando ha sido entregada a través del registro W. Trabaja en Modo Comando. "LCD_Caracter". Escribe en la memoria DDRAM del LCD el carácter ASCII introducido a a través del registro W. Trabaja en Modo Dato. LCD_EnviaComando bcf LCD_PinRS Activa el Modo Comando, poniendo RS=0. 37

38 goto LCD_Envia LCD_Caracter LCD_Envia bsf LCD_PinRS Activa el "Modo Dato", poniendo RS=1. call LCD_CodigoCGROM Obtiene el código para correcta visualización. movwf LCD_GuardaDato Guarda el dato a enviar. call LCD_EscribeLCD Primero envía el nibble alto. swapf LCD_GuardaDato,W Ahora envía el nibble bajo. Para ello pasa el nibble bajo del dato a enviar a parte alta del byte. call LCD_EscribeLCD Se envía al visualizador LCD. btfss LCD_PinRS Debe garantizar una correcta escritura manteniendo call Retardo_2ms 2 ms en modo comando y 50 µs en modo carácter. call Retardo_50micros return ***************************Subrutina "LCD_CodigoCGROM" ************************************* A partir del carácter ASCII número 127 los códigos de los caracteres definidos en la tabla CGROM del LM016L no coinciden con los códigos ASCII. Así por ejemplo, el código ASCII de la "Ñ" en la tabla CGRAM del LM016L es EEh. Esta subrutina convierte los códigos ASCII de la "Ñ", "º" y otros, a códigos CGROM para que que puedan ser visualizado en el módulo LM016L. Entrada: En (W) el código ASCII del carácter que se desea visualizar. Salida: En (W) el código definido en la tabla CGROM. LCD_CodigoCGROM movwf LCD_Dato LCD_EnheMinuscula Guarda el valor del carácter y comprueba si es un carácter especial. sublw 'ñ' Es la "ñ"? btfss STATUS,Z goto LCD_EnheMayuscula No es "ñ". movlw b' ' Código CGROM de la "ñ". movwf LCD_Dato goto LCD_FinCGROM LCD_EnheMayuscula LCD_Grado movf LCD_Dato,W Recupera el código ASCII de entrada. sublw 'Ñ' Es la "Ñ"? btfss STATUS,Z goto LCD_Grado No es "Ñ". movlw b' ' Código CGROM de la "ñ". (No hay símbolo para movwf LCD_Dato la "Ñ" mayúscula en la CGROM). goto LCD_FinCGROM movf LCD_Dato,W Recupera el código ASCII de entrada. sublw 'º' Es el símbolo "º"? btfss STATUS,Z 38

39 goto LCD_FinCGROM No es "º". movlw b' ' Código CGROM del símbolo "º". movwf LCD_Dato LCD_FinCGROM movf LCD_Dato,W En (W) el código buscado. return *******************Subrutina "LCD_DosEspaciosBlancos" y "LCD_LineaBlanco" ********************* Visualiza espacios en blanco. LCD_LineaEnBlanco movlw LCD_CaracteresPorLinea goto LCD_EnviaBlancos LCD_UnEspacioBlanco movlw.1 goto LCD_EnviaBlancos LCD_DosEspaciosBlancos movlw.2 goto LCD_EnviaBlancos LCD_TresEspaciosBlancos movlw.3 LCD_EnviaBlancos movwf LCD_Auxiliar1 (LCD_Auxiliar1) se utiliza como contador. LCD_EnviaOtroBlanco movlw ' ' Esto es un espacio en blanco. call LCD_Caracter Visualiza tanto espacios en blanco como se decfsz LCD_Auxiliar1,F haya cargado en (LCD_Auxiliar1). goto LCD_EnviaOtroBlanco return ********************** Subrutinas "LCD_ByteCompleto" y "LCD_Byte" ***************************** Subrutina "LCD_ByteCompleto", visualiza el byte que almacena el registro W en el lugar actual de la pantalla. Por ejemplo, si (W)=b' ' visualiza "AE". Subrutina "LCD_Byte" igual que la anterior, pero en caso de que el nibble alto sea cero visualiza en su lugar un espacio en blanco. Por ejemplo si (W)=b' ' visualiza "AE" y si (W)=b' ', visualiza " E" (un espacio blanco delante). Utilizan la subrutina "LCD_Nibble" que se analiza más adelante. LCD_Byte movwf LCD_Auxiliar2 Guarda el valor de entrada. andlw b' ' Analiza si el nibble alto es cero. btfss STATUS,Z Si es cero lo apaga. 39

40 goto LCD_VisualizaAlto No es cero y lo visualiza. movlw ' ' Visualiza un espacio en blanco. call LCD_Caracter goto LCD_VisualizaBajo LCD_ByteCompleto movwf LCD_Auxiliar2 Guarda el valor de entrada. LCD_VisualizaAlto swapf LCD_Auxiliar2,W Pone el nibble alto en la parte baja. call LCD_Nibble Lo visualiza. LCD_VisualizaBajo movf LCD_Auxiliar2,W Repite el proceso con el nibble bajo. call LCD_Nibble Lo visualiza. return *******************************Subrutina "LCD_Nibble" **************************************** Visualiza en el lugar actual de la pantalla, el valor hexadecimal que almacena en el nibble bajo del registro W. El nibble alto de W no es tenido en cuenta. Ejemplos: - Si (W)=b' ', se visualizará "6". - Si (W)=b' ', se visualizará "E". LCD_Nibble andlw b' ' Se queda con la parte baja. movwf LCD_Auxiliar1 Lo guarda. sublw 0x09 Comprueba si hay que representarlo con letra. btfss STATUS,C goto LCD_EnviaByteLetra movf LCD_Auxiliar1,W addlw '0' El número se pasa a carácter ASCII sumándole goto LCD_FinVisualizaDigito el ASCII del cero y lo visualiza. LCD_EnviaByteLetra movf LCD_Auxiliar1,W addlw 'A'-0x0A Sí, por tanto, se le suma el ASCII de la 'A'. LCD_FinVisualizaDigito goto LCD_Caracter Y visualiza el carácter. Se hace con un "goto" para no sobrecargar la pila. =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== LCD_MENS.INC. **************************** Librería "LCD_MENS.INC" ******************************** 40

41 =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== Librería de subrutinas para el manejo de mensajes a visualizar en un visualizador LCD. CBLOCK LCD_ApuntaCaracter LCD_ValorCaracter Indica la posición del carácter a visualizar respecto del comienzo de todos los mensajes, (posición de la etiqueta "Mensajes"). Código ASCII del carácter a ENDC visualizar. Los mensajes tienen que estar situados dentro de las 256 primeras posiciones de la memoria de programa, es decir, no pueden superar la dirección 0FFh. ******************************** Subrutina "LCD_Mensaje" ************************************** Visualiza por pantalla el mensaje apuntado por el registro W. Los mensajes deben localizarse dentro de una zona encabezada por la etiqueta "Mensajes" y que tenga la siguiente estructura: Mensajes Etiqueta obligatoria! addwf PCL,F Mensaje0 Posición inicial del mensaje. DT "....", 0x00 Mensaje terminado en 0x00. Mensaje FinMensajes La llamada a esta subrutina se realizará siguiendo este ejemplo: movlw Mensaje0 Carga la posición del mensaje. call LCD_Mensaje Visualiza el mensaje. LCD_Mensaje movwf LCD_ApuntaCaracter Posición del primer carácter del mensaje. movlw Mensajes Halla la posición relativa del primer carácter subwf LCD_ApuntaCaracter,F del mensaje respecto de etiqueta "Mensajes". decf LCD_ApuntaCaracter,F Compensa la posición que ocupa "addwf PCL,F". LCD_VisualizaOtroCaracter movf LCD_ApuntaCaracter,W call Mensajes Obtiene el código ASCII del carácter apuntado. movwf LCD_ValorCaracter Guarda el valor de carácter. movf LCD_ValorCaracter,F Lo único que hace es posicionar flag Z. En caso btfsc STATUS,Z que sea "0x00", que es código indicador final goto LCD_FinMensaje de mensaje, sale fuera. LCD_NoUltimoCaracter call LCD_Caracter Visualiza el carácter ASCII leído. 41

42 incf LCD_ApuntaCaracter,F Apunta a la posición del siguiente carácter goto LCD_VisualizaOtroCaracter dentro del mensaje. LCD_FinMensaje return Vuelve al programa principal. ****************************Subrutina "LCD_MensajeMovimiento" ******************************- Visualiza un mensaje de mayor longitud que los 16 caracteres que pueden representarse en una línea, por tanto se desplaza a través de la pantalla. En el mensaje debe dejarse 16 espacios en blanco, al principio y al final para conseguir que el desplazamiento del mensaje sea lo más legible posible. CBLOCK LCD_CursorPosicion Contabiliza la posición del cursor dentro de la ENDC pantalla LCD LCD_MensajeMovimiento movwf LCD_ApuntaCaracter Posición del primer carácter del mensaje. movlw Mensajes Halla la posición relativa del primer carácter subwf LCD_ApuntaCaracter,F del mensaje respecto de la etiqueta "Mensajes". decf LCD_ApuntaCaracter,F Compensa la posición que ocupa "addwf PCL,F". LCD_PrimeraPosicion clrf LCD_CursorPosicion El cursor en la posición 0 de la línea. call LCD_Linea2 call LCD_Borra Se sitúa en la primera posición de la línea 1 y borra la pantalla. LCD_VisualizaCaracter movlw LCD_CaracteresPorLinea subwf LCD_CursorPosicion,W btfss STATUS,Z goto LCD_NoEsFinalLinea Ha llegado a final de línea? LCD_EsFinalLinea call Retardo_100ms Lo mantiene visualizado durante este tiempo. call Retardo_200ms movlw LCD_CaracteresPorLinea-1 Apunta a la posición del segundo carácter visualizado subwf LCD_ApuntaCaracter,F en pantalla, que será el primero en la siguiente goto LCD_PrimeraPosicion visualización de línea, para producir el efecto de desplazamiento hacia la izquierda. LCD_NoEsFinalLinea movf LCD_ApuntaCaracter,W call Mensajes Obtiene el ASCII del carácter apuntado. movwf LCD_ValorCaracter Guarda el valor de carácter. movf LCD_ValorCaracter,F Lo único que hace es posicionar flag Z. En caso btfsc STATUS,Z que sea "0x00", que es código indicador final goto LCD_FinMovimiento de mensaje, sale fuera. LCD_NoUltimoCaracter2 42

43 call LCD_Caracter Visualiza el carácter ASCII leído. incf LCD_CursorPosicion,F Contabiliza el incremento de posición del cursor en la pantalla. incf LCD_ApuntaCaracter,F Apunta a la siguiente posición por visualizar. goto LCD_VisualizaCaracter Vuelve a visualizar el siguiente carácter de la línea. LCD_FinMovimiento return Vuelve al programa principal. =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. Editorial Ra-Ma. =================================================================== SRF08_L1.INC. ****************************************************************************************** ***** SRF08_16FXXX.INC Autor: Mikel Etxebarria (c) Ingeniería de Microsistemas Programados S.L. Bilbao 2007 El conjunto de rutinas que se presentan a continuación permiten realizar las funciones de control del sonar SRF08 de la firma Devantech mediante el interface I2C con un PIC16FXXX. Este fichero se debe incluir en los futuros programas fuente mediante la directiva INCLUDE: SRF08_in: SRF08_Byte_L SRF08_cm: SRF08_Byte_L SRF08_us: SRF08_Byte_L El SRF08 inicia una nueva medida en in. Resultado en SRF08_Byte_H y El SRF08 inicia una nueva medida en cm. Resultado en SRF08_Byte_H y El SRF08 inicia una nueva medida en us. Resultado en SRF08_Byte_H y SRF08_Luz: Realiza la medida de luminosidad que recibe el sónar SRF08 a través de la célula LDR. El resultado de 8 bits se deposita almacena en SRF08_Byte_H SRF08_Rango: Ajusta el rango de la distancia a medir: distancia=((rango*43)+43). Para medidas de distancia cortas, un menor rango permite medidas mas rápidas. Por defecto el rango es de 0xff (11 m).el nuevo rango se indica en SRF08_Byte_H. SRF08_Firm: Lee la versión del firmware interno del sónar SRF08. El resultado se deposita en SRF08_Byte_H SRF08_I2C_Dir: I2C ifndef SRF08_Var Cambia la dirección I2C del SRF08. SRF08_Byte_H debe contener la nueva dirección En el programa principal se ha definir la dirección inicial para las variables empleadas en SRF08_16FXXX.inc 43

44 messg SRF08_16FXXX endif "ERROR!! - Establecer dirección de inicio de las variables empleadas en (p.e. SRF08_Var equ 0x20)" SRF08 equ 0xe0 Dirección I2C del SRF08 de fabrica. cblock las programa endc SRF08_Var SRF08_Byte_H SRF08_Byte_L SRF08_Comando SRF08_DIR Define inicio de posiciones RAM empleadas por rutinas SRF08 Resultado de la lectura (alto) Resultado de la lectura (bajo) Comando a ejecutar Variable que se tiene que inicializar en el principal con la dirección del sensor. Ejemplo: MOVLW 0XE0 MOVWF SRF08_DIR ****************************************************************************************** **** SRF08_in: Realiza una medida en pulgadas. El resultado se almacén en SRF08_Byte_H y en SRF08_Byte_L SRF08_in movlw 0x50 movwf SRF08_Comando Almacena comando a ejecutar goto SRF08_Ejec Ejecuta el comando ****************************************************************************************** **** SRF08_cm: Realiza una medida en cm. El resultado se almacén en SRF08_Byte_H y en SRF08_Byte_L SRF08_cm movlw 0x51 movwf SRF08_Comando Almacena comando a ejecutar goto SRF08_Ejec Ejecuta el comando ****************************************************************************************** **** SRF08_us: Realiza una medida en us. El resultado se almacén en SRF08_Byte_H y en SRF08_Byte_L SRF08_us movlw 0x52 movwf SRF08_Comando Almacena comando a ejecutar goto SRF08_Ejec Ejecuta el comando ****************************************************************************************** ***** SRF08_Ejec: El SRF08 ejecuta un determinado comando. SRF08_Ejec call I2C_Send_Start Secuencia de inicio movlw SRF08_DIR 44

45 ejecución call I2C_Send_Byte Dirección I2C del SRF08 modo escritura movlw 0 call I2C_Send_Byte Dirección interna 0x00 (registro de comandos) movf SRF08_Comando,W call I2C_Send_Byte Enviar comando a ejecutar call I2C_Send_Stop Secuencia de stop call Retardo_100ms Temporización de 80mS necesaria para realizar la Secuencia para la lectura del resultado medido por el SRF08 SRF08) resultado de la medida) medida) movlw SRF08_DIR movwf Dir_I2C movlw 2 movwf I2C_Dir_Ini movlw 2 movwf I2C_N_Bytes call Leer_I2C movlw I2C_Buffer movwf FSR movf INDF,W movwf SRF08_Byte_H incf FSR,F movf INDF,W movwf SRF08_Byte_L return Almacena dirección I2C del dispositivo (el Dirección inicial interna 0x02 (byte alto del Nº de bytes a leer (2, parte alta y baja de la ****************************************************************************************** ***** SRF08_Luz: Realiza la medida de luminosidad que recibe el sónar SRF08 a través de la célula LDR. El resultado de 8 bits se deposita almacena en SRF08_Byte_H SRF08_Luz movlw 0x51 Al ejecutar un comando cualquiera, la medida de luz se movwf SRF08_Comando actualiza. Se ejecuta el comando de medir distancia en cm call SRF08_Ejec Ejecuta el comando A continuación se lee el contenido de la posición 1 que contiene el valor procedente de la célula LDR SRF08) de luz) movlw SRF08_DIR movwf Dir_I2C movlw 1 movwf I2C_Dir_Ini Almacena dirección I2C del dispositivo (el movlw 1 movwf I2C_N_Bytes Nº de bytes a leer (1) call Leer_I2C Realiza la lectura movf I2C_Buffer,W movwf SRF08_Byte_H Almacena el resultado Dirección inicial interna 0x01 (registro del sensor return 45

46 ****************************************************************************************** ***** SRF08_Rango: Ajusta el rango de la distancia a medir: distancia=((rango*43)+43). Para medidas de distancia cortas, un menor rango permite medidas mas rápidas. Por defecto el rango es de 0xff (11 m). El nuevo rango se indica en SRF08_Byte_H. SRF08_Rango call I2C_Send_Start Secuencia de inicio movlw SRF08_DIR call I2C_Send_Byte Dirección I2C del SRF08 modo escritura movlw 2 call I2C_Send_Byte Dirección interna 0x02 (registro de rango) movf SRF08_Byte_H,W Carga el rango call I2C_Send_Byte Transmite el nuevo rango call I2C_Send_Stop Secuencia de stop return ****************************************************************************************** ***** SRF08_Firm: Lee la versión del firmware interno del sónar SRF08. El resultado se deposita en SRF08_Byte_H SRF08_Firm SRF08) firmware interno) movlw SRF08_DIR movwf Dir_I2C movlw 0 movwf I2C_Dir_Ini Almacena dirección I2C del dispositivo (el movlw 1 movwf I2C_N_Bytes Nº de bytes a leer call Leer_I2C Leer dispositivo movlw I2C_Buffer movwf FSR movf INDF,W movwf SRF08_Byte_H Almacena el resultado Dirección inicial interna 0x00 (nº de versión del return ****************************************************************************************** ***** SRF08_I2C_Dir: Cambia la dirección I2C del SRF08. SRF08_Byte_H debe contener la nueva dirección I2C SRF08_I2C_Dir call I2C_Send_Start Secuencia de inicio movlw SRF08 call I2C_Send_Byte Dirección I2C del SRF08 modo escritura movlw 0 call I2C_Send_Byte Dirección interna 0x00 (registro de comandos) movlw 0xA0 1ª secuencia para el cambio de dirección call I2C_Send_Byte Enviar comando a ejecutar call I2C_Send_Stop Secuencia de stop call I2C_Send_Start Secuencia de inicio movlw SRF08 call I2C_Send_Byte Dirección I2C del SRF08 modo escritura movlw 0 call I2C_Send_Byte Dirección interna 0x00 (registro de comandos) movlw 0xAA 2ª secuencia para el cambio de dirección call I2C_Send_Byte Enviar comando a ejecutar call I2C_Send_Stop Secuencia de stop call I2C_Send_Start Secuencia de inicio 46

47 movlw SRF08 call I2C_Send_Byte Dirección I2C del SRF08 modo escritura movlw 0 call I2C_Send_Byte Dirección interna 0x00 (registro de comandos) movlw 0xA5 3ª secuencia para el cambio de dirección call I2C_Send_Byte Enviar comando a ejecutar call I2C_Send_Stop Secuencia de stop call I2C_Send_Start Secuencia de inicio movlw SRF08 call I2C_Send_Byte Dirección I2C del SRF08 modo escritura movlw 0 call I2C_Send_Byte Dirección interna 0x00 (registro de comandos) movf SRF08_Byte_H,W Nueva dirección I2C call I2C_Send_Byte Enviar comando a ejecutar call I2C_Send_Stop Secuencia de stop return RM1_S_RF.INC. title " Librería de recepción SERIE vía Radiofrecuencia para una Tarjeta Emisora SAW para Datos 433,92 MHz ( CEBEK C-0504 ) " Esta configurada la Interrupción en Recepción Serie. Es necesario cargar el Vector de Interrupción ORG 0X04 GOTO INTERRUPCION La Subrutina de Recepción Serie devuelve el dato valido en el Registro DATO_SERIE_VALIDO. Valida un dato si llega dos veces consecutivos. **************************** Registros********************************************************** CBLOCK ENDC DATO_SERIE1 DATO_SERIE2 DATO_SERIE_VALIDO LLAVE_ENTRADA CONTA_SERIEL CONTA_SERIEH *********************************** Sección de Configuración ************************************* CONFIGURACION_RECEP_SERIE BSF STATUS,RP0 Ir al Banco 1 BSF TRISC,7 Poner la patilla RC7 como entrada. 47

48 recepción. Datos. 4MHz/64(39+1)= BCF TXSTA,BRGH MOVLW D'39' MOVWF SPBRG BCF TXSTA,SYNC MOVLW B' ' MOVWF INTCON MOVLW B' ' MOVWF PIE1 Trabajar con velocidad baja de Cargar la Velocidad de Recepción de Br = Fosc/64(SPBRG+1)= 1562,5 bit/s Habilitamos la recepción asíncrona. Habilitar Interrupción Serie Habilitar Interrupción Serie BCF STATUS,RP0 Ir al Banco 0 MOVLW B' ' MOVWF RCSTA Configurar y lanzar la Recepcion Serie RETURN ****************************** Subrutina de Recepcion Serie *************************************** Tiene que estar dentro de la Rutina de INTERRUPCION RECEPCION_DATO_SERIE BCF PIR1,RCIF Borramos Flag de la Recepcion. NO_DATO_SERIE1 BTFSC PIR1,RCIF Preguntamos si hemos recibido una nuevo DATO. GOTO SI_DATO_SERIE1 Si en ms no ha llegado un nuevo dato MOVLW D'1' ADDWF CONTA_SERIEL,F BTFSS STATUS,C GOTO NO_DATO_SERIE1 MOVLW D'1' ADDWF CONTA_SERIEH,F BTFSS STATUS,C GOTO NO_DATO_SERIE1 GOTO SALIR_SERIE salir de serie. SI_DATO_SERIE1 CLRF CONTA_SERIEL Si ha llegado un dato antes de ms borrar los registros. CLRF CONTA_SERIEH MOVF RCREG,W MOVWF DATO_SERIE1 BCF PIR1,RCIF Guardamos el Dato Primero Borramos Flag de la Recepcion. NO_LLAVE_ENTRADA BTFSC PIR1,RCIF Preguntamos si ha llegado la Llave "LLAVE_ENTRADA". GOTO SI_LLAVE_ENTRADA Si en ms no ha llegado un nuevo dato salir de serie. 48

49 MOVLW D'1' ADDWF CONTA_SERIEL,F BTFSS STATUS,C GOTO NO_LLAVE_ENTRADA MOVLW D'1' ADDWF CONTA_SERIEH,F BTFSS STATUS,C GOTO NO_LLAVE_ENTRADA GOTO SALIR_SERIE SI_LLAVE_ENTRADA CLRF CONTA_SERIEL Si ha llegado la Llave de Entrada CLRF CONTA_SERIEH antes de ms borrar los registros. preguntar. previa MOVF RCREG,W XORWF LLAVE_ENTRADA,W BTFSS STATUS,Z GOTO SALIR_SERIE Preguntamos si ha llegado la Llave "LLAVE_ENTRADA". Si es correcta la Llave volvemos a No es correcta la Llave volvemos al PP recuperación de registros. BCF PIR1,RCIF Borramos Flag de la Recepcion. NO_DATO_SERIE2 BTFSC PIR1,RCIF Preguntamos si hemos recibido una nuevo DATO. GOTO SI_DATO_SERIE2 Si en ms no ha llegado un nuevo dato MOVLW D'1' ADDWF CONTA_SERIEL,F BTFSS STATUS,C GOTO NO_DATO_SERIE2 MOVLW D'1' ADDWF CONTA_SERIEH,F BTFSS STATUS,C GOTO NO_DATO_SERIE2 GOTO SALIR_SERIE salir de serie. SI_DATO_SERIE2 CLRF CONTA_SERIEL Si ha llegado la Llave de Entrada CLRF CONTA_SERIEH antes de ms borrar los registros. dato MOVF RCREG,W MOVWF DATO_SERIE2 MOVF DATO_SERIE1,W SUBWF DATO_SERIE2,F BTFSS STATUS,Z GOTO SALIR_SERIE Guardamos el Dato Segundo Si ambos datos son Iguales validamos el serie recibido. VALIDAR_DATO_SERIE SALIR_SERIE MOVF DATO_SERIE1,W MOVWF DATO_SERIE_VALIDO El Dato se queda cargado en el Registro DATO_SERIE_VALIDO. BCF PIR1,RCIF RETURN 49

50 T_M_S_RF.INC. title " Transmisor SERIE via Radiofrecuencia para una Tarjeta Emisora SAW para Datos 433,92 MHz. ( CEBEK C-0503 ) " Transmite una Llave y un Dato un numero de veces. ************************************* Igualdades ************************************************ TODOCERO EQU B' ' (Dato). Llave para iniciar un código, la tarjeta de transmisión de datos necesita el pulso de STOP para transmitir un código. Numero_de_Transmisiones EQU D'2' ************************************* Registros ************************************************* CBLOCK ENDC DATO_TRANSMITIDO CONTADOR_TRANSMISION LLAVE_ENTRADA ********************************* Sección de Configuración *************************************** CONFIGURACION_TRANS_SERIE BSF STATUS,RP0 Ir al Banco 1. Datos. (4MHz/64(39+1)) MOVLW D'39' MOVWF SPBRG MOVLW B' ' MOVWF TXSTA Cargar la Velocidad de Transmisión de BR = (Fosc/64(X+1)) BR = = 1562,5 Hz Configuración de la Transmisión Serie. BCF STATUS,RP0 Ir al Banco 0. BSF RCSTA,SPEN Activamos la Puerta Serie (TX). RETURN ***************************** Lanzar Llaves y Muestra Digital ************************************ LANZAR_DATO_SERIE MOVWF DATO_TRANSMITIDO Guardamos el W en el registro DATO_TRANSMITIDO. 50

51 MOVLW Numero_de_Transmisiones Cargamos el Numero_de_Transmisiones MOVWF CONTADOR_TRANSMISION en el registro CONTADOR_TRANSMISION. MOVLW TODOCERO MOVWF TXREG Lanzar llave TODOCERO. Transmisión de Datos en Serie. BSF STATUS,RP0 SEG1_TRANSMISION BTFSS TXSTA,TRMT Preguntamos si se ha transmitido el dato. GOTO SEG1_TRANSMISION BCF STATUS,RP0 REPETIR_TRANSMISION MOVF LLAVE_ENTRADA,W Lanzar llave LLAVE_ENTRADA. MOVWF TXREG Transmisión de Datos en Serie. BSF STATUS,RP0 SEG2_TRANSMISION BTFSS TXSTA,TRMT Preguntamos si se ha transmitido el dato. GOTO SEG2_TRANSMISION BCF STATUS,RP0 DATO_TRANSMITIDO. MOVF DATO_TRANSMITIDO,W MOVWF TXREG Lanzar Transmisión de Datos en Serie. BSF STATUS,RP0 SEG3_TRANSMISION BTFSS TXSTA,TRMT Preguntamos si se ha transmitido el dato. GOTO SEG3_TRANSMISION BCF STATUS,RP0 DECFSZ CONTADOR_TRANSMISION,F Llevamos en cuenta el numero de transmisiones. GOTO REPETIR_TRANSMISION RETURN 51

52 8.- Diseño de Placas de Circuitos Impresos Alimentación del Circuito + Cargador del Programa Esquema Eléctrico Cara de Componentes Cara de pistas Bottom Copper. y de pistas Top Copper. (MIRROR) 52

53 8.2.- Control + Potencia + etc. I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica Esquema Eléctrico. 53

54 Cara de Componentes y de pistas Top Copper. 54

55 Cara de pistas Bottom Copper. (MIRROR) 55

56 K K K K K A A A A A K VSS A Vcc GND3 Antena GND2 - Ve 2 2 GND1 1 GND Mando. I.E.S. Joan Miró (S.S. de los Reyes) / Dpto. Electrónica Esquema Eléctrico. Mando VDD D6E SW6E 1 2 A K INTERRUPTOR_JOAN 1N4007_JOAN BAT1E 9V U2E 7805_JOAN 1 VI C1E 220uF VO 3 C2E 220uF R6E 220 Q1E BD136_JOAN R7E 2.2k E_RF1E Emisor de Datos CEBEK C-0503 D7E LED-RED_JOAN CON1E 1 BORNIER1_JOAN C3E 15pF R1E 220 D1E LED-YELLOW_JOAN R2E 220 D2E LED-GREEN_JOAN R3E 220 D3E LED-RED_JOAN R4E 220 D4E LED-RED_JOAN R5E 220 D5E LED-RED_JOAN RB1E RB3E RB0E RB2E RB4E RB0E RB1E RB2E RB3E RB4E U1E 21 RB0/INT OSC1/CLKIN 22 RB1 OSC2/CLKOUT 23 RB2 MCLR/Vpp/THV 24 RB3/PGM 25 RB4 RA0/AN0 26 RB5 RA1/AN1 27 RB6/PGC RA2/AN2/VREF- 28 RB7/PGD RA3/AN3/VREF+ RA4/T0CKI 11 RC0/T1OSO/T1CKI RA5/AN4/SS 12 RC1/T1OSI/CCP2 13 RC2/CCP1 14 RC3/SCK/SCL 15 RC4/SDI/SDA 16 RC5/SDO 17 RC6/TX/CK 18 RC7/RX/DT VDD X1E 4MHz C4E 15pF SW1E SW2E SW3E SW4E SW5E PIC16F876_JOAN Izquierda Atras Adelante Parar Derecha Cara de Componentes Cara de pistas Bottom Copper. y de pistas Top Copper. 56

57 8.4.- Baliza Esquema Eléctrico Cara de Componentes Cara de pistas Bottom Copper. y de pistas Top Copper. 57

BUS I2C. IES Los Viveros Sevilla Dpto. Electrónica. 1

BUS I2C. IES Los Viveros Sevilla Dpto. Electrónica. 1 BUS I2C Se trata de un protocolo serie desarrollado por Philips Semiconductors usado por muchos integrados para comunicarse entre ellos, para su funcionamiento requiere sólo dos líneas, una de reloj (SCL)

Más detalles

TEMA 20.0. EL BUS I 2 C (Inter Integrated Circuit Bus) I2C EN C

TEMA 20.0. EL BUS I 2 C (Inter Integrated Circuit Bus) I2C EN C TEMA 20.0 EL BUS I 2 C (Inter Integrated Circuit Bus) I2C EN C La comunicación n serie en los PIC 16F87X Los microcontroladores PIC de la familia 16F78x, tienen la posibilidad de comunicación serie, las

Más detalles

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el CAPÍTULO 4 Funcionamiento del Robot Después de analizar paso a paso el diseño y funcionamiento de la interfase, nos podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que

Más detalles

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial Módulo Módulo LCD con interface serial LCD con interface serial EDISON DUQUE C. Este módulo permite mostrar, en una pantalla de cristal líquido, los mensajes que son enviados desde una computadora o un

Más detalles

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE Fernando Nuño García 1 Ventajas del BUS I2C Definido inicialmente a mediados de los 80 para trabajar a 100kbit/s y en 1995

Más detalles

Programa del PIC 16F877A

Programa del PIC 16F877A APÉNDICE B Programa del PIC 16F877A ;* "CONTROL AUTOMÁTICO DE VELOCIDAD VEHICULAR". * ;* EL PRESENTE PROGRAMA TIENE COMO FINALIDAD CONTROLAR LA VELOCIDAD DEL * ;* VEHÍCULO, DEPENDIENDO DE LA SEÑAL RECIBIDA

Más detalles

Usando los Codificadores Cuadráticos

Usando los Codificadores Cuadráticos Usando los Codificadores Cuadráticos Autor: Ing. Carlos Narváez Universidad de Oriente email: cnarvaez@udo.edu.ve Introducción El presente trabajo es una introducción a los denominados codificadores cuadráticos,

Más detalles

El módulo LCD Ejemplos de funcionamiento

El módulo LCD Ejemplos de funcionamiento SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 7: El módulo LCD El módulo LCD Ejemplos de funcionamiento - 1 - 1. Objetivos: - Conocer el funcionamiento y programación

Más detalles

Memoria 24LC256 I. I NTRODUCCIÓN

Memoria 24LC256 I. I NTRODUCCIÓN 1 Memoria 24LC256 I. I NTRODUCCIÓN I2C es un bus de comunicación serial sincrónica desarrollado por Phillips Semiconductors a principios de los años 80 s, con la principal intención de interconectar una

Más detalles

TRABAJO FINAL TECNICAS DIGITALES II

TRABAJO FINAL TECNICAS DIGITALES II Universidad Tecnológica Nacional Facultad Regional Córdoba TRABAJO FINAL TECNICAS DIGITALES II SISTEMA DE ADQUISICIÓN DE MUESTRAS DE TEMPERATURA AUTORES: TOUZ, FEDERICO ANDRES LEG: 43310 MONDINO,MAURO

Más detalles

MANEJO DE DISPLAY LCD (Versión 1.1)

MANEJO DE DISPLAY LCD (Versión 1.1) MANEJO DE DISPLAY LCD (Versión 1.1) Prof: Bolaños D. Si bien mucas aplicaciones donde debemos mostrar información podemos resolverlas con display de 7 segmentos, estos presentas algunas limitaciones importantes,

Más detalles

Programación en PIC Los primeros pasos

Programación en PIC Los primeros pasos Capítulo V Programación en PIC Los primeros pasos Encender y apagar un LED Secuenciador con cuatro LED's Leer los pulsadores y encender el LED correspondiente Programa avanzado utilizando el entrenador

Más detalles

INGENIERIA EN MICROCONTROLADORES. Protocolo RS-485. Introducción

INGENIERIA EN MICROCONTROLADORES. Protocolo RS-485. Introducción INGENIERIA EN MICROCONTROLADORES Protocolo RS-485 Introducción P R O T O C O L O R S - 4 8 5 www.i-micro.com Ingeniería en Microcontroladores Teléfono 044 55 11 29 55 05 E-mail: cursos@i-micro.com elp@i-micro.com

Más detalles

Instrucciones para programar el PIC16F877

Instrucciones para programar el PIC16F877 Instrucciones para programar el PIC16F877 2 Estos microcontroladores responden a una serie de instrucciones o códigos que se deben grabar en su memoria de programa, en total son 35. A continuación se encuentra

Más detalles

AD2100 10 a 24Vcc 100mA (1) SI SI SI 100 mw 1Km (2) 256 bytes AD2500 10 a 24Vcc 500mA (1) SI SI SI 500 mw 3km (2) 256 bytes

AD2100 10 a 24Vcc 100mA (1) SI SI SI 100 mw 1Km (2) 256 bytes AD2500 10 a 24Vcc 500mA (1) SI SI SI 500 mw 3km (2) 256 bytes AD2100 y AD2500 Transceptor Industrial de RF Interfaz RS232, RS485 y USB Manual de usuario e instalación Rev. 2 1. Introducción Los equipos de comunicación AD2100 y AD2500 son radio módems, los cuales

Más detalles

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Descripción El proyecto se trata de un sistema de cámaras de vigilancia en circuito cerrado,

Más detalles

Programación y diseño de dispositivos mediante microcontroladores PIC

Programación y diseño de dispositivos mediante microcontroladores PIC Metodología de Programación, Programación en C, Aplicaciones electrónicas 1 / 7 Programación y diseño de dispositivos mediante microcontroladores PIC Hemos elegido el microcontrolador PIC16F84 por las

Más detalles

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE TRABAJO PRÁCTICO Nº 6: PUERTO SERIE Introducción a las comunicaciones serie Las comunicaciones serie se utilizan para enviar datos a través de largas distancias, ya que las comunicaciones en paralelo exigen

Más detalles

HARDWARE DE UN ORDENADOR. Elementos básicos

HARDWARE DE UN ORDENADOR. Elementos básicos HARDWARE DE UN ORDENADOR Elementos básicos Componentes de un ordenador Hardware: todos los componentes físicos, tanto internos como externos: monitor, teclado, disco duro, memoria, etc. Software: todos

Más detalles

Sistema Dupline de Guiado en Parking Interfaz para Modbus/RTU Modelo GP34960005

Sistema Dupline de Guiado en Parking Interfaz para Modbus/RTU Modelo GP34960005 Sistema Dupline de Guiado en Parking Interfaz para Modbus/RTU Modelo GP34960005 Interfaz para Modbus-RTU con función esclavo Generador de canales Dupline incorporado Bus Dupline y alimentación CC en 3

Más detalles

Placa de control MCC03

Placa de control MCC03 Placa de control MCC03 Placa de control MCC03 La placa de control basada en el micro controlador PIC 16F874A de Microchip, es la encargada del procesar los datos que se introducen en el sistema y actuar

Más detalles

Practica de Control y Programación de Robots ROBOT HERMES. Curso 2007-2008

Practica de Control y Programación de Robots ROBOT HERMES. Curso 2007-2008 Practica de Control y Programación de Robots ROBOT HERMES Curso 2007-2008 CAMPUS TECNOLÓGICO DE LA UNIVERSIDAD DE NAVARRA NAFARROAKO UNIBERTSITATEKO CAMPUS TEKNOLOGIKOA Paseo de Manuel Lardizábal 13. 20018

Más detalles

SENSOR DE MOVIMIENTO

SENSOR DE MOVIMIENTO MANUAL DE PRODUCTO SENSOR DE MOVIMIENTO ZN1IO-DETEC Edición 2 Versión 3.1 Índice 1. Introducción... 3 2. Instalación... 4 2.1. Instalación del Sensor de Movimiento... 4 2.2. Descripción de elementos...

Más detalles

Manual de instrucciones DPR-15/DPR 215

Manual de instrucciones DPR-15/DPR 215 Manual de instrucciones DPR-15/DPR 215 Controles 1. Control de sintonía 2. Botón Select (Seleccionar) 3. Botones de presintonías 4. Control de volumen 5. Pantalla LCD 6. Botón Info 7. Botón de Sintonía

Más detalles

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA I. INTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA 1.1. Informática Informática (Información Automática) es la ciencia y la técnica del tratamiento automatizado de la información mediante el uso de ordenadores.

Más detalles

Especificaciones técnicas. Power, Inputs and Outputs. Operating Voltage Input Voltage (recommended) Input Voltage (limits) Analog Input Pins

Especificaciones técnicas. Power, Inputs and Outputs. Operating Voltage Input Voltage (recommended) Input Voltage (limits) Analog Input Pins Especificaciones técnicas Microcontroller Operating Voltage Input Voltage (recommended) Input Voltage (limits) Digital I/O Pins Analog Input Pins DC Current for I/O Pin DC Current for 3.3V Pin Flash Memory

Más detalles

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria Típica. Los datos almacenados en memoria tienen que pasar, en un momento

Más detalles

Comunicación Serie IIC: Inter-Integrated Circuit

Comunicación Serie IIC: Inter-Integrated Circuit Comunicación Serie IIC: Inter-Integrated Circuit IIC: Inter-Integrated Circuit I2C es un bus serial, multi-master, de baja velocidad (de 10 a 400kbps), creado por Philips. El objetivo es facilitar la conexión

Más detalles

AUTOMATIZACIÓN - CURSO: 2010-2011- Práctica 4: Sistema de Monitorización de tiempo mediante Arduino

AUTOMATIZACIÓN - CURSO: 2010-2011- Práctica 4: Sistema de Monitorización de tiempo mediante Arduino AUTOMATIZACIÓN - CURSO: 2010-2011- Juan Antonio Corrales Ramón Carlos Alberto Jara Bravo Fernando Torres Medina Grupo de Innovación Educativa en Automática Departamento de Física, Ingeniería de Sistemas

Más detalles

AUTOMATIZACIÓN INDUSTRIAL

AUTOMATIZACIÓN INDUSTRIAL 2º I.T.I. Electrónica Industrial AUTOMATIZACIÓN INDUSTRIAL PRÁCTICAS PRÁCTICA 1 El objetivo que se pretende con esta práctica es la familiarización con el autómata Simatic S7-200 así como con el programa

Más detalles

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Capítulo 8.- Inter Integrated Circuit Interface I2C MMIIC

Más detalles

PROGRAMACION LADDER PLC BASICA. Descripción del lenguaje ladder

PROGRAMACION LADDER PLC BASICA. Descripción del lenguaje ladder PROGRAMACION LADDER PLC BASICA Descripción del lenguaje ladder Existen distintos tipos de lenguaje de programación de un PLC, quizás el más común sea la programación tipo escalera o ladder. Los diagramas

Más detalles

DESCRIPCION DEL SITEMA MASTER.

DESCRIPCION DEL SITEMA MASTER. DESCRIPCION DEL SITEMA MASTER. ESTRUCTURA. El sistema MASTER (Sistema Modular para Control Adaptativo en Tiempo Real) se ha implementado en base a un computador compatible PC-AT, dotado de una tarjeta

Más detalles

SENSOR DE LUMINOSIDAD 2095 LUX

SENSOR DE LUMINOSIDAD 2095 LUX SENSOR DE LUMINOSIDAD 2095 LUX Sensor de luminosidad Familia: Sensores Producto: Luminosidad 2095 LUX INDICE 1. Descripción de su función:... 3 2. Características técnicas:... 4 2.1. Esquema del aparato:...

Más detalles

Diseño e Implementación de un Sistema de Monitoreo Inalámbrico para Sistemas Embebidos

Diseño e Implementación de un Sistema de Monitoreo Inalámbrico para Sistemas Embebidos I CONGRESO VIRTUAL DE MICROCONTROLADORES Y SUS APLICACIONES 1 Diseño e Implementación de un Sistema de Monitoreo Inalámbrico para Sistemas Embebidos Juan Felipe Medina L., John Edward Salazar D., Nicolás

Más detalles

6. Controlador del Motor

6. Controlador del Motor 6. Controlador del Motor 82 6.1 Introducción: El controlador es el dispositivo encargado de controlar el motor, dependiendo de las señales que le llegan a través del programador de mano y las señales provenientes

Más detalles

DISCOS RIGIDOS. Forman el principal elemento de la memoria secundaria de un ordenador, llamada así en oposición a la memoria principal o memoria RAM

DISCOS RIGIDOS. Forman el principal elemento de la memoria secundaria de un ordenador, llamada así en oposición a la memoria principal o memoria RAM DISCOS RIGIDOS Es un hardware de almacenamiento permanente su función en la PC consiste en guardar los archivos de instalación del sistema operativo y datos del usuario. Forman el principal elemento de

Más detalles

SERVOMOTORES. Los servos se utilizan frecuentemente en sistemas de radiocontrol, mecatrónicos y robótica, pero su uso no está limitado a estos.

SERVOMOTORES. Los servos se utilizan frecuentemente en sistemas de radiocontrol, mecatrónicos y robótica, pero su uso no está limitado a estos. SERVOMOTORES Un servomotor (también llamado Servo) es un dispositivo similar a un motor DC, que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación y mantenerse estable

Más detalles

Práctica 5. Circuitos digitales: control del nivel de un depósito

Práctica 5. Circuitos digitales: control del nivel de un depósito Práctica 5. Circuitos digitales: control del nivel de un depósito 1. Objetivos Conocer el funcionamiento de sistemas de control digital. Conocer el funcionamiento y la utilidad de los circuitos integrados

Más detalles

M-Bus Master MultiPort 250D/L

M-Bus Master MultiPort 250D/L MultiPort 250D/L Lectura remota vía M-Bus Hasta 250 contadores por y en cascada, hasta 1250 contadores en un sistema Soporte de direccionamiento primario, secundario, secundario ampliado y búsqueda wild

Más detalles

INTRODUCCIÓN A LA INSTRUMENTACIÓN BÁSICA. Nociones básicas sobre el manejo de LOS EQUIPOS DEL LABORATORIO

INTRODUCCIÓN A LA INSTRUMENTACIÓN BÁSICA. Nociones básicas sobre el manejo de LOS EQUIPOS DEL LABORATORIO INTRODUCCIÓN A LA INSTRUMENTACIÓN BÁSICA Esta documentación tiene como objetivo facilitar el primer contacto del alumno con la instrumentación básica de un. Como material de apoyo para el manejo de la

Más detalles

Twido Twido Windows Executive Loader Wizard Ayuda en pantalla. spa Versión 3.2

Twido Twido Windows Executive Loader Wizard Ayuda en pantalla. spa Versión 3.2 Twido Twido Windows Executive Loader Wizard Ayuda en pantalla spa Versión 3.2 2 Tabla de materias Acerca de este libro................................... 5 Capítulo 1 Utilización de Twido Executive Loader

Más detalles

HARDWARE DE SISTEMA AUTOMÁTICO DE RASTREO DE VEHÍCULOS MEDIANTE TECNOLOGÍAS GPRS Y GPS

HARDWARE DE SISTEMA AUTOMÁTICO DE RASTREO DE VEHÍCULOS MEDIANTE TECNOLOGÍAS GPRS Y GPS HARDWARE DE SISTEMA AUTOMÁTICO DE RASTREO DE VEHÍCULOS MEDIANTE TECNOLOGÍAS GPRS Y GPS Ing. Javier A. Garabello Facultad Regional Villa María UTN Av. Universidad 450 Tel: 0353-4537500 javiergarabello@hotmail.com

Más detalles

I2C. Ing. Pablo Martín Gomez pgomez@fi.uba.ar

I2C. Ing. Pablo Martín Gomez pgomez@fi.uba.ar I2C Ing. Pablo Martín Gomez pgomez@fi.uba.ar 1 Comunicaciones en un bus serie 2 Comunicaciones en un bus serie 3 I²C Velocidad 4 UART Universal Asynchronous Receiver Transmitter Estándar de comunicación

Más detalles

5. Despliegue en la PC

5. Despliegue en la PC 5 DESPLIEGUE EN LA PC 62 5.1 Conexión a la PC por medio de la tarjeta de audio La adquisición de señales analógicas es un trabajo que cada vez se hace más necesario en todos los campos relacionados con

Más detalles

SISTEMA ALARMA DOMESTICO MEMORIA

SISTEMA ALARMA DOMESTICO MEMORIA SISTEMA ALARMA DOMESTICO MEMORIA Benito Zaragozí Zaragozí Carlos García Gómez Alejandro Gil Martínez Bezaza@epsa.upv.es Cargargo@epsa.upv.es Algimar@epsa.upv.es INTRODUCCIÓN Hoy en día si desea proteger

Más detalles

JUEGO DE CARRERA DE AUTOS EN LCD

JUEGO DE CARRERA DE AUTOS EN LCD JUEGO DE CARRERA DE AUTOS EN LCD Andrés Bastidas; Nathali Gordón; Verónica Grefa; Mónica Mejía; Juan Carlos Obregón Control con Microprocesadores, Nelson Sotomayor, MSc. 1 INTRODUCCIÓN El objetivo del

Más detalles

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT)

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT) COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT) Centro CFP/ES COMUNICACIÓN I2C 1 VENTAJAS DE LA COMUNICACIÓN I2C COMPARATIVA ESTANDAR DE TRANSMISIÓN 2 DISPOSITIVOS I2C DISPOSITIVOS I2C MAX518 3 DISPOSITIVOS

Más detalles

ETHERDORLET GUIA DE CONFIGURACIÓN

ETHERDORLET GUIA DE CONFIGURACIÓN ETHERDORLET GUIA DE CONFIGURACIÓN Ref. IC V1.21 Septiembre 2005 INDICE 1. Introducción... 1 2. Características... 1 3. Interface de red... 1 4. Especificaciones Técnicas...2 5. Explicación de componentes...

Más detalles

Maqueta: Osciloscopio y generador

Maqueta: Osciloscopio y generador Maqueta: Osciloscopio y generador 1. Introducción Esta práctica se divide en dos partes. En la primera se desarrolla un osciloscopio digital basado en el ADC del 80C537 y la pantalla del PC. En la segunda

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET Cada capa de la pila añade a los datos a enviar a la capa inferior, información de control para que el envío sea correcto. Esta información

Más detalles

UNIDAD DE TRABAJO Nº2. INSTALACIONES DE MEGAFONÍA. UNIDAD DE TRABAJO Nº2.1. Descripción de Componentes. Simbología AURICULARES

UNIDAD DE TRABAJO Nº2. INSTALACIONES DE MEGAFONÍA. UNIDAD DE TRABAJO Nº2.1. Descripción de Componentes. Simbología AURICULARES UNIDAD DE TRABAJO Nº2. INSTALACIONES DE MEGAFONÍA UNIDAD DE TRABAJO Nº2.1. Descripción de Componentes. Simbología 2. Auriculares. Descripción. AURICULARES Son transductores electroacústicos que, al igual

Más detalles

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS INVENTARIO INTRODUCCIÓN Es habitual que en las empresas realicen a final de año un Inventario. Con este proceso se pretende controlar el nivel de stock existente, para iniciar el nuevo ejercicio, conociendo

Más detalles

DISPLAYS DE CRISTAL LIQUIDO

DISPLAYS DE CRISTAL LIQUIDO DISPLAYS DE CRISTAL LIQUIDO INDICE MANUAL DE REFERENCIA DEL LCD 1.- INTRODUCCION 2.- CARACTERISTICAS DEL DISPLAY 2.1.- Aspecto físico 2.2.- Alimentación 2.3.- Los caracteres del LCD 2.4.- La memoria del

Más detalles

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro.

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. Las Instrucciones A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. En general la instrucciones de los microcontroladores pueden clasificarse como:

Más detalles

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones: Ensamblador Interrupciones Definición: Una interrupción es el rompimiento en la secuencia de un programa para ejecutar un programa especial llamando una rutina de servicio cuya característica principal

Más detalles

Tema. Módulo Captura Comparación Modulación n de Achura de Pulsos. C. F. G.S. D.P.E. Módulo de Proyectos 1

Tema. Módulo Captura Comparación Modulación n de Achura de Pulsos. C. F. G.S. D.P.E. Módulo de Proyectos 1 Tema Módulo Captura Comparación Modulación n de Achura de Pulsos C. F. G.S. D.P.E. Módulo de Proyectos 1 Módulo de Captura/ aptura/comparación/ n/pwm Los microcontroladores de la familia 16F87X disponen

Más detalles

Manual de Procedimientos

Manual de Procedimientos 1 de 13 Elaborado por: Oficina de Planeación y Desarrollo Institucional -Área de Calidad y Mejoramiento- Revisado por: Aprobado por: Coordinador Área de Jefe de la Oficina de Informática y Telecomunicaciones

Más detalles

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15 1 / 15 El contenido del libro " MICROCONTROLADOR PIC16F84. Desarrollo de proyectos " de la Editorial Ra CAPÍTULOS: 1. MICROCONTROLADOR PIC16F84 2. PERIFÉRICOS BÁSICOS 3. GRABACIÓN DE MICROCONTROLADORES

Más detalles

Sistema de seguridad con emisión de mensaje SMS

Sistema de seguridad con emisión de mensaje SMS Sistema de seguridad con emisión de mensaje SMS INDICE 1.- INTRODUCCIÓN Pág. 1 2.- ELEMENTOS HARDWARE EMPLEADOS. Pág. 1 3.- COMUNICACIÓN SERIE (Comandos at)... Pág. 4 4.- EXPLICACIÓN DEL PROGRAMA... Pág.

Más detalles

1) ETAPA DE POTENCIA.

1) ETAPA DE POTENCIA. 1) ETAPA DE POTENCIA. Cuando es necesario controlar el sentido de giro de un motor de corriente continua de baja potencia, se suelen utilizar transistores de potencia en configuración Puente en H, tal

Más detalles

SOFTWARE CSU-485. Para conectar el dispositivo CSU-485 lo podemos hacer de dos maneras:

SOFTWARE CSU-485. Para conectar el dispositivo CSU-485 lo podemos hacer de dos maneras: SOFTWARE CSU-485 El Software CSU-485, es un software utilizado para configurar el dispositivo CSU-485, como la configuración del rango de la entrada analógica o el registro de datos. También es posible

Más detalles

www.roteccontrol.com rotec@roteccontrol.com C/ LLibertat 29 local b 07013 - Palma de Mallorca Baleares - España ( + 34 971 91 39 34 Fax + 34 971 45 73 10 Manual de programación Sistemas de control Elementos

Más detalles

Introducción a Arduino

Introducción a Arduino 9 de Noviembre de 2012 Indice-I Plataforma Estándar Electrónica IDE Conceptos básicos electrónica Ley de Ohm y efecto Joule Ruido, puntos sin conexión y efecto rebote Semiconductores Conceptos básicos

Más detalles

Automatización digital de procesos. Tema B

Automatización digital de procesos. Tema B Automatización digital de procesos Tema B Estructura de sistema ACTUADORES PROCESO SENSORES Acciones que se realizan sobre el proceso Información suministrada por el proceso SALIDAS PLC ENTRADAS Bloques

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

5.5 Interfaces especiales. 5.5.1 Interfaz V.24. Norma V.24. neris 4/8/64

5.5 Interfaces especiales. 5.5.1 Interfaz V.24. Norma V.24. neris 4/8/64 5.5 Interfaces especiales 5.5.1 Interfaz V.24 Norma V.24 V.24 es una interfaz serie utilizada para la conexión con una impresora o PC. De acuerdo con la recomendación V.24, una extensión de cable de 15

Más detalles

CAPÍTULO IV. Paquetes y Rutinas de Transmisión y Recepción del Autómata

CAPÍTULO IV. Paquetes y Rutinas de Transmisión y Recepción del Autómata CAPÍTULO IV Paquetes y Rutinas de Transmisión y Recepción del Autómata En este capítulo hablaremos de los enlaces físicos de comunicación SCO y ACL siendo este último es que ocupará el Autómata en la conexión

Más detalles

Autómata Siemens S7-200

Autómata Siemens S7-200 Autómata Siemens S7-200 El autómata S7-200 está constituido por la CPU S7-200 y una serie de módulos de expansión adicionales, hasta un máximo de 7 en el caso de la CPU 224. CPU S7-200 La CPU S7-200 está

Más detalles

Introducción al enrutamiento y envío de paquetes

Introducción al enrutamiento y envío de paquetes Introducción al enrutamiento y envío de paquetes Conceptos y protocolos de enrutamiento. Capítulo 1 Ing. Aníbal Coto 1 Objetivos Identificar un router como una computadora con SO y hardware diseñados para

Más detalles

Práctica de manejo de motores CC con arduino. Antonio Martínez

Práctica de manejo de motores CC con arduino. Antonio Martínez Práctica de manejo de motores CC con arduino Antonio Martínez Motor CC Existen varios tipos de motores (servos, Motores de paso..), el motor que tenemos en el aula normalmente es un motor DC. Son los motores

Más detalles

Señal de petición de Interrupción

Señal de petición de Interrupción Consideren una tarea que require tomar caracteres desde un teclado y mostrarlos en la pantalla de un monitor. La tasa de transferencia desde un teclado a un computador está limitado por la velocidad del

Más detalles

Componentes: RESISTENCIAS FIJAS

Componentes: RESISTENCIAS FIJAS ELECTRÓNICA ELECTRÓNICA Componentes: RESISTENCIAS FIJAS Componentes: RESISTENCIAS VARIABLES Componentes: RESISTENCIAS DEPENDIENTES Componentes: RESISTENCIAS DEPENDIENTES Componentes: CONDENSADORES Componentes:

Más detalles

GUIA RÁPIDA UNIDAD DE DEVICENET CJ1W-DRM21 ESTE MANUAL CONTIENE: 1.- CARACTERÍSTICAS. 2.- NOMENCLATURA Y FUNCIONES. 3.- ÁREAS CIO Y DM.

GUIA RÁPIDA UNIDAD DE DEVICENET CJ1W-DRM21 ESTE MANUAL CONTIENE: 1.- CARACTERÍSTICAS. 2.- NOMENCLATURA Y FUNCIONES. 3.- ÁREAS CIO Y DM. GUIA RÁPIDA UNIDAD DE DEVICENET CJ1W-DRM21 ESTE MANUAL CTIENE: 1.- CARACTERÍSTICAS. 2.- NOMENCLATURA Y FUNCIES. 3.- ÁREAS CIO Y DM. 1.- Características. G.R. CJ1W-DRM21. 1.- Características. La tarjeta

Más detalles

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Descarga Automática Manual de Usuario Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Versión 5.2 Fecha: 2008-10-15 Ref : MU_DescargaAutomática.doc ÍNDICE 1 INTRODUCCIÓN...

Más detalles

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo. DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo. DFRduino Romeo Romeo es un microcontrolador de todo-en-uno diseñado especialmente

Más detalles

Anexo B. Comunicaciones entre mc y PC

Anexo B. Comunicaciones entre mc y PC Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación

Más detalles

MONITOR DE PESO CALIBRADO POR PESO CONOCIDO Y POR SENSIBILIDAD CONOCIDA MS 3.3.2

MONITOR DE PESO CALIBRADO POR PESO CONOCIDO Y POR SENSIBILIDAD CONOCIDA MS 3.3.2 MONITOR DE PESO CALIBRADO POR PESO CONOCIDO Y POR SENSIBILIDAD CONOCIDA MS 3.3.2 1 CONEXIONADO DEL EQUIPO: 2 3 El menú principal consta de las siguientes opciones: 1.- CALIBRACIÓN 2.- RELÉS 3.- SALIDA

Más detalles

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A Proyecto Fin de Carrera 95 Antonio Andújar Caballero 8. PROGRAMACIÓN DEL PIC 16F876A. A la hora de realizar el programa de control para nuestro ecualizador,

Más detalles

Práctica 1. Introducción al SIEMENS 80C167

Práctica 1. Introducción al SIEMENS 80C167 Práctica 1 Introducción al SIEMENS 80C167 1 Objetivos Toma de contacto con los recursos de la tarjeta PHY80C167 basada en el microcontrolador SIEMENS 80C167 Familiarizarse con la herramienta de desarrollo

Más detalles

Detección de Presencia Serie para la Identificación de Módulos de Memoria

Detección de Presencia Serie para la Identificación de Módulos de Memoria Detección de Presencia Serie para la Identificación de Módulos de Memoria MSc. Guillermo Alvarez Bestard Tec. Miguel A. Machirán Simón Instituto de Cibernética Matemática y Física, AENTA Ministerio de

Más detalles

Conexión de un Terminal al Puerto de la Consola en Switches Catalyst

Conexión de un Terminal al Puerto de la Consola en Switches Catalyst Conexión de un Terminal al Puerto de la Consola en Switches Catalyst Contenido Introducción prerrequisitos Requisitos Componentes Utilizados Convenciones Conecte un Terminal a los Catalyst 1900/2820, 2900/3500XL,

Más detalles

Práctica 2NivelFisico: Estudio del nivel físico en la RS232 y en la RS485

Práctica 2NivelFisico: Estudio del nivel físico en la RS232 y en la RS485 Práctica 2NivelFisico: Estudio del nivel físico en la y en la RS485 1 Objetivos El objetivo de esta práctica es el estudio físico de la y de la RS485 y su relación cuando conviven en un mismo sistema.

Más detalles

PRÁCTICA 1. Creación de proyectos en STEP-7

PRÁCTICA 1. Creación de proyectos en STEP-7 AUTÓMATAS Y SISTEMAS DE CONTROL PRÁCTICA 1 Creación de proyectos en STEP-7 Qué hay que hacer en la práctica? 1) Lea los apartados 1 y 2 del guión de prácticas. En ellos se explica las características básicas

Más detalles

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale Curso sobre Microcontroladores Familia HC9S08 de Freescale Por Ing. Daniel Di Lella EduDevices www.edudevices.com.ar e-mail: info@edudevices.com.ar Capítulo 8.- Inter Integrated Circuit Interface I2C MMIIC

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC Temporizadores y contadores en tiempo real: El módulo Timer0 y el aler del PIC 1. Introducción...1 2. Estructura del Timer0...1 3. Funcionamiento del Timer0...2 3.1. Entrada de reloj del modulo Timer0...

Más detalles

Quo. Manual de Usuario

Quo. Manual de Usuario Quo Quo Manual de Usuario 2 Contenido Su teléfono móvil 4 Guía de uso rápido 4 Hacer llamadas 4 Administración de contactos 5 - Su lista de contactos 5 - Agregar un contacto 5 Mensajería SMS y MMS 5 -

Más detalles

ANEXO D X-CTU CONFIGURATION & TEST UTILITY SOFTWARE. Technical Support: Online support: http://www.digi.com/support/eservice/login.

ANEXO D X-CTU CONFIGURATION & TEST UTILITY SOFTWARE. Technical Support: Online support: http://www.digi.com/support/eservice/login. ANEXO D X-CTU CONFIGURATION & TEST UTILITY SOFTWARE Technical Support: Online support: http://www.digi.com/support/eservice/login.jsp TABLA DE CONTENIDO 1. INTRODUCCION... 2 2. PC SETTINGS... 3 2.1 COM

Más detalles

Capítulo I. Convertidores de CA-CD y CD-CA

Capítulo I. Convertidores de CA-CD y CD-CA Capítulo I. Convertidores de CA-CD y CD-CA 1.1 Convertidor CA-CD Un convertidor de corriente alterna a corriente directa parte de un rectificador de onda completa. Su carga puede ser puramente resistiva,

Más detalles

3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE EL PLC 5. EJEMPLO DE RECEPCIÓN DE SMS EN EL PLC

3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE EL PLC 5. EJEMPLO DE RECEPCIÓN DE SMS EN EL PLC MÓDEM-GSM INDICE 1. INTRODUCCIÓN Centro Integrado Politécnico ETI Departamento de Electricidad 2. CONFIGURACIÓN PUERTO SERIE CPU 3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE

Más detalles

... partes internas del computador!...

... partes internas del computador!... ... partes internas del computador!... LOS DISPOSITIVOS INTERNOS UNA PC EN SI, PUEDE "DAR SEÑALES DE VIDA" SIN EL TECLADO, SIN EL MONITOR, SIN EL RATÓN Y TODOS LOS DISPOSITIVOS EXTERNOS, AUNQUE NO TENDRÍA

Más detalles

Manual del usuario SOFTWARE. Indice. Ref: DS 0085. Introducción Requisitos del sistema

Manual del usuario SOFTWARE. Indice. Ref: DS 0085. Introducción Requisitos del sistema Indice Manual del usuario SOFTWARE Ref: DS 0085 v1.0 Introducción Requisitos del sistema Instalación del software WITEC Instalación Windows XP Instalación Windows VISTA Usuarios macos y Linux Utilización

Más detalles

GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL

GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL Sistemas Electrónicos Digitales Avanzados GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL PRÁCTICA FINAL GENERADOR AVANZADO DE FORMAS DE ONDA Dpto. Electrónica Curso 2013/2014 1. Introducción La

Más detalles

Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC

Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC A. Muñoz, A. Millan, P. Ruiz-de-Clavijo, J. Viejo, E. Ostua, D. Guerrero Grupo ID2 (Investigación y Desarrollo Digital).

Más detalles

Como funcionan las corrientes portadoras

Como funcionan las corrientes portadoras El sistema X-10 es el sistema estándar de tantos sistemas de corrientes portadoras ya que es el que más extendido. Este sistema se creo hace más de 20 años y sus antiguos componentes siguen funcionando

Más detalles

P/. Factura Electrónica D/. Manual de Usuario Proveedores

P/. Factura Electrónica D/. Manual de Usuario Proveedores Control documental Versión del Fecha Autor Modificaciones/Comentarios documento 1.0 10/02/2011 Diputación de Teruel Versión inicial del documento 1.1 05/04/2011 Diputación de Teruel Revisado estilo 1.2

Más detalles

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6 SALIDAS ANALÓGICAS A. Arquitectura de la salida analógica B. Uso del DAQmx Write VI C. VI, AO Multipuntos (Buffered) D. Generación del Buffer Finito E. Generación del Buffer Continuo Página 1 de 8 A. ARQUITECTURA

Más detalles

Curso de Iniciación a la Micro- Robótica. SigBot ACM Capítulo de estudiantes

Curso de Iniciación a la Micro- Robótica. SigBot ACM Capítulo de estudiantes Curso de Iniciación a la Micro- Robótica SigBot ACM Capítulo de estudiantes Micro-robótica? La micro-robótica es la parte de la robótica que crea los robots más económicos y de fácil construcción para

Más detalles

Manual de instrucciones de uso Medidor de fuga de corriente AC PCE-LCT1

Manual de instrucciones de uso Medidor de fuga de corriente AC PCE-LCT1 C/ Mayor, 53 - Bajo 02500 Tobarra Albacete-España Tel. : +34 967 543 548 Fax: +34 967 543 542 info@pce-iberica.es Manual de instrucciones de uso Medidor de fuga de corriente AC PCE-LCT1 Tabla de contenidos

Más detalles

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Examen Curso 2001-2002. Convocatoria de Febrero Página 1 Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Este ejercicio se divide en dos partes con el fin de que el alumno no intente

Más detalles