Reporte 1 ultrasonico

37
DISEÑO E IMPLEMENTACIÓN DE UN SENSOR DE NIVEL ULTRASÓNICO (HC-SR04) 65 985 986 987 988 989 990 991 992 993 994 129 130 UATX

description

Reporte del sensor hcsr 04 implementado con un pic 16f84a y monitoreado con Labview. Lo subi porque este sensor ya es común en MÉXICO y pueden ocupar esta información para proyectos escolares...

Transcript of Reporte 1 ultrasonico

Page 1: Reporte 1 ultrasonico

DISEÑO E IMPLEMENTACIÓN DE UNSENSOR DE NIVEL ULTRASÓNICO

(HC-SR04)

65

985

986

987

988

989

990

991

992

993

994

129

130

UA

TX

Page 2: Reporte 1 ultrasonico

OBJETIVOS

1. Diseñar e implementar un sensor de nivel, para medir el nivel de aguade un tanque.

2. Monitorear dicho sensor con el software LABVIEW.

Figura C.: Sensor de nivel monitoreado por LabView.

66

995

996

997

998999

1000

1001

1002

131

132

UA

TX

Page 3: Reporte 1 ultrasonico

MATERIAL

El material que se utilizó se enlista a continuación:

1. Un microcontrolador PIC16F84A.

Figura C.: PIC16F84A

2. Un push-boton.

Figura C.: Push-botton.

3. Una resistencia de 10k ohms y una de 100 ohms, ¼ WATT.

Figura C.: Resistencias.

4. Un cristal de 4Mhz.

Figura C.: Cristal de 4Mhz.

5. 2 capacitores de 33pF.

67

1003

1004

1005

1006

1007

1008

1009

1010

1011

1012

1013

10141015

1016

1017

1018

133

134

UA

TX

Page 4: Reporte 1 ultrasonico

Figura C.: Capacitores de 33pF.

6. Un circuito integrado MAX232.

Figura C.: CI MAX232

7. 5 capacitores de 1uF y uno de 10uF.

Figura C.: Capacitor de 1uF.

8. Un regulador de voltaje L7805CV.

Figura C.: Regulador de voltaje.

9. Tres borneras para PCB dobles.

68

1019

1020

1021

1022

1023

1024

1025

1026

1027

1028

1029

1030

135

136

UA

TX

Page 5: Reporte 1 ultrasonico

Figura C.: Borneras para PCB.

10. Un cable USB-SERIAL.

Figura C.: Cable USB-Serial marca STEREN.

11. Una conexión DB9 hembra.

Figura C.: Conexión DB9 HEMBRA

12. Una placa fenólica de 5cmx5cm.

Figura C.: Placa fenólica de 5cmX5cm.

13. Un módulo ultrasónico HC-SR04.

69

1031

1032

1033

1034

1035

1036

1037

1038

1039

1040

1041

10421043

137

138

UA

TX

Page 6: Reporte 1 ultrasonico

Figura C.: Módulo Ultrasónico HC-SR04.

14. Un cargador para celular de 5V.

Figura C.: Cardador para celular.

15. Una computadora con LABVIEW 2010.

Figura C.: Computadora con LABVIEW 2010.

70

1044

1045

1046

1047

1048

1049

1050

1051

1052

139

140

UA

TX

Page 7: Reporte 1 ultrasonico

DESARROLLO

DISEÑO, SIMULACIÓN E IMPLEMENTACIÓN DE UNA INTERFAZ ELECTRÓNICA: SENSOR-COMPUTADORA.

Figura 0.: Bloques del diseño electrónico.

En la figura 17 se muestran los bloques que componen la interfazelectrónica de los cuales la computadora y el cable USB-serial solo setienen que conectar, el diseño de demás bloques se describen acontinuación:

SENSOR ULTRASÓNICO

71

1053

1054

1055

1056

1057

1058

1059

1060

1061

1062

1063

141

142

UA

TX

Page 8: Reporte 1 ultrasonico

Figura 0.: Sensor ultrasónico HC-SR04

Como sensor ultrasónico se utilizó un Módulo Ultrasónico modeloHC-SR04 el cual permite medir distancias de 2cm a 450cm sin hacercontacto con ellos. Su funcionamiento consiste disparar una ráfaga deultrasonidos de 40 khz y capturando el eco que estas producen dicho móduloproduce una señal proporcional a la distancia.

Las características del Módulo Ultrasónico son:

1. Voltaje de trabajo (VCC): 5V.2. Consumo de corriente: menor a 2mA.3. Señal de salida TTL.4. Angulo de medición: menor a 15°.5. Resolución: 0.3 cm.6. Señal de entrada para activación (TRIG): un pulso de por lo menos

10us.7. Señal de salida (ECHO): TTL.

Pines de conexión:

1. VCC2. TRIGGER3. ECHO4. GND

72

1064

1065

1066

1067

1068

1069

1070

1071

107210731074107510761077

10781079

1080

1081108210831084

143

144

UA

TX

Page 9: Reporte 1 ultrasonico

Figura 0.: Pines de conexión

Figura 0.: Diagrama de tiempo

Para hacer funcionar este sensor primero se debe alimentar a 5V,después se ingresa a través del pin TRIG un pulso no menor de 10us, elmódulo enviará 8 pulsos TTL a una frecuencia de 40 khz, si encuentra unobstáculo el pin de salida ECHO mostrará un pulso en alto proporcional a ladistancia. La fórmula para calcular la distancia es:

73

1085

1086

1087

1088

1089

1090

1091

1092

1093

1094

1095

1096

1097

145

146

UA

TX

Page 10: Reporte 1 ultrasonico

Ecuación : Calcular la distancia en centímetros.

distancia (cm )=tiempoenalto enus ( pin ECHO)

58.82us

Para evitar medidas erróneas el objeto debe tener una superficie lisay no debe ser menor a 0.5 m2, pero en este caso el agua prácticamenterebota las ondas ultrasónicas.

MICROCONTROLADOR PIC16F84A

El microcontrolador PIC16f84A de la marca Microchip tiene las siguientescaracterísticas:

• Frecuencia de oscilación de 4Mhz.• Alimentación de 5V DC.• Tiene 18 pines.• Un puerto A con 5 lineas de entrada/saida.• Un puerto B con 8 lineas de entrada/saida.• Cada pin puede proporcionar hasta 20mA.• Las instrucciones se ejecutan en 1 ciclo.• Conjunto de instrucciones reducido, RISC (35 instrucciones).• Incluye también un módulo de memoria para programa y una

memoria auxiliar para datos del tipo EEPROM, por si falla laalimentación.

• Entradas multiplexadas para interrupciones y elcontador/temporizador.

Figura 0.: PIC16F84A.

74

1098

1099

1100

1101

1102

1103

1104

1105

1106

1107

110811091110111111121113111411151116

1117

11181119

11201121

1122

1123

1124

147

148

UA

TX

Page 11: Reporte 1 ultrasonico

PROGRAMACIÓN DEL MICROCONTROLADOR

Para detectar el ancho de pulso proveniente del módulo ultrasónico,se utilizó la interrupción por cambio de flanco del PIN B0. Esto quiere decirque cuando ocurra un cambio de flanco ya sea de cero volts a cinco volts ode cinco volts a cero volts por el PIN B0, el microcontrolador suspenderácualquier operación que esté realizando para ejecutar la rutina previamenteprogramada cada vez que ocurra una interrupción.

Para medir el tiempo en alto del PIN B0 se utilizó el único TIMER delmicrocontrolador. El TIMER de este microcontrolador es de 8 bits (00h a FFh)y puede contar hasta 255 (28=256); si se configura el TIMER con oscilacióninterna, el TIMER incrementará cada 1us esto da como resultado un contadorde 255us.

Pero 255us no es suficiente ya que el ancho de pulso a medir llegahasta 26,469 us aproximadamente (Ecuación 2 y 3), por lo que se configuróel TIMER_0 con una escala de 1:256, entonces el TIMER_0 se incrementarácada 255 us dando un valor máximo de 65,535 us que es un valor aceptablepara este proyecto.

Ecuación : Calcular el tiempo en alto proporcional a la distancia.

distancia (cm )∗58.82us=tiempo enalto enus ( pin ECHO )

Ecuación : Cálculo del tiempo en alto proporcional a 4.5m

450cm∗58.82us=26,469us

Según el párrafo anterior si se tuviera un TIMER de 16 bits (65,536 us)configurado con una escala de 1:1 sería suficiente para medir una distancia4.5m (26,469 us). Pero como el PIC16F84A solo tiene un TIMER de 8bits seconfiguró con una escala de 1:256, esto permitió medir unidades de 4.33cm(Ecuación 4) pero no se puede medir distancias menores a 4.33cm por esose volvió a configurar el TIMER_0 con una escala de 1:1 para medir unidadesmilimétricas (1us); por último se sumaron las mediciones obtenidas con lasescalas de 1:256 y 1:1 para así obtener una medición exacta.

75

1125

1126

1127

1128

1129

1130

1131

1132

1133

1134

1135

1136

1137

1138

1139

1140

1141

1142

1143

1144

1145

1146

1147

1148

1149

1150

1151

1152

1153

1154

1155

149

150

UA

TX

Page 12: Reporte 1 ultrasonico

Ecuación : Cálculo de unidades en distancia con escala de TIMER_0 a 1:256.

distancia (cm )=tiempoenalto enus ( pin ECHO)

58.82us=

255us58.82us

=4.33 cm

Por ejemplo una distancia de 10cm equivale a 588.2us (Ecuación 2),el TIMER_0 a una escala de 1:256 devolverá un 2; el TIMER_0 a una escala de1:1 devolverá un valor de 78; ahora si sumamos los valores del TIMER_0 aescalas de 1:255 y 1:1 nos devolverá el microcontrolador un valor de 588us(Ecuación 5) que es una medición correcta.

Ecuación : Calculo de microsegundos a 10cm.

78us+(2∗255us )=78us+510us=588us

Cuando el PIC16F84A envía un pulso de aproximadamente 10us alMÓDULO ULTRASÓNICO, este módulo produce 8 pulsos a una velocidad de40 kHz, si encuentra un obstáculo produce una salida en alto proporcional ala distancia (PIN ECHO), esta señal es capturada y procesada por elPIC16F84A

El diagrama de flujo de la figura 22 contiene la secuencia que sesiguió para programar el PIC16F84A. El Anexo 1 contiene el programa en C,el cual se compiló con el software PIC C Compiler versión 4.068.

76

1156

1157

1158

1159

1160

1161

1162

1163

1164

1165

1166

1167

1168

1169

1170

1171

1172

1173

1174

1175

151

152

UA

TX

Page 13: Reporte 1 ultrasonico

Figura 0.: Diagrama de flujo correspondiente a la programación del PIC16F84A.

77

1176

1177

153

154

UATX

Page 14: Reporte 1 ultrasonico

INTERFÁZ TTL-RS232

El circuito integrado MAX232 convierte los niveles de las líneas de unpuerto serie RS232 a niveles TTL y viceversa. Lo interesante es que sólonecesita una alimentación de 5V, ya que genera internamente algunastensiones que son necesarias para el estándar RS232. Otros integrados quemanejan las líneas RS232 requieren dos voltajes, +12V y -12V.

Figura 0.: Configuración del CI MAX232.

En la figura anterior se puede observar la forma más usual paraconectar el circuito MAX232, en donde a todos los capacitores se les asignóun valor de 1uF. Se conectaron los pines 17 y 18 del PIC con los pines 11 y 12del MAX232, y los pines 14 y 13 del MAX232 con los pines 2 y 3 del conectorDB9 como se observa en la figura 24.

78

1178

1179

1180

1181

1182

1183

1184

1185

1186

1187

1188

1189

1190

1191

155

156

UA

TX

Page 15: Reporte 1 ultrasonico

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT 14

R1IN 13

T2OUT 7

R2IN8

C2+

4

C2-

5

C1+

1

C1-

3

VS+ 2

VS- 6

MAX232

MAX232

C1

1uF

C2

1uF

C3

1uF

C41uF

OSC1/CLKIN16

RB0/INT 6

RB1 7

RB28

RB3 9

RB4 10

RB5 11

RB6 12

RB7 13

RA0 17

RA118

RA2 1

RA3 2

RA4/T0CKI 3

OSC2/CLKOUT15

MCLR4

16F84A

PIC16F84A ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

COM_HEMBRA

COMPIM

OSC1OSC2

RST

CONECTOR DB9 HEMBRA

OUT_PICIN_PIC

OUT_PICIN_PIC

ECHOTRIG

OUT_MAXOUT_MAX

IN_MAX

IN_MAX

LED

Figura 0.: Conexiones del PIC, MAX232 Y DB9

R_BUTOON10K

XTAL_4M

CRYSTAL

33PF_233pF

33PF_1

33pF

OS

C1

OS

C2

OSCILADOR

RST

RESET

1234

ULTRASONICO

TBLOCK-I4

TRIGECHO

LED

R_LED100

LEDLED-BLUE

Figura 0.: Conexiones del MÓDULO ULTRASÓNICO, LED, RESET Y EL OSCILADOR.

CABLE USB-SERIAL

El modelo del cable que se utilizó es el HL-2303 de la marca STEREN, que tiene en un extremoun conector DB9 macho que se conectó al conector DB9 hembra. (Figura 26)

Para que la computadora lo reconozca como un PUERTO COM, se tiene que instalarpreviamente un driver que se puede descargar del sitio STEREN.

79

1192

1193

1194

1195

1196

1197

11981199

12001201

157

158

UA

TX

Page 16: Reporte 1 ultrasonico

Figura 0.: Cable USB-SERIAL

SIMULACIÓN DEL CIRCUITO

La simulación de la circuitería se realizó con el software Proteus 7.7.En dicha simulación no se incluyó el módulo ultrasónico ya que no estáincluido en las librerías de Proteus, pero en su lugar se utilizó un generadorde funciones para simular la salida ECHO del módulo ultrasónico.

En la figura 27 se representa la simulación de la circuitería, la cual sedescribe a continuación:

1. Para el oscilador se utilizó un cristal de 4Mhz y 2 capacitoresde 33pF. Para evitar confusión con el cableado en la simulación,se utilizaron 2 nodos (OSC1 Y OSC2) conectados a los pines 15 y16 del microcontrolador.

2. Para el reset, se utilizó una resistencia de 10k ohms y unpush-boton. Mientras el push-boton esté abierto elmicrocontrolador trabajará normalmente. El nodo que se utlilizóes el RST conectado al pin 4 del microcontrolador.

3. Se utilizaron 2 instrumentos virtuales, un generador de onday un osciloscopio. Con el generador de onda se genera unpulso en similar al que genera el módulo ultrasónico y con elosciloscopio se visualizan 2 señales, una correspondiente algenerador de onda y la otra corresponde a los pulsos de 10usque genera el microcontrolador por el pin B1.

4. También se simuló el circuito MAX232 con sus capacitores de1uF, el cual está conectado al PIC16F84 y a un conector DB9hembra. Por el pin 11 recibe una señal TTL la convierte a RS232por el pin 14, igualmente por el pin 13 recibe una señal RS232 yla convierta a TTL por el pin 12.

5. Para conector DB9 hembra, el pin 5 está conectado a tierra, elpin 2 es para recepción de datos y el pin 3 es para transmisión

80

1202

1203

1204

1205

1206

1207

1208

1209

1210

1211

1212

1213

12141215

1216

1217

12181219

1220

1221

1222

1223

12241225

1226

1227

1228

12291230

1231

159

160

UA

TX

Page 17: Reporte 1 ultrasonico

de datos. Los puentes son opcionales, mientras que los demáspines no se utilizan.

6. En la parte inferior aparecen 2 terminales virtuales, unaterminal es para enviar datos al PIC (simulando a lacomputadora) y la otra terminal es para visualizar los datosprovenientes del PIC.

A

B

C

D

R_BUTOON100

OSC1/CLKIN16

RB0/INT 6

RB1 7

RB2 8

RB3 9

RB4 10

RB511

RB6 12

RB713

RA017

RA1 18

RA21

RA3 2

RA4/T0CKI3

OSC2/CLKOUT15

MCLR4

16F84A

PIC16F84A

XTAL_4M

CRYSTAL

33PF_233pF

33PF_1

33pF

OS

C1

OS

C2

OSC1OSC2

OSCILADOR

RST

RST

RESET

B6

MAX232

RXD

RTS

TXD

CTS

RXD

RTS

TXD

CTS

OSCILOSCOPIO

SIMULA LA TRANSMISIÓN DE DATOS DE LA COMPUTADORA

SIMULA LA RECEPCIÓN DE DATOS DE LA COMPUTADORA

OUT_PIC

OUT_PIC

IN_PIC

IN_PIC

ECHO

ECHO

TRIG

TRIG

LED

LED

R_LED100

LEDLED-BLUE

AM FM

+

-

GENERADOR DE ONDA

ECHO

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT14

R1IN 13

T2OUT 7

R2IN 8

C2+

4

C2-

5

C1+

1

C1-

3

VS+ 2

VS- 6

MAX232

MAX232

C1

1uF

C2

1uF

C3

1uF

C41uF

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

COM_HEMBRA

COMPIM

CONECTOR DB9 HEMBRA

OUT_PICIN_PIC

OUT_MAXOUT_MAX

IN_MAX

IN_MAX

Figura 0.: Diagrama de simulación.

Al simular el circuito anterior aparecen 4 ventanas (figura 28):

81

1232

12331234

1235

1236

1237

1238

1239

1240

1241

1242

161

162

UA

TX

Page 18: Reporte 1 ultrasonico

Figura 0.: Simulación en Proteus 7.7.

Los puntos que se comprobaron con esta simulación fueron los siguientes:

1. El microcontrolador produce los pulsos de 10us sin ningún problemacuando se ingresa un dato en modo USART por el pin A1 delmicrocontrolador.

2. Al procesar el ancho de pulso entrante en el pin B0 del PIC, dichomicrocontrolador envía el valor de la variable DISTANCIA por el pin A0en modo USART. En pocas palabras la comunicación USART delmicrocontrolador funciona correctamente.

3. El generador de onda no fue de mucha ayuda ya que no se puedeemular el tiempo de respuesta como el Módulo Ultrasónico, pero enconfiando en las especificaciones del Módulo Ultrasónico se hicieronpruebas en un protoboard y el resultado fue satisfactorio.

PRUEBAS

82

Hiperterminal Virtual.- Aquí seescribe un carácter, emulandola información que entra al PIC.

Hiperterminal Virtual.-Aquí aparece la

información que sale delPIC.

Pulso del generador de onda,emulando la respuesta del

Módulo Ultrasónico

Pulso TRIGGER proveniente del PIC.

1243

1244

1245

1246

1247

1248

1249

1250

1251

1252

1253

12541255

1256

1257

12581259

1260

1261

1262

1263

163

164

UA

TX

Page 19: Reporte 1 ultrasonico

El circuito se armó de acuerdo a la simulación en Proteus (Fig. 27) en un protoboard. (Figura 29)

Figura 0.: Circuito armado en un protoboard.

La primera prueba que se realizó fue medir la distancia que hay entreel sensor ultrasónico y la pared (Figura 30). En esta prueba hubo un error deaproximadamente 0.4cm.

Al realizar mediadas de hasta 4.5m, se comprobó que hay un error de0.4cm a 2cm. Esto se debe a que la superficie donde rebotan las ondasultrasónicas no es la adecuada, según las especificaciones del móduloultrasónico la superficie debe ser lisa y de un mínimo de 0.5m2. Los mismoserrores se obtuvieron al colocar diferentes objetos pequeños.

83

MICFROCONTROLADORPIC16F84A

FUENTE DE5VDC

CIRCUITOINTEGRADO

MAX232

CONEXIÓNRS-232

MóduloUltrasónico

1264

1265

1266

1267

1268

1269

1270

1271

1272

1273

1274

1275

1276

1277

1278

1279

1280

1281

165

166

UA

TX

Page 20: Reporte 1 ultrasonico

Figura 0.: Medición entre el Sensor Ultrasónico una pared.

También se realizaron pruebas en un bote con agua. (Figuras 31 y32)

Figura 0.: Pruebas con en un bote con agua.

84

1282

1283

1284

1285

1286

1287

1288

1289

167

168

UA

TX

Page 21: Reporte 1 ultrasonico

Los resultados de las mediciones y comparaciones se presentan en lasiguiente tabla:

Tabla : Resultados con agua.

TABLA DE RESULTADOS CON AGUA

Medida real (cm) Medida en labview (cm) Diferencia (cm)

2.7 2.8 0.1

7.9 8 0.1

15.8 15.7 0.1

24.2 24.3 0.1

33 33 0

De acuerdo a la tabla anterior se comprobó que el funcionamiento delmódulo ultrasónico es correcto, también se concluye que el margen de errores aceptable siendo de aproximadamente de 1 milímetro.

Figura 0.: Marcas en el bote.

DISEÑO DE PCB

85

Marcas conplumón negro.

1290

1291

1292

1293

1294

1295

1296

1297

1298

1299

1300

1301

169

170

UA

TX

Page 22: Reporte 1 ultrasonico

Primero utilizó el software ISIS de Proteus 7.7 para agregar loscomponentes necesarios (Fig. 33), después se utilizó el software ARES deProteus 7.7 para diseñar la PCB (Figuras 34, 35 y 36).

En la figura 33 aparecen los componentes necesarios para elaborar laPCB destacando que no se utilizaron las conexiones para simulación ya quegeneraría un error, simplemente se utilizó ISIS como una herramienta dedibujo. Para la fuente de poder se agregó una bornera doble donde seconectará una fuente igual o mayor a 5VDC y se agregó una borneracuádruple para conectar el Módulo Ultrasónico.

D

R_BUTOON10K

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT14

R1IN13

T2OUT7

R2IN8

C2+

4

C2-

5

C1+

1

C1-

3

VS+2

VS-6

MAX232

MAX232

C1

1uF

C2

1uF

C3

1uF

C41uF

OSC1/CLKIN16

RB0/INT6

RB17

RB28

RB39

RB410

RB511

RB612

RB713

RA017

RA118

RA21

RA32

RA4/T0CKI3

OSC2/CLKOUT15

MCLR4

16F84A

PIC16F84A

XTAL_4M

CRYSTAL

33PF_233pF

33PF_1

33pF

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

COM_HEMBRA

COMPIM

OS

C1

OS

C2

OSC1OSC2

OSCILADOR

RST

RST

RESET

CONECTOR DB9 HEMBRA

VI1

VO3

GN

D2

REGULADOR78051 2

POWER 5VDC-12VDC

1234

ULTRASONICO

TBLOCK-I4

C_10U10uF

C_1U1uF

OUT_PICIN_PIC

OUT_PICIN_PIC

ECHOTRIG

TRIGECHO

OUT_MAX OUT_MAX

IN_MAXIN_MAX

LED

LE

D

R_LED100

LEDLED-BLUE

Figura 0.: Componentes para la PCB.

86

1302

1303

1304

1305

1306

1307

1308

1309

1310

1311

1312

1313

1314

171

172

UA

TX

Page 23: Reporte 1 ultrasonico

Figura 0.: Vista superior de la PCB.

Figura 0.: Vista inferior de la PCB.

Figura 0.: Vista 3D de la PCB.

87

1315

1316

1317

1318

1319

1320

1321

173

174

UA

TX

Page 24: Reporte 1 ultrasonico

Después de tener el diseño en ARES se procedió a construir el circuitoimpreso en ARES (Fig. 37), acoplarlo a una estructura de acrílico (Fig. 38) y colocar el prototipo en un tanque de agua (Fig. 39).

Figura 0.: Vista superior real de la PCB.

Figura 0.: Vista inferior real de la PCB acoplada a una estructura de acrílico.

88

5VDC-12VDC

Terminal positiva.

Trigger

GND

5VDC

1322

1323

1324

1325

1326

1327

1328

1329

1330

175

176

UA

TX

Page 25: Reporte 1 ultrasonico

Figura 0.: PCB acoplada a un tanque de agua.

INTERFAZ DE LABVIEW

Labview es un entorno de programación gráfica usado por miles deingenieros e investigadores para desarrollar sistemas sofisticados de medida,pruebas y control usando íconos gráficos e intuitivos y cables que parecen undiagrama de flujo.

Para este trabajo se utilizó la versión Labview 2010, el cual traealgunos ejemplos para la comunicación RS-232. El ejemplo que se utilizó fueel de comunicación serial básico, dicho ejemplo modificó suprimiendo lamayoría de las instrucciones para hacerlo más simple.

El diagrama de flujo de la figura 40 representa la programación enLabView 2010.

89

Prototipo acoplado aun tanque 1331

1332

1333

1334

1335

1336

1337

1338

1339

1340

1341

1342

1343

177

178

UA

TX

Page 26: Reporte 1 ultrasonico

Figura 0.: Diagrama de flujo del VI.

90

1344

1345

179

180

UA

TX

Page 27: Reporte 1 ultrasonico

Las siguientes figuras contienen la programación (Diagrama aBloques) en LabView según el Diagrama de Flujo (Fig 40), en las cuales seindica con comentarios amarillos para que sirve cada instrucción.

Figura 0.: Frame 0 y Case False.

Figura 0.: Frame 0 y Case True.

91

1346

1347

1348

1349

1350

1351

1352

1353

1354

1355

181

182

UA

TX

Page 28: Reporte 1 ultrasonico

Figura 0.: Frame 1.

Figura 0.: Frame 2.

92

1356

1357

1358

1359

1360

1361

1362

1363

1364

183

184

UA

TX

Page 29: Reporte 1 ultrasonico

Figura 0.: Frame 3.

Por último la figura 46 contiene el Panel Frontal del programa en LabView.

Figura 0.: Panel Frontal.

PUESTA EN MARCHA

93

1365

1366

1367

1368

1369

1370

1371

1372

1373

185

186

UA

TX

Page 30: Reporte 1 ultrasonico

Para poner en marcha este prototipo se necesitan seguir los siguientes pasos:

1. Conectar el cable USB-SERIAL a la computadora e instalar el driver su driver.2. Una vez instalado el driver de cable USB-SERIAL se tiene que habilitar el puerto serial

en Measurement & Automation Explorer de NI. Esto es para LabView 2010, si seomite este paso al correr cualquier VI para RS232 generará un error.

Figura 0.: Icono de Measurement & Automation.

Figura 0.: Interfaz de Measurement % Automation.

3. Conectar una fuente entre 6VCD y 12VCD al prototipo; puede ser una pila de 9VCD o en este caso un cargador para celular.

94

1374

1375137613771378

1379

1380

1381

1382

1383

138413851386

187

188

UA

TX

Page 31: Reporte 1 ultrasonico

4. Conectar la punta DB9 macho del cable USB-SERIAL a la conexión DB9 hembra del prototipo.

Figura 0.: Conexión del cable USB-SERIAL a el prototipo.

5. Abrir y correr el VI que se describió en el bloque anterior, en este ejemplo se llama sensor ultrasónico.vi.

95

6VCD a12VCD

Terminal positiva.

1387

1388

13891390

1391

1392

13931394

189

190

UA

TX

Page 32: Reporte 1 ultrasonico

Figura 0.: Programa “sensor ultrasónico.vi”.

Figura 0.: Monitoreo del módulo ultrasónico con LabView.

96

1395

1396

1397

1398

1399

14001401

191

192

UA

TX

Page 33: Reporte 1 ultrasonico

ANEXO 1

El programa de este anexo se programó en el software PIC CCOMPILER, dicho software genera 10 archivos diferentes, entre los cualesestá uno con extensión “.HEX”, este archivo sirve para simular elmicrocontrolador en Proteus de acuerdo a las instrucciones programadas enlenguaje C y también sirve para programar físicamente el microcontroladorcon cualquier grabador de PICs.

El siguiente programa contiene comentarios después de doblediagonal “//” donde se trata de indicar para que sirven la mayoría deinstrucciones:

#include <16f84A.h> //modelo del pic

#use delay (clock = 4000000) //se utilizará un oscilador de 4Mhz

#fuses XT,NOWDT,PUT,NOPROTECT //configuración para programar el pic

#use RS232 (BAUD = 9600, BITS = 8, PARITY=N,XMIT=PIN_A0,RCV=PIN_A1)

//configuración de la comunicación RS232

//velocidad de 9600 bd

//8 bits por palabra

//paridad: ninguna

//pin de transmición: A0

//pin de recepción: A1

#use fast_io(B) //función predefinida para trabajar

//fácilmente con el puerto B

//------------------------------VARIABLES A USAR---------------------

int16 U_SEG=0; //GUARDA LOS MICROSEGUNDOS EN ALTO DEL PIN B0

INT16 L_TMR0=0; //GUARDA EL VALOR DEL REGISTRO TIMER_0

INT16 LOAD_256=0; //valor de TMR0 con preesaler de 256

INT16 LOAD_1=0; //valor de TMR0 con preesdaler de 1

int32 DISTANCIA=0; //DISTANCIA EN CENTIMETROS * 10

int1 nuevopulso=0; //control de lectura de pulso

//cuando es uno, la lectura terminó

int1 cambio=0; //control de cambio de flanco

//si es cero se espera un flanco de subida

//si es uno se espera un flanco de bajada

97

1402

1403

1404

1405

1406

1407

1408

1409

1410

1411

1412

1413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446

193

194

UA

TX

Page 34: Reporte 1 ultrasonico

int1 valor=0; //DETECTA SI LA COMPUTADORA A ENVIADO ALGO

//--------------------------INTERRUPCION POR EL PIN B0----------------

#int_ext //aquí inicia la interrupción por B0

void funcion_ext_int(){ //función de interrupción

if (cambio == 0){

set_TIMER0(0); //iniclaliza el timer0 a 0

ext_int_edge(H_TO_L); //CAMBIA A DETECCIÓN POR FLANCO DE BAJADA

cambio=1;

}

else{

L_TMR0 = get_timer0(); //CARGA EL VALOR DE TMR0 EN EL REGISTRO L_TMR0

ext_int_edge(L_TO_H); //CAMBIA A DETECCIÓN POR FLANCO DE SUBIDA

cambio=0;

nuevopulso=1;

}

}

//------------------------FUNCIÓN PRINCIPAL-----------------------------

void main(){

setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256); //configuración del timer0

//OSCILACIÓN INTERNA

//PREESCALER DE 1

ext_int_edge(L_TO_H); //configurar INTERRUPCIÓN POR PIN B0

//para flanco de suida

set_tris_B(0x81); //CONFIGURA LOS PINES B0 y B7 COMO ENTRADA

//LOS DEMÁS PINES COMO SALIDA

output_low(PIN_B1); //PIN B1 A CERO

enable_interrupts (int_ext); //habilitación de interrupción por el pin B0

enable_interrupts (global); //habilitación de interrupciones globales

//buble while infinito

while(true){

//se inicializan todas las variables a cero

U_SEG=0;

L_TMR0=0;

LOAD_256=0;

LOAD_1=0;

DISTANCIA=0;

nuevopulso=0;

cambio=0;

valor=0;

98

14471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499

195

196

UA

TX

Page 35: Reporte 1 ultrasonico

//Como la comunicación está gestionada por software,

//la función kbhit() devuelve TRUE si se ha detectado un bit

//de START en el pin de recepción.

valor = kbhit();

while(valor==0){

valor = kbhit();}

//en la siguiente instrucción se complementa el valor del pin b3

//con esto el pin b3 cambia de estado cada procesa la

//recepción y transmición serial

output_toggle(PIN_B3);

RUTINA_1:

setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256); //configuración del timer0

//con preescaler de 256

output_high(PIN_B1); //pone el pin B1 en alto

delay_us(9); //espera 15 microsegundos

output_low(PIN_B1); //pone el pin B1 en bajo

while(nuevopulso == 0){ //espera hasta que nuveopulso sea 1

}

LOAD_256=L_TMR0; //se guarda el valor de TMR0 con preescaler

//de 256

setup_timer_0(RTCC_INTERNAL | RTCC_DIV_1); //configuración del timer0

//con preescaler de 1

delay_ms(30);

RUTINA_2:

nuevopulso=0; //control de lectura de pulso

output_high(PIN_B1); //pone el pin B1 en alto

delay_us(9); //espera 15 microsegundos

output_low(PIN_B1); //pone el pin B1 en bajo

while(nuevopulso == 0){ //espera hasta que nuveopulso sea 1

}

LOAD_1=L_TMR0; //se guarda el valor de TMR0 con preescaler

//de 1

U_SEG=(LOAD_256*255)+(LOAD_1); //U_SEG almacena el total del

//tiempo en alto en microsegundos

99

15001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552

197

198

UA

TX

Page 36: Reporte 1 ultrasonico

//del pin B0

DISTANCIA = (U_SEG*10)/58; //DISTANCIA almacena

//la distancia en centimetros

//multiplicada por 10

printf("%Lu\n",DISTANCIA); //envía el valor de DISTANCIA

//en formato RS-232

}

}

100

15531554155515561557155815591560156115621563

199

200

UA

TX

Page 37: Reporte 1 ultrasonico

1564

UA

TX