![Page 1: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/1.jpg)
Robot Automatizado
![Page 2: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/2.jpg)
Índice:
• Estructura hardware del robot.
– PIC16f883 y funcionamiento del Driver L239D.
• Estructura Software del robot.
– Funcionamiento general.
– Subrutina de interrupción.
– Subrutina de comprobación.
– Puntualizaciones.
![Page 3: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/3.jpg)
Estructura hardware del Robot
![Page 4: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/4.jpg)
PIC16F883 y Driver L293D
Driver L239D Bit 15 (RC5) Bit 10 (RC4) Bit 2 (RC2) Bit 7 (RC7)
Adelante 0 1 0 1
Atrás 1 0 1 0
Giro Derecha 0 1 1 0
Giro Izquierda 1 0 0 1
• Bit Enable siempre a 1. • Para el funcionamiento de los motores configuramos los bits puestos en la tabla.
![Page 5: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/5.jpg)
Estructura Software del Robot
![Page 6: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/6.jpg)
Subrutina de interrupción
![Page 7: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/7.jpg)
Subrutina “comprobar”
![Page 8: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/8.jpg)
Puntualizaciones
• Inicialización del oscilador y de los puertos.
• Conversión A/D: Tad.
• Timer0.
• Variables cinterrup (tiempo del timer0 de 1s) y comprobante.
![Page 9: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/9.jpg)
• Oscilador: lo inicializamos a 8MHz.
• Puertos:
-PORTA: como salidas (I/O digital).
-PORTB: como entradas (I/O digital), a excepción de RB5 (entrada analógica).
-PORTC: como salidas (I/O digital).
![Page 10: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/10.jpg)
• Conversión A/D: (adcon0 y adcon1)
-Elección del Tad: elegimos 4 us. (>1.6 us)
-Selección del canal 13.
-Go/done=0, para que no se inicie la conversión.
-Justificación de los valores a la izquierda.
-Tensión de referencia Vdd y Vss.
![Page 11: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/11.jpg)
• Timer0: (intcon y option_reg)
- Habilitación de la bandera t0if.
- Selección de la oscilación del timer0:
Seleccionamos un prescaler: 1:256
![Page 12: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/12.jpg)
• Variables cinterrup y comprobante:
Seleccionamos un prescaler: 1:256 (timer0)
- cinterrup: la utilizamos para que la interrupción se produzca 30 veces y la conversion A/D cada 1s.
![Page 13: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/13.jpg)
- Comprobante: variable que utilizamos para comprobar que ha finalizado un movimiento.
valor=50
![Page 14: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/14.jpg)
![Page 15: Robot automatizado - Antonio José Blanco Ropero y Carlos Sánchez Vicente](https://reader035.vdocuments.pub/reader035/viewer/2022062404/5538c56d5503469f338b48c7/html5/thumbnails/15.jpg)