Sei sulla pagina 1di 24

ACTIVIDAD No.

6 TRABAJO COLABORATIVO 2

INSTRUMENTACIN MDICA
GRUPO 2990164_3

ING. SAULO ANDRS


TUTOR

ANGEL MARIN
CODIGO 4375696
IVAN CASTAEDA MONSALVE
CODIGO 75070194
GERMAN LOPEZ ESCOBAR
CODIGO 80.222.289
MAURICIO JIMENEZ GALEANO
CODIGO 79916070

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERAS
BOGOT, D.C. NOVIEMBRE 2015

INTRODUCCION

En nuestra vida cotidiana podemos evidenciar diferente tipo de herramientas de anlisis y


solucin de problemas, los cuales nos facilitan el proceso de alcanzar nuestras metas de
aprendizaje, gran parte de poder superar los obstculos que se presentan es una buena
planeacin y la informacin adecuada o documentacin, por eso es importante conocer las
herramientas que tenemos a nuestro alcance como, como unidades de medida, magnitudes
fsicas, variables, procedimientos de medicin de variables, componentes elctricos, simuladores
de circuitos, los cuales nos permiten evidenciar el comportamiento de distintas variables y las
diferentes variaciones de estas segn las condiciones a las cuales estn expuestas, como
circuitos de medicin de voltaje, corriente y resistencia al paso de la corriente, los cuales vamos
a desarrollar en la materia de instrumentacin mdica, los cuales hacen parte del proceso de
aprendizaje, el cual nos va a permitir desarrollar las actividades programadas como laboratorios
y trabajos colaborativos lograremos alcanzar as el xito en esta materia.
Antes del ao 1900, la medicina se basaba principalmente en el medico, un bolso negro, y
medicinas empricas. El hospital era ms bien un tipo de asilo.
Es hasta el siglo XX que se da un rpido avance tecnolgico y cientfico, convirtiendo al hospital
como el punto focal de la medicina, y utilizando tecnologa para el diagnstico y tratamiento de
patologas.
Por medio del siguiente trabajo se pretende poner en evidencia la alianza que ha tenido a
medicina con la electrnica, permitiendo desarrollar instrumentos de medicin, diagnstico y
procedimientos quirrgicos basados en una nica finalidad que es salvar vidas.
Encontraran el desarrollo de un Estimulador muscular basado en la electrnica para la
estimulacin de tejidos musculares a travs de corrientes elctricas, las cuales son usadas para
diversos fines el primero puede ser con fin teraputico para hacer la estimulacin a diversas
partes del cuerpo, sirve para la recuperacin muscular cuando hubo accidentes donde se pierda
la movilidad, tambin es usado para hacer adelgazamiento en zonas que prefiera la persona
haciendo que haya un calentamiento interno y as se genere un disminucin de grasa.

OBJETIVOS

Poner en prctica los conceptos de aplicacin de la electroterapia para la medicina.

Crear un sistema funcional que supla las necesidades requeridas para su buen
funcionamiento

Comprender y solucionar dudas presentadas con trabajo en equipo e investigacin

Ampliar conocimientos mediante la intercomunicacin en el foro adems de las


orientaciones del tutor con el fin de tener claro conceptos y procedimientos.

MARCO TERICO

REALIZACIN DEL SOFTWARE


El grupo debe desarrollar el software de programacin de un microcontrolador en lenguaje
asembler, aplicado al mdulo de puente H de un equipo de electroterapia del captulo 10,
numeral 10.5 para generar las ondas electroteraputicas de las figuras 121 a 125, que cumpla
con las siguientes condiciones:
1. El microcontrolador ser el PIC16F87.
2. Debe simularse con Proteus.

PARA TENER EN CUENTA A LA HORA DE LA PROGRAMACIN

Para obtener pulsos aislados positivos en la carga (resistencia del paciente) conectada entre los
drenadores D1/D2 y D3/D4, el microcontrolador genera la tensin VG1-3 de pulsos con las
condiciones de tiempos TON (desde 0,005 ms a 1 s) y TOFF (desde 1 a 5 s) determinadas para
aplicaciones TENS o TEMS, mientras que la tensin VG2-4 ser cero todo el tiempo, tal como se
muestra en la figura 121. Para obtener pulsos aislados negativos en la carga, el microcontrolador
genera la tensin VG2-4 de pulsos con las condiciones de tiempos ON y OFF determinadas para
aplicaciones TENS o TEMS, mientras que la tensin VG1-3 ser cero todo el tiempo, tal como se
muestra en la figura 122.

PULSOS AISLADOS NEGATIVOS


Para obtener pulsos aislados negativos, el microcontrolador genera la tensin
VG2-4 con las condiciones anteriores, mientras que la tensin en VG1-3 ser siempre de cero.

PULSOS MONOFSICOS MANTENIDOS POSITIVOS O NEGATIVOS


Se disminuye el T OFF desde 5 a 20 ms a valores similares de los T ON 0.1 a 5 ms con las
mismas tensiones de control para las figuras anteriores.

TRENES DE PULSOS
El microcontrolador es programado con los tiempos de encendido y apagado de los impulsos
descritos anteriormente pero adicionalmente se temporiza durante cunto tiempo se aplican T
ON 2 de 1 a 20 s y durante cunto tiempo no se aplica
T OFF 2 1 a 40 s

PULSOS BIFSICOS

El microcontrolador debe generar los pulsos de puerta negados, es decir, cuando estn
presentes VG1-3 las VG2-4 deben estar en cero y viceversa.

DIAGRAMA DE BLOQUES DEL ELECTRO ESTIMULADOR POR MEDIO DEL PUENTE H

DESARROLLO DE LA ACTIVIDAD
La mejor solucin, para el desarrollo del caso que se nos presenta es, es utilizar un puente H, la
aplicacin ms comn es en los motores de corriente continua, el sentido de giro viene dado por
la conexin que se le haga a sus bornes. Entonces para hacer que un robot vaya hacia adelante
o hacia atrs, bastar con invertir la polaridad del motor que mueva sus ruedas, el problema es
como hacer esto, el PIC solo puede suministrar 5v y 20mA por pin totalmente insuficiente para
mover un motor, lo que se intenta lograr es poder controlar una tensin y una corriente superior
que la que el integrado pueda darnos por medio de una seal que ser enviada por el PIC.

El Microcontrolador PIC16F87 lo utilizaremos para la generacin y aplicacin de cinco tipos de


forma de onda a pacientes mdicos, los TENS es un pequeo aparato generador
de pulsos elctricos destinado a conseguir analgesia. El EMS es otro pequeo aparato destinado
al trabajo muscular en conjuntos neuromuscular normal. El TENS est basado en sus
precursores estimuladores chinos y porttiles para aplicar electropuctura, a la vez buscadores de
puntos. Los TENS no poseen la cualidad de busca-puntos y tampoco siguen totalmente las
caractersticas de las corrientes generadas en los estimuladores de electropuntura. Los
electropuntores no solamente sirven para conectar a las agujas, tambin se pueden aplicar a
electrodos estndar. El EMS, de posterior aparicin al TENS, y como se dice ms arriba, se
destina a la electroestimulacin neuromuscular siempre que no estemos ante procesos
patolgicos, o si existen, que sean muy moderados.

EL MICROCONTROLADOR PIC16F87:
Es un microcontrolador de Microchip Technology fabricado en tecnologa CMOS, su consumo de
potencia es muy bajo y adems es completamente esttico, esto quiere decir que el reloj puede
detenerse y los datos de la memoria no se pierden. El encapsulado ms comn para este
microcontrolador es el DIP (Dual In-line Pin) de 40 pines, propio para usarlo en experimentacin.
La referencia completa es PIC16F877-04 para el dispositivo que utiliza cristal oscilador de hasta
4 MHz, PIC16F877-20 para el dispositivo que utiliza cristal oscilador de hasta 20 MHz o
PIC16F877A-I para el dispositivo tipo industrial que puede trabajar hasta a 20 MHz.

El PIC16F87, es un microcontrolador con memoria de programa tipo FLASH, lo que es una gran
facilidad en el desarrollo de prototipos, ya que no se requiere borrarlo con luz ultravioleta como
las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser borrado con
anterioridad.

SOFTWARE MICROCONTROLADOR
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 2C0
0003: NOP
#include "C:\Users\USR\Desktop\ghsgthstrhrthhst\main.h"
#include <16F877A.h>
/ Standard Header file for the PIC16F877A device
#device PIC16F877A
#list
#device ADC=8
#FUSES NOWDT
#FUSES HS
#FUSES PUT
#FUSES PROTECT
#FUSES NODEBUG
#FUSES NOBROWNOUT
#FUSES NOLVP
#FUSES NOCPD
#FUSES NOWRT
#use delay (clock=10000000)
*
000C: MOVLW 2B
000D: MOVWF 04
000E: BCF 03.7
000F: MOVF 00, W
0010: BTFSC 03.2
0011: GOTO 020
0012: MOVLW 03
0013: MOVWF 78
0014: CLRF 77
0015: DECFSZ 77, F
0016: GOTO 015
0017: DECFSZ 78, F
0018: GOTO 014
0019: MOVLW 3C
001A: MOVWF 77
001B: DECFSZ 77, F
001C: GOTO 01B
001D: GOTO 01E
001E: DECFSZ 00, F
001F: GOTO 012
0020: RETLW 00
0056: MOVLW F0
0057: BSF 03.5
0058: MOVWF 08
lcd.rw = 1;
0059: BCF 03.5
005A: BSF 08.1

Delay cycles (1);

005B: NOP
lcd.enable = 1;
005C: BSF 08.2
Delay cycles (1);
005D: NOP
High = lcd.data;
005E: MOVF 08, W
005F: SWAPF 08, W
0060: ANDLW 0F
0061: MOVWF 2F
lcd.enable = 0;
0062: BCF 08.2
Delay cycles (1);
0063: NOP
lcd.enable = 1;
0064: BSF 08.2
Delay us (1);
0065: GOTO 066
....................
Low = lcd.data;
0066: MOVF 08, W
0067: SWAPF 08, W
0068: ANDLW 0F
0069: MOVWF 2E
....................
lcd.enable = 0;
006A: BCF 08.2
....................
set_tris_lcd (LCD_WRITE);
006B: MOVLW 00
006C: BSF 03.5
006D: MOVWF 08
....................
Return ((high<<4) | low);
006E: BCF 03.5
006F: SWAPF 2F, W
0070: MOVWF 77
0071: MOVLW F0
0072: ANDWF 77, F
0073: MOVF 77, W
0074: IORWF 2E, W
0075: MOVWF 78
.................... }
....................
....................
.................... Void lcd_send_nibble (BYTE n) {
....................
lcd.data = n;
*
0021: SWAPF 2F, W
0022: ANDLW F0
0023: MOVWF 77
0024: MOVLW 0F
0025: ANDWF 08, W
0026: IORWF 77, W

0027: MOVWF 08

0076: MOVF 78, W


0077: MOVWF 2E
0078: BTFSC 2E.7
0079: GOTO 056
....................
lcd.rs = address;
007A: BTFSS 2C.0
007B: BCF 08.0
007C: BTFSC 2C.0
007D: BSF 08.0
....................
Delay cycles (1);
007E: NOP
....................
lcd.rw = 0;
007F: BCF 08.1
....................
Delay cycles (1);
0080: NOP
....................
lcd.enable = 0;
0081: BCF 08.2
....................
lcd_send_nibble (n >> 4);
0082: SWAPF 2D, W
0083: MOVWF 2E
0084: MOVLW 0F
0085: ANDWF 2E, F
0086: MOVF 2E, W
0087: MOVWF 2F
0088: CALL 021
....................
lcd_send_nibble (n & 0xf);
0089: MOVF 2D, W
008A: ANDLW 0F
008B: MOVWF 2E
008C: MOVWF 2F
008D: CALL 021
.................... }
....................
....................
.................... Void lcd_init () {
.................... BYTE i;
.................... set_tris_lcd (LCD_WRITE);
*
002F: MOVLW 00
0030: BSF 03.5
0031: MOVWF 08
.................... lcd.rs = 0;
0032: BCF 03.5
0033: BCF 08.0
.................... lcd.rw = 0;
0034: BCF 08.1
.................... lcd.enable = 0;
0035: BCF 08.2
.................... delay_ms (15);

0036: MOVLW 0F

0037: MOVWF 2B
0038: CALL 00C
.................... For (i=1;i<=3;++i) {
0039: MOVLW 01
003A: MOVWF 2A
003B: MOVF 2A, W
003C: SUBLW 03
003D: BTFSS 03.0
003E: GOTO 047
....................
lcd_send_nibble (3);
003F: MOVLW 03
0040: MOVWF 2F
0041: CALL 021
....................
delay_ms (5);
0042: MOVLW 05
0043: MOVWF 2B
0044: CALL 00C
.................... }
0045: INCF 2A, F
0046: GOTO 03B
.................... lcd_send_nibble (2);
0047: MOVLW 02
0048: MOVWF 2F
0049: CALL 021
.................... For (i=0;i<=3;++i)
004A: CLRF 2A
004B: MOVF 2A, W
004C: SUBLW 03
004D: BTFSS 03.0
004E: GOTO 090
....................
lcd_send_byte(0,LCD_INIT_STRING[i]);
004F: MOVF 2A,W
0050: CALL 004
0051: MOVWF 2B
0052: CLRF 2C
0053: MOVF 2B,W
0054: MOVWF 2D
*
008E: INCF 2A,F
008F: GOTO 04B
.................... }
0090: BCF 0A.3
0091: BCF 0A.4
0092: GOTO 2FC (RETURN)
02C0: CLRF 04
02C1: BCF 03.7
02C2: MOVLW 1F
02C3: ANDWF 03,F
02C4: BSF 03.5

02C5: BSF

1F.0

02C6:
02C7:
02C8:
02C9:
02CA:
*
02D4:
02D5:

BSF 1F.1
BSF 1F.2
BCF 1F.3
MOVLW 07
MOVWF 1C
BSF
BCF

03.5
1F.0

02D6: BCF 1F.1


02D7: BSF 1F.2
02D8: BCF 1F.3
.................... setup_psp(PSP_DISABLED);
02D9: BCF 09.4
.................... setup_spi(SPI_SS_DISABLED);
02DA: BCF 03.5
02DB: BCF 14.5
02DC: MOVLW 01
02DD: MOVWF 14
02DE: MOVLW 00
02DF: BSF 03.5
02E0: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
02E1: MOVF 01,W
02E2: ANDLW C7
02E3: IORLW 08
02E4: MOVWF 01
.................... setup_timer_1(T1_DISABLED);
02E5: BCF 03.5
02E6: CLRF 10
.................... setup_timer_2(T2_DISABLED,0,1);
02E7: MOVLW 00
02E8: MOVWF 78
02E9: MOVWF 12
02EA: MOVLW 00
02EB: BSF 03.5
02EC: MOVWF 12
.................... setup_comparator(NC_NC_NC_NC);
02ED: MOVLW 07
02EE: MOVWF 1C
02EF: MOVF 05,W
02F3: DECFSZ 77,F
02F4: GOTO 2F3
02F5: MOVF 1C,W
02F6: BCF 03.5
02F7: BCF 0D.6
.................... setup_vref(FALSE);
02F8: BSF 03.5
02F9: CLRF 1D

....................

lcd_init();

02FA: BCF 03.5


02FB: GOTO 02F
....................
.................... // TODO: USER CODE!!
.................... set_tris_b(0x00);
02FC: MOVLW 00
02FD: BSF 03.5
02FE: MOVWF 06
.................... portb=0x00;
02FF: BCF 03.5
0300: CLRF 06
.................... set_tris_c(0x00);
0301: BSF 03.5
0302: MOVWF 07
.................... portc=0x00;
0303: BCF 03.5
0304: CLRF 07
.................... set_tris_e(0xff);
0305: BSF 03.5
....................
{ portc=0x0c;
0763: MOVLW 0C
0764: MOVWF 07
....................
delay_ms(3);
0765: MOVLW 03
0766: MOVWF 2B
0767: CALL 093
....................
portc=0x00;
0768: CLRF 07
....................
delay_ms(10);
0769: MOVLW 0A
076A: MOVWF 2B
076B: CALL 093
....................
portc=0x0c;
076C: MOVLW 0C
076D: MOVWF 07
....................
delay_ms(3);
076E: MOVLW 03
076F: MOVWF 2B
0770: CALL 093
....................
portc=0x00;
0771: CLRF 07
....................
delay_ms(10);
0772: MOVLW 0A
0773: MOVWF 2B
0774: CALL 093
....................
portc=0x0c;
0775: MOVLW 0C
0776: MOVWF 07

....................

delay_ms(3);

0777: MOVLW 03
0778: MOVWF 2B
0779: CALL 093
....................
portc=0x00;
077A: CLRF 07
....................
delay_ms(10);
077B: MOVLW 0A
077C: MOVWF 2B
077D: CALL 093
....................
portc=0x0c;
077E: MOVLW 0C
077F: MOVWF 07
....................
delay_ms(3);
0780: MOVLW 03
0781: MOVWF 2B
0782: CALL 093
....................
portc=0x00;
0783: CLRF 07
....................
delay_ms(10);
0784: MOVLW 0A
0785: MOVWF 2B
0786: CALL 093
....................
portc=0x0c;
0787: MOVLW 0C
0788: MOVWF 07
....................
delay_ms(3);
0789: MOVLW 03
078A: MOVWF 2B
078B: CALL 093
....................
portc=0x00;
078C: CLRF 07
....................
delay_ms(10);
078D: MOVLW 0A
078E: MOVWF 2B
078F: CALL 093
....................
....................
delay_ms(500);
0790: MOVLW 02
0793: MOVWF 2B
0794: CALL 093
0795: DECFSZ 2A,F
0796: GOTO 792
....................
}
....................
}
....................
}
0797: GOTO 30A
.................... }
0798: SLEEP

EL PROGRAMA EN LENGUAJE C SERIA AS (SE ADJUNTA EL ARCHIVO .C):


#if defined(__PCM__)
#include <16f877.h> //
#device ADC=8 //se ajusta el ADC con 8 bits
#use delay(clock = 4000000) //se ajusta el oscilador
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use standard_io(A)
#use standard_io(B)
int valor=0x00; //se inicializa la memoria valor on
int p; //se declara variable para tiempo on
int on;
int off;
int off2;
void toma_adc(void) //programa de toma de ADC
{
setup_adc(ADC_CLOCK_INTERNAL); //configura el conversor
setup_adc_ports(RA0_analog); //entrada 0 como analgica
set_adc_channel(0);
valor=read_adc(); //se asocia la lectura con la memoria valor
}
void main() //programa principal
{
do
{
p = (5.0*valor/256.0); //se establece formula de valor
on = (p*1.4);
off = (p*4.25);

off2 = (p*0.4);
if ((input(PIN_A2) == 1)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0))
{
output_high(PIN_B0);
delay_ms(on);
output_low(PIN_B0);
delay_ms(off);
}
if ((input(PIN_A3) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0))
{
output_high(PIN_B1);
delay_ms(on);
output_low(PIN_B1);
delay_ms(off);
}
if ((input(PIN_A4) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A5) == 0))
{
output_high(PIN_B0);
delay_ms(on);
output_low(PIN_B0);
delay_ms(off2);
}
if ((input(PIN_A5) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0))
{
output_high(PIN_B0);
delay_ms(on);

output_low(PIN_B0);
output_high(PIN_B1);
delay_ms(on);
output_low(PIN_B1);
delay_ms(off);
}
toma_adc();
}
while(true);
}

CIRCUITO MONTADO EN PROTEUS

PULSOS BIFSICOS

TRENES DE PULSOS

PULSOS MONOFSICOS

PULSOS AISLADOS

Evidenciamos el comportamiento del microcontrolador segn la frecuencia parametrizada en el


PIC y los tipos de onda con los selectores y el puente H.

Vemos la programacin y los ajustes de las frecuencias los tiempos de los trenes de pulsos
parametrizados para la simulacin y los tiempos ajustados al PIC.

Evidenciamos una parametrizacion de 40 segundos para la generacin de los trenes de pulsos


Y tambin podemos ajustar los tiempos de los pulsos aislados.

Ajustamos un tiempo de 35 pulsos por segundo en el TON y el TOFF, evidenciamos el cambio de


las frecuencias en los trenes de pulsos, podemos ajustar segn el uso de la electroterapia.

CONCLUSIONES

Se ha logrado identificar la gran importancia del puente H para la instrumentacin mdica


o quirrgica.

Por medio del programa Proteus para la elaboracin y simulacin del circuito exigido, se
dise el circuito en programa brindando la posibilidad de generar cada tipo de onda que
se mostraba durante la comprobacin de la actividad

tambin podemos ver la gran

importancia del osciloscopio para la generacin y visualizacin de las ondas o pulsos

BIBLIOGRAFIA

Medical Instrumentation. Applications and Desing. Jhon G Webster.

Introduction to Biomedical Engineering. Jhon D Enderle

Handbook Biomedical Engineering. Vol. 1.

Bioingeniera Tomo IV. Mauricio Wilches.

Electroterapia en Fisioterapia.

Manuales de equipos teraputicos

Mdulo instrumentacin medica Jorge Eduardo Quintero Muoz


jorgequintero@bioingenieros.com

Potrebbero piacerti anche