0% encontró este documento útil (0 votos)
38 vistas17 páginas

Robot Micromouse: Navegación Autónoma en Laberintos

Este documento presenta los componentes clave para el diseño e implementación de un robot micromouse capaz de explorar laberintos de manera autónoma. El Arduino Uno actúa como el núcleo de control orquestando los motores a través del módulo L293N. Los sensores HC-SR04 y un giroscopio MPU6050 proveen datos sobre el entorno para la navegación. Una batería de litio polimero provee energía de forma liviana y duradera. Juntos, estos componentes proveen una plataforma vers

Cargado por

Juan Vasquez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
38 vistas17 páginas

Robot Micromouse: Navegación Autónoma en Laberintos

Este documento presenta los componentes clave para el diseño e implementación de un robot micromouse capaz de explorar laberintos de manera autónoma. El Arduino Uno actúa como el núcleo de control orquestando los motores a través del módulo L293N. Los sensores HC-SR04 y un giroscopio MPU6050 proveen datos sobre el entorno para la navegación. Una batería de litio polimero provee energía de forma liviana y duradera. Juntos, estos componentes proveen una plataforma vers

Cargado por

Juan Vasquez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1

Practica 2: Monitor de Señales Analógicas.


Juan Sebastián Vasquez Ávila, Estudiante, UPS.
,Juan David Guncay Orellana, Estudiante, UPS.

Resumen—Este trabajo presenta el diseño y la im- II. M ARCO T E ÓRICO


plementación de un robot micromouse concebido para
la resolución autónoma de laberintos. La combinación
Para nuestra practica es importante conocer los
de componentes clave, como motores, llantas de goma, métodos que vamos a implementar.
Arduino Uno, módulo de control de motores L293N,
baterı́a de polı́mero de litio, sensores HC-SR04 y
un giroscopio, proporciona una plataforma versátil II-A. Arduino Uno
para la navegación eficiente en entornos complejos. El El Arduino Uno es una placa de desarrollo de
propósito fundamental de este proyecto es desarrollar hardware de código abierto que se destaca por
un robot capaz de explorar y mapear laberintos de
su versatilidad y accesibilidad en el ámbito de la
manera autónoma, aprovechando la interacción coor-
dinada de sus componentes. El Arduino Uno actúa electrónica y la programación. Equipado con un mi-
como el núcleo de control, orquestando la operación crocontrolador ATmega328P, el Arduino Uno ofre-
de los motores para garantizar un movimiento preciso ce una amplia gama de puertos de entrada/salida,
y ajustado. La sección siguiente detallará la arquitec- facilitando la conexión con diversos componentes
tura general del robot, destacando cómo cada compo-
electrónicos. Su diseño compacto y su interfaz fácil
nente desempeña un papel crucial en la consecución de
la tarea. Se abordarán también los desafı́os inherentes de usar hacen que sea ideal para principiantes y
a la resolución de laberintos y se propondrán posibles expertos por igual. Además, el Arduino Uno es
mejoras para futuras investigaciones y desarrollos programable a través de un entorno de desarrollo in-
en el campo de la robótica autónoma aplicada a la tegrado (IDE) basado en la simplicidad del lenguaje
solución eficiente de laberintos.
de programación C/C++, permitiendo la creación de
proyectos interactivos de manera eficiente. Con su
I. O BJETIVOS capacidad para interactuar con motores, sensores y
otros dispositivos, el Arduino Uno se ha convertido
Implementar algoritmos eficientes que permi-
en una herramienta fundamental en el mundo de la
tan al robot micromouse moverse de manera
electrónica y la robótica, impulsando la innovación
rápida y precisa a través del laberinto, mini-
y la creatividad en numerosos proyectos DIY.
mizando el tiempo total de exploración.
Desarrollar un sistema de fusión sensorial que
utilice los datos de los sensores HC-SR04 y
el giroscopio para obtener una comprensión
completa y precisa del entorno del robot,
facilitando la detección de obstáculos y la
orientación adecuada.
Diseñar e implementar estrategias algorı́tmicas
para la toma de decisiones del robot en función
de la información recopilada por los sensores.
Esto incluye la planificación de rutas óptimas
y la capacidad de realizar ajustes en tiempo
real según las condiciones del laberinto. Figura 1. Potenciometro
2

II-B. MotoShied L293N de almacenamiento en comparación con otras tec-


nologı́as de baterı́as. Su baja tasa de autodescarga
El módulo de control de motores L293N es una
y su capacidad para mantener un voltaje constante
pieza clave en el diseño de sistemas robóticos y
durante la mayor parte de su ciclo de descar-
proyectos de mecatrónica que requieren el control
ga son caracterı́sticas que las hacen ideales para
preciso de motores. Este componente actúa como
aplicaciones de robótica y dispositivos electrónicos
un puente H, permitiendo el control bidireccio-
portátiles. Además, estas baterı́as son conocidas por
nal de hasta dos motores de corriente continua.
su peso ligero, lo que las convierte en una elección
Su diseño versátil facilita la conexión con micro-
eficiente para proyectos donde la movilidad y la
controladores como Arduino, ya que dispone de
eficiencia energética son cruciales.
entradas lógicas para dirigir el sentido de giro y
La baterı́a que usaremos para nuestro proyecto
la velocidad de los motores. El L293N también
es una baterı́a de 2 celdas de 3.7 voltios por lo
proporciona protección contra retroceso de voltaje,
que nuestra baterı́a entrega 7.4V y 1.8A
lo que contribuye a la durabilidad del sistema. Su
capacidad para manejar corrientes de hasta 600 mA
lo hace adecuado para una variedad de aplicaciones,
desde pequeños robots hasta dispositivos de control
de movimiento. En resumen, el módulo L293N se
destaca por su simplicidad de uso, su capacidad de
control bidireccional y su robustez, convirtiéndolo
en una elección popular para proyectos de robótica
y automatización.

Figura 3. LDR (resistor dependiente de la luz

II-D. Sensor ultrasónico HC-SR04


El sensor ultrasónico HC-SR04 es un dispositi-
vo ampliamente utilizado para medir distancias de
manera precisa y no invasiva. Este pequeño pero
poderoso sensor consta de un emisor ultrasónico y
un receptor, que trabajan en conjunto para calcular
Figura 2. LDR (resistor dependiente de la luz la distancia basándose en el tiempo que tarda una
onda ultrasónica en viajar y regresar. Entre las ca-
racterı́sticas principales: cuenta con un rango tı́pico
II-C. La baterı́a de polı́mero de litio
de medición de 2 a 400 centı́metros,opera a una
La baterı́a de polı́mero de litio es una fuente frecuencia ultrasónica de alrededor de 40 kHz,tiene
de energı́a recargable que ha ganado prominencia un ángulo de haz de aproximadamente 15 grados,
gracias a sus caracterı́sticas distintivas. Este tipo de lo que significa que la onda ultrasónica se emite
baterı́a se destaca por su diseño delgado y flexible, en un patrón relativamente estrecho lo que permite
lo que facilita su integración en espacios reducidos una buena resolución en la medición de distancias.
y formas personalizadas. Además, las baterı́as de el HC-SR04 ofrece una alta precisión y respuesta
polı́mero de litio ofrecen una alta densidad de rápida. Su interfaz fácil de usar, que consiste en
energı́a, lo que se traduce en una mayor capacidad solo cuatro pines (VCC, Trig, Echo y GND), lo
3

convierte en una opción popular para proyectos de


electrónica y robótica.

Figura 5. LDR (resistor dependiente de la luz

Figura 4. LDR (resistor dependiente de la luz II-F. Micromotorreductor Pololu


Este es un micromotorreductor con una relacion
de 10:1 a una velocidad de 3100 RPM y un tor-
que de 0.22 Kg.cm, que a pesar de su pequeño
tamaño tiene grandes ventajas, la principal es que
los micromotorreductores se pueden encontrar con
diferentes configuraciones y tienen la misma forma
II-E. El giroscopio MPU6050 y tamaño, esto es muy útil cuando se requiere
cambiar el tipo de motor ya sea por que se quiere
tener una mayor o menor velocidad y/o un mayor o
Este giroscopio es un sensor inercial de seis menor torque. Los pueden utilizar por lo general en
ejes ampliamente utilizado que combina un ace- proyectos de competencia como los robots mini-
lerómetro y un giroscopio en un solo dispositivo.El sumo o los seguidores de lineas, o también para
MPU6050 es conocido por su versatilidad y pre- funciones de alguna maquina como dispensadores
cisión en la medición de movimiento. Ofrece tres de papel, cerraduras eléctricas, etc.
ejes de datos de aceleración y tres ejes de velocidad
angular, permitiendo una detección completa de la
orientación y movimiento de un objeto en el espacio
tridimensional. Con una resolución ajustable y una
interfaz de comunicación I2C, el MPU6050 se
integra fácilmente con microcontroladores y placas
de desarrollo como Arduino. Su capacidad para
proporcionar datos en tiempo real con una alta ve-
locidad de muestreo lo hace ideal para aplicaciones
como estabilización de vuelo en drones, control de
movimiento en robots y seguimiento de movimiento
en dispositivos portátiles. Además, su tamaño com-
pacto y eficiencia energética lo convierten en una
elección popular para una variedad de proyectos
electrónicos. Figura 6. LDR (resistor dependiente de la luz
4

Estos pequeños motorreductores de CC con es-


cobillas están disponibles en una amplia gama de
relaciones de transmisión con diferentes motores;
motores de alta potencia de 12V y 6V con escobillas
de carbon de alta duración (HPCB) y motores de
6V de alta potencia (HP). A continuación se pre-
sentaran datos técnicos por lo que escogimos estos
motores, dichos datos son extraı́dos directamente
desde la datasheet del fabricante.

Figura 9. LDR (resistor dependiente de la luz

II-G. PTC (coeficiente de temperatura positivo)

Un PTC es un tipo de termistor que exhibe la


caracterı́stica única de tener una resistencia que
aumenta con el aumento de la temperatura. Esta
propiedad le confiere la capacidad de actuar como
un dispositivo de protección térmica en circuitos
electrónicos. Cuando la temperatura del PTC au-
menta debido a condiciones anormales, como una
corriente excesiva, su resistencia se incrementa rápi-
damente, limitando el flujo de corriente y prote-
giendo ası́ los componentes del circuito. Esta ca-
pacidad de autorregulación térmica lo hace valioso
en aplicaciones como protección de sobrecorriente,
Figura 7. LDR (resistor dependiente de la luz arranque suave en motores eléctricos y control
térmico en sistemas electrónicos. Además, los PTC
son conocidos por su estabilidad y fiabilidad, lo
que los convierte en componentes esenciales en el
diseño de circuitos seguros y eficientes

image/FIGURA3.png

Figura 8. LDR (resistor dependiente de la luz Figura 10. PTC (coeficiente de temperatura positivo)
5

II-H. Sensor de Gas MQ-5 por sistemas digitales, como microcontroladores o


El sensor de gas MQ-5 es un componente amplia- computadoras.
mente utilizado para la detección de diversos gases Existen diferentes tipos de ADC, cada uno con
en el entorno. Su caracterı́stica principal radica en sus propias caracterı́sticas y aplicaciones. Algunos
su capacidad para detectar gases inflamables como ejemplos incluyen el ADC de aproximaciones
metano, propano, butano y gases de humo en con- sucesivas, el ADC de rampa, y el ADC de
centraciones especı́ficas. Este sensor opera mediante tipo sigma-delta. La elección del tipo de ADC
la variación de su resistencia eléctrica en respuesta a depende de factores como la velocidad requerida,
la presencia de gases, generando una señal eléctrica la precisión y la complejidad del sistema en el que
proporcional a la concentración de gas detectada. se va a utilizar.
Su versatilidad y sensibilidad lo hacen ideal para
su implementación en sistemas de seguridad contra
fugas de gas en entornos domésticos, industriales
y comerciales. Además, el MQ-5 es conocido por
su tamaño compacto, bajo consumo de energı́a y
fácil interfaz con circuitos electrónicos, lo que lo
convierte en una opción popular para aplicaciones
de monitoreo de gases en tiempo real.

Figura 12. Diagrama ADC

ADC de aproximaciones sucesivas El ADC de


Aproximaciones Sucesivas es un tipo de convertidor
analógico-digital que utiliza un método iterativo pa-
ra obtener una representación digital precisa de una
señal analógica. Su enfoque se basa en comparar
repetidamente la entrada analógica con un valor de
referencia generado internamente.
Figura 11. Sensor de Gas MQ-5
En el proceso de conversión, el ADC de Apro-
ximaciones Sucesivas comienza con el bit más
II-I. ADC - Convertidor Analógico-Digital significativo (MSB) y lo compara con la mitad del
Un ADC por sus siglas en inglés (Analog-to- rango posible. Dependiendo del resultado de esta
Digital Converter), es un componente electrónico comparación, se decide si el MSB es 1 o 0. Luego,
que convierte una señal analógica en una represen- se pasa al siguiente bit y se repite el proceso, redu-
tación digital equivalente. Las señales analógicas ciendo gradualmente la resolución y aproximándose
son continuas y varı́an suavemente en el tiempo, al valor final. Este proceso continúa hasta que se
mientras que las señales digitales son discretas y obtiene la representación digital completa.
representan valores mediante dı́gitos binarios. Una de las ventajas clave de este tipo de ADC es
El ADC desempeña un papel crucial en la inter- su eficiencia en términos de tiempo de conversión,
faz entre el mundo analógico y digital. Funciona ya que reduce la necesidad de realizar múltiples
tomando una entrada analógica, como una tensión conversiones completas. Esto lo hace particularmen-
eléctrica que varı́a de manera continua, y la con- te útil en aplicaciones donde se requiere una alta
vierte en un valor digital que puede ser procesado velocidad de muestreo. Sin embargo, su implemen-
6

tación puede ser más compleja en comparación con PIC 16F18875


otros tipos de ADC. Dip Switch
Resistencias 330 [Ω], 7,1 [Ω], 10 [Ω]
Cristal Cuarzo 20Mhz.
Capacitores
LDR 10K [Ω]
PTC 100K [Ω]
Potenciometro 100K [Ω]
Sensor de gas MQ-5

IV. P ROCEDIMIENTO
IV-A. Diagrama de Flujo
Figura 13. Diagrama ADC, aproximaciones sucesivas Antes de empezar a programar nuestro código
en el software debemos desarrollar un diagrama
II-J. MPLAB Code Configurator (MCC) de flujo utilizando la aplicación Diagrams.net. El
diagrama de flujo desempeña un papel fundamental
El MPLAB Code Configurator (MCC) es una antes de programar al proporcionar una represen-
caracterı́stica clave del MPLAB X IDE que sim- tación visual y estructurada del flujo lógico de
plifica y acelera el proceso de configuración de un algoritmo.En este presentaremos los diferentes
periféricos en microcontroladores de la familia PIC métodos y funciones que utilizaremos.
de Microchip. Esta herramienta gráfica proporciona
una interfaz intuitiva para configurar y personalizar
periféricos como UART, SPI, I2C, ADC, entre
otros. MCC simplifica la complejidad de la con-
figuración de hardware y código, permitiendo a los
desarrolladores centrarse más en la lógica de la
aplicación. Además, MCC es compatible con una
amplia variedad de microcontroladores PIC, me-
jorando la portabilidad del código entre diferentes
dispositivos de la familia PIC de Microchip.

Figura 15. Diagrams.net

Figura 14. Apartado MCC


IV-B. Desarrollo del código
III. M ATERIALES Y M ÉTODOS
IV-B1. Configuración de puertos: Para la pre-
III-A. Materiales sente practica usaremos el MCC en el cual definire-
Software MPLAB X IDE mos los pines que utilizaremos tanto para entradas y
7

salidas digitales como las entradas analogicas para usaremos para las conversiones. Podemos configu-
el ADC. rar el periférico para establecer las velocidades de
conversión, los voltajes de referencia y como se
guardaran los datos en los registros puesto que nos
da un numero de 16 bits.

image/FIGURA11.png

Figura 16. Configuración pines MCC

En la configuración de bits podemos ver que el


apartado de MCC nos permite activar las resisten- Figura 18. Configuración ADC MCC
cias de pull-up asi como los flancos de subida y
bajada para las interrupciones. IV-B3. Bucle para transformar el numero:
La finalidad de este bucle es poder transformar
el numero que vamos a presentar en los valores
correspondientes, para implementar este concepto
tomaremos el valor que nos entrega cada sensor
y mediante la función resto y división lo que
haremos es asignar el numero a una posición de
un vector que contiene el numero correspondiente
para presentar en el display.

image/FIGURA10.png

image/FIGURA12.png

Figura 19. Bucle transformar

Figura 17. Configuración de entradas y salidas MCC IV-B4. Bucle para presentar el numero: Este
bucle tiene la finalidad de poder asignarle el nu-
IV-B2. Configuración del ADC: El MCC nos mero al display correspondiente, esto lo haremos
permite agregar un ADC como periférico el cual mediante el uso de un display multiplexado y el
8

uso de enables mediantes transistores. Para realizar


este proceso lo que hacemos es asignar el numero
al display y asignamos el enable que le corresponda
dependiendo de si es decimal, unidad o decena, este
proceso lo realizamos a altas velocidades de manera
que se percibe que es un numero estático.
image/FIGURA14.png

Figura 21. Configuración del vector de interrupcione

IV-B6. Bucle principal: En este bucle lo que


hacemos es inicializar el sistema del MCC y habi-
litar las interrupciones. Dependiendo del valor del
image/FIGURA13.png sensor entraremos a cada bucle, en cada bucle lo que
realizamos es recibir el numero del canal correspon-
diente del ADC, dependiendo del sensor tendremos
una resolución establecida. Antes de realizar la
conversión lo que hacemos es sacar un acumulado
mas que nada por las velocidades de conversión;
teniendo el acumulado procedemos a desarrollar
una ecuación asociada al tipo de sensor que estemos
utilizando, el valor obtenido de este ecuación es el
valor que se presentara en los displays.
Figura 20. Bucle mostrar

IV-B5. Interrupciones para cambiar la visua-


lización de cada sensor: Para manejar las inte-
rrupciones hemos activado el flanco de subida y el
flanco de bajada, lo cual nos llevara al vector de image/FIGURA15.png
interrupciones ya sea cuando se pone el dip switch
a 0 o cuando lo ponemos a 1, despues preguntare-
mos que dip switch están activado teniendo como
posibles opciones ”00”, ”01”, ”10”, ”11çada una
de las combinaciones esta asociadas a un sensor
en especifico, una vez establecida la combinación
asignaremos un valor especifico a una variables
sensor la cual establece que valores mostraremos
en los displays. Figura 22. Declaracion blucle principal
9

image/FIGURA20.jpeg

image/FIGURA17.png

Figura 23. Sensor de temperatura

Figura 26. Esquemático de la practica

IV-B7. Diagrama y Anexos:


image/FIGURA18.jpeg

Figura 24. Sensor de Luz

image/FIGURA19.jpeg

Figura 25. Sensor de GAS


Listing 1. Configuracion de Bits
# i n c l u d e ” m c c g e n e r a t e d f i l e s / mcc . h ”
i n t C , D, U, v a l o r ;
u n s i g n e d char d i s p l a y [ 1 0 ] = {0 x3f , 0 x06 , 0 x5b , 0 x4f , 0 x66 , 0 x6d , 0 x7d , 0 x07 , 0 x7f , 0 x67 } ;
f l o a t r e s o l u c i o n , acumulado ;
u i n t 1 6 t v a l o r P o t e n c i o m e t r o , valorPTC , valorLDR , valorGAS ;
char c o n t , s e n s o r ;
void i n t e r r u p t i o n v e c t o r ( void ) ;

void t r a n s f o r m a r ( ) {
U = valor % 10;
D = ( v a l o r % 100) / 10;
C = ( v a l o r % 1000) / 100;
}
void mostrar ( ) {

PORTD = d i s p l a y [C ] ;
E1 RC4 PORT = 1 ;
delay us (500);
E1 RC4 PORT = 0 ;

PORTD = d i s p l a y [D ] ;
E2 RC5 PORT = 1 ;
delay us (500);
E2 RC5 PORT = 0 ;

PORTD = d i s p l a y [U ] ;
E3 RC6 PORT = 1 ;
delay us (500);
E3 RC6 PORT = 0 ;
}

10
Listing 2. Bucle Mostrar

void mostrarU ( ) {

PORTD = d i s p l a y [C ] ; / /
PORTD | = 0 b10000000 ; / / p u n t o
E1 RC4 PORT = 1 ;
delay us (500);
E1 RC4 PORT = 0 ;

PORTD = d i s p l a y [D ] ;
E2 RC5 PORT = 1 ;
delay us (500);
E2 RC5 PORT = 0 ;

PORTD = d i s p l a y [U ] ;
E3 RC6 PORT = 1 ;
delay us (500);
E3 RC6 PORT = 0 ;

void mostrarD ( ) {

PORTD = d i s p l a y [C ] ;
E1 RC4 PORT = 1 ;
delay us (500);
E1 RC4 PORT = 0 ;

PORTD = d i s p l a y [D ] ;
PORTD | = 0 b10000000 ; / / p u n t o
E2 RC5 PORT = 1 ;
delay us (500);
E2 RC5 PORT = 0 ;

11
Listing 3. Bucle principal
PORTD = d i s p l a y [U ] ;
E3 RC6 PORT = 1 ;
delay us (500);
E3 RC6 PORT = 0 ;

}
v o i d main ( v o i d ) {
SYSTEM Initialize ( ) ;
INTERRUPT GlobalInterruptEnable ( ) ;
IOCBF4 SetInterruptHandler ( i n t e r r u p t i o n v e c t o r ) ;
IOCBF5 SetInterruptHandler ( i n t e r r u p t i o n v e c t o r ) ;
while ( 1 ) {
w h i l e ( s e n s o r == 1 ) { / / P o t e n c i o m e t r o
v a l o r P o t e n c i o m e t r o = A D C C G e t S i n g l e C o n v e r s i o n ( POT ) ;
resolucion = (5.00 / 1024);
c o n t += 1 ;
i f ( cont < 12) {
a c u m u l a d o += v a l o r P o t e n c i o m e t r o ;
} else {
acumulado /= 12;
v a l o r = ( r e s o l u c i o n * acumulado ) * 1 0 0 ;
cont = 0;
}
transformar ( ) ;
mostrarU ( ) ;

PORTD = 0 b00111110 ;
E4 RC7 PORT = 1 ;
delay us (500);
E4 RC7 PORT = 0 ;
}
w h i l e ( s e n s o r == 2 ) { / / T e m p e r a t u r a
v a l o r P T C = A D C C G e t S i n g l e C o n v e r s i o n ( PTC ) ;
resolucion = (69.00 / 831);

12
Listing 4. Bucle principal
c o n t += 1 ;
i f ( cont < 21) {
a c u m u l a d o += v a l o r P T C ;
} else {
acumulado /= 21;
v a l o r = ( ( r e s o l u c i o n * acumulado ) −( r e s o l u c i o n * 1 9 3 . 0 0 ) + 2 7 . 0 0 ) * 1 0 ;
cont = 0;
}
transformar ( ) ;
mostrarD ( ) ;

PORTD = 0 b0111001 ;
E4 RC7 PORT = 1 ;
delay us (500);
E4 RC7 PORT = 0 ;
}
w h i l e ( s e n s o r == 3 ) { / / L u m i n o s i d a d
valorLDR = A D C C G e t S i n g l e C o n v e r s i o n (LDR ) ;
resolucion = (850.00 / 880);
c o n t += 1 ;
i f ( cont < 12) {
a c u m u l a d o += valorLDR ;
} else {
acumulado /= 12;
v a l o r = ( ( r e s o l u c i o n * acumulado ) + 2 0 . 0 0 ) ;
cont = 0;
}
transformar ( ) ;
mostrar ( ) ;
PORTD = 0 b0111000 ;
E4 RC7 PORT = 1 ;
delay us (500);
E4 RC7 PORT = 0 ;

13
Listing 5. Vector de interrupciones
}

w h i l e ( s e n s o r == 4 ) { / / GAS
valorGAS = A D C C G e t S i n g l e C o n v e r s i o n (GAS ) ;
resolucion = (798.00 / 600);
c o n t += 1 ;
i f ( cont < 15) {
a c u m u l a d o += valorGAS ;
} else {
acumulado /= 15;
v a l o r = ( ( r e s o l u c i o n * acumulado ) −( r e s o l u c i o n * 2 2 5 . 0 0 ) + 5 0 . 0 0 ) ;
cont = 0;
}
transformar ( ) ;
mostrar ( ) ;

PORTD = 0 b1110011 ;
E4 RC7 PORT = 1 ;
delay ms ( 1 ) ;
E4 RC7 PORT = 0 ;

}
}
}
void i n t e r r u p t i o n v e c t o r ( ) {
i f ( DIP1 PORT == 0 && DIP0 PORT == 0 ) { / / Dip S w i t c h 00
delay ms ( 2 5 ) ;
i f ( DIP1 PORT == 0 && DIP0 PORT == 0 ) {
sensor = 1;
}
}

i f ( DIP1 PORT == 1 && DIP0 PORT == 0 ) { / / Dip S w i t c h 10


delay ms ( 2 5 ) ;

14
Listing 6. Declarcion metodo ”Tiempo banderas
2

i f ( DIP1 PORT == 0 && DIP0 PORT == 0 ) {


sensor = 1;
}
}

i f ( DIP1 PORT == 1 && DIP0 PORT == 0 ) { / / Dip S w i t c h 10


delay ms ( 2 5 ) ;
i f ( DIP1 PORT == 1 && DIP0 PORT == 0 ) {
sensor = 2;
}
}

i f ( DIP1 PORT == 0 && DIP0 PORT == 1 ) { / / Dip S w i t c h 01


delay ms ( 2 5 ) ;
i f ( DIP1 PORT == 0 && DIP0 PORT == 1 ) {
sensor = 3;
}
}
i f ( DIP1 PORT == 1 && DIP0 PORT == 1 ) { / / Dip S w i t c h 11
delay ms ( 2 5 ) ;
i f ( DIP1 PORT == 1 && DIP0 PORT == 1 ) {
sensor = 4;
}
}
P I R 0 b i t s . IOCIF = 0 ; / / Bandera G e n e r a l
return ;

15
16

6.png
17

V. CONCLUSIONES
En conclusión, la implementación exitosa
de un sistema que utiliza el microcontrolador
PIC16F18875 para realizar la conversión analógico-
digital (ADC) de señales provenientes de diversos
sensores ha demostrado ser un ejercicio integral en
el diseño de sistemas electrónicos. La capacidad
del PIC16F18875 para gestionar la adquisición y
transformación de señales analógicas, seguida de la
visualización eficiente en displays multiplexados,
resalta su versatilidad y potencial en aplicaciones
de monitoreo. Esta práctica no solo ha mejorado
la comprensión de los principios fundamentales
de la conversión analógica a digital, sino también
la habilidad para integrar sensores y displays
de manera efectiva, proporcionando una valiosa
experiencia en el diseño y desarrollo de sistemas
embebidos.

También podría gustarte