Este informe describe el control de velocidad y sentido de giro de un motor DC utilizando un microcontrolador ATmega8 y un encoder óptico. El programa controla el motor para que gire en un sentido durante 1000 vueltas, luego cambie automáticamente el sentido y gire otras 1000 vueltas, a menos que se presione un botón para detenerlo o cambiar el sentido. El encoder envía pulsos al microcontrolador para contar las vueltas y controlar la velocidad.
Proyecto brazo robotico ksr10 enero marzo 2015joaquinin1
Brazo robótico KSR 10 controlado por 3 Joystick . dispone de 5 motores de corriente continua . El control se realiza desde la arduino Mega 2560 con la ayuda de 3 drivers para la alimentación y cambio de sentido de giro de los motores. Los movimientos que ejecute con los Joystick pueden ser grabados al cerrar un interruptor en una tarjeta micro SD y después se podrán secuenciar de forma automática los movimientos al ser accionado otro interruptor.
La precisión es de +/1,5º
El programa está realizado en ARDUINO versión 1.05.r2
En este documento está todo el proceso de construcción y el programa.
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso del display cátodo común I&T.
▷ Implementar un contador decimal de un dígito.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dislay 7 segmentos
✅ Descripción
▷ El presente proyecto hace uso de un display de 7 segmentos cátodo común.
Implementaremos un contador decimal de un dígito cuyo incremento será mediante el botón MCLR.
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886Victor Asanza
✅ Objetivo: Aprender el funcionamiento del módulo Adaptador IDC LCD 2X16.
Conocer las diferentes funciones que tiene la librería LCD de MikroBasic.
✅ Duración: 30min
✅ Materiales:
⇨ Módulo de desarrollo PIC16F886
⇨ Módulo adaptador ICD LCD 2X16
✅ Descripción: El presente proyecto se basa en el módulo Adaptador IDC LCD 2X16.
Se va a conectar el módulo LCD en el conector IDC de 5X2 del modulo PIC16F886, en el cual se visualizará las cadenas de caracteres programadas.
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso de dos display cátodo común y el teclado 4x4.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dos dislays 7 segmentos cátodo común
▷ Teclado numérico 4x4
✅ Descripción
▷ El presente proyecto hace uso de dos displays cátodo común y un teclado 4x4.
Vamos a implementar un programa que muestra el código de la tecla presionada en los display.
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso de dos displays cátodo común.
▷ Implementar un contador decimal de dos dígitos.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dos dislays 7 segmentos cátodo común
✅ Descripción
▷ El presente proyecto hace uso de dos display de 7 segmentos cátodo común.
Implementaremos un contador decimal de dos dígitos cuyo incremento será mediante el botón MCLR.
Proyecto brazo robotico ksr10 enero marzo 2015joaquinin1
Control del brazo robótico KSR10 realizado por Joaquín Berrocal Piris en marzo de 2015. Permite el control de sus 5 motores de corriente continua mediante 3 Joystick.
dispone de placas drivers L298N para el control de giro de los motores. Y de tarjeta micro SD para la grabación si lo deseo de los movimientos que realice con los Joystick , para su posterior secuenciación cíclicla de los movimientos grabados.
Programa realizado en la Arduino Mega 2560 con el sotware; Arduino 1.05.r2
Proyecto brazo robotico ksr10 enero marzo 2015joaquinin1
Brazo robótico KSR 10 controlado por 3 Joystick . dispone de 5 motores de corriente continua . El control se realiza desde la arduino Mega 2560 con la ayuda de 3 drivers para la alimentación y cambio de sentido de giro de los motores. Los movimientos que ejecute con los Joystick pueden ser grabados al cerrar un interruptor en una tarjeta micro SD y después se podrán secuenciar de forma automática los movimientos al ser accionado otro interruptor.
La precisión es de +/1,5º
El programa está realizado en ARDUINO versión 1.05.r2
En este documento está todo el proceso de construcción y el programa.
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso del display cátodo común I&T.
▷ Implementar un contador decimal de un dígito.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dislay 7 segmentos
✅ Descripción
▷ El presente proyecto hace uso de un display de 7 segmentos cátodo común.
Implementaremos un contador decimal de un dígito cuyo incremento será mediante el botón MCLR.
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886Victor Asanza
✅ Objetivo: Aprender el funcionamiento del módulo Adaptador IDC LCD 2X16.
Conocer las diferentes funciones que tiene la librería LCD de MikroBasic.
✅ Duración: 30min
✅ Materiales:
⇨ Módulo de desarrollo PIC16F886
⇨ Módulo adaptador ICD LCD 2X16
✅ Descripción: El presente proyecto se basa en el módulo Adaptador IDC LCD 2X16.
Se va a conectar el módulo LCD en el conector IDC de 5X2 del modulo PIC16F886, en el cual se visualizará las cadenas de caracteres programadas.
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso de dos display cátodo común y el teclado 4x4.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dos dislays 7 segmentos cátodo común
▷ Teclado numérico 4x4
✅ Descripción
▷ El presente proyecto hace uso de dos displays cátodo común y un teclado 4x4.
Vamos a implementar un programa que muestra el código de la tecla presionada en los display.
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso de dos displays cátodo común.
▷ Implementar un contador decimal de dos dígitos.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dos dislays 7 segmentos cátodo común
✅ Descripción
▷ El presente proyecto hace uso de dos display de 7 segmentos cátodo común.
Implementaremos un contador decimal de dos dígitos cuyo incremento será mediante el botón MCLR.
Proyecto brazo robotico ksr10 enero marzo 2015joaquinin1
Control del brazo robótico KSR10 realizado por Joaquín Berrocal Piris en marzo de 2015. Permite el control de sus 5 motores de corriente continua mediante 3 Joystick.
dispone de placas drivers L298N para el control de giro de los motores. Y de tarjeta micro SD para la grabación si lo deseo de los movimientos que realice con los Joystick , para su posterior secuenciación cíclicla de los movimientos grabados.
Programa realizado en la Arduino Mega 2560 con el sotware; Arduino 1.05.r2
grabacion de microcontroladores PIC, en el presente seminario examinaremos la familia de microcontroladores, su evoluicion, aplicaciones mas comunes e iniciaremos la grabacion, decodificacion y simulacion ayudados de la herramienta PROTEUS APLICADOS a la robotica
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso del ADC del microcontrolador.
▷ Mostrar en los led el valor leído por el ADC en binario.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
✅ Descripción
▷ El presente proyecto hace uso del potenciómetro PT y los LEDs.
▷ Como primer paso se hace la lectura del convertidor analógico-digital y este es almacenado en el microcontrolador.
▷ Se mostrará en los leds el valor leído por el ADC en binario.
✅ Desarrollo
▷ Para realizar la práctica planteada es necesario ubicar algunos JUMPER de tal manera que permita el uso de los componentes necesarios para esta práctica.
▷ El módulo Entrenamiento M.E.I&T04 puede utilizar una de dos fuentes de alimentación.
▷ Fuente de alimentación USB desde PC a través del cable USB.
▷ Fuente de alimentación EXT desde un Jack DC.
▷ Para hacer uso del potenciómetro PT tenemos que ubicar el JUMPER que está encima del potenciómetro en la posición EN (Enable=Habilitado) como se muestra en la figura.
▷ Para hacer uso de los led tenemos que ubicar el JUMPER que está debajo en la posición EN (Enable=Habilitado) como se muestra en la figura.
Brazo robotico ksr10 ps2 x mayo 2015 a 9v_version_3joaquinin1
El brazo tiene 5 motores de corriente continua (no paso a paso ni servomotores). Se pueden controlar desde la mesa con 3 Joystick o bien desde el mando de la playstation. Asímismo permite la grabación de los movimientos que realicemos del brazo y luego podemos secuenciar dichos movimientos de forma continua. Para ello, se utiliza un interruptor que permite la grabación de todos los movimientos que efectuemos y otro interruptor para secuenciarlos cuando deseemos, lo que permite a cualquier operario fácilmente modificar la trayectoria de los movimientos sin que tenga que venir un especialista para reprogramar los movimientos.
Proyecto brazo robotico ksr10 enero marzo 2015 a 9 v-version_2joaquinin1
Brazo robótico controlado con arduino mega 2560 mediante tres Joystick. dispone de 5 motorcillos. Se permite la grabación de los movimientos que efectuemos con los Joystick en tarjeta microSD y después secuenciarlos si así lo deseamos al activar el interruptor secuenciar.
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...
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017joaquinin1
Control de coche por bluetooth con ayuda del mando para el móvil realizado por D. Andrés Lasry y complementado por mí para la captación de los datos que debe enviar desde el arduino al móvil como son la dirección, y la distancia a los objetos frontales y traseros al vehículo.
Cuando se aproxime sobre unos 28 cm a un objeto debe parar y retroceder durante un segundo para salir de la zona de peligro de choque. Al llegar a los 28 cm será señalado por la intermitencia de los leds y paro del vehículo. luego invertirá la marcha para salir de la zona de peligro de choque.
Automatismo de control para el acceso a un garajeJomicast
Descripción del diseño, construcción y montaje de un circuito electrónico basado en puertas lógicas cuya finalidad es abrir y cerrar automáticamente y a través de sensores el porton de un garaje.
Construccion seguidor de línea por joaquín berrocal verano 2017joaquinin1
Velocista seguidor de línea realizado por Joaquín Berrocal Piris, peso del vehículo 507grs, motores con reductora de 30:1 alimentados a 7 Voltios. aceptan hasta los 12V.
Prototipo velocista seguidor de líneas blancas sobre fondo de color irregular, lo que agrava la dificultad de calibración de los sensores de infrarrojos.
Está basado en el proyecto Lamborghino.
Lleva control PID por lo que es muy necesario adaptarlo a las condiciones de tensión, peso y luminosidad de la pista. cualquier modificación en los mismos habría que reajustar los valores proporcional, integral y, en menor incidencia, el derivativo.
Como se puede observar ha sido de gran dificultad los ajustes debido a tener el suelo un color oscuro nada regular. Lo ideal es que la cinta blanca (de grosor 19mm) estuviera sobre fondo negro perfecto.
Para descargar:
+ Dirección de mis proyectos en el youtube:
https://www.youtube.com/user/joaquininbp/videos?sort=dd&shelf_id=0&view=0
grabacion de microcontroladores PIC, en el presente seminario examinaremos la familia de microcontroladores, su evoluicion, aplicaciones mas comunes e iniciaremos la grabacion, decodificacion y simulacion ayudados de la herramienta PROTEUS APLICADOS a la robotica
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Objetivo
▷ Aprender hacer uso del ADC del microcontrolador.
▷ Mostrar en los led el valor leído por el ADC en binario.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
✅ Descripción
▷ El presente proyecto hace uso del potenciómetro PT y los LEDs.
▷ Como primer paso se hace la lectura del convertidor analógico-digital y este es almacenado en el microcontrolador.
▷ Se mostrará en los leds el valor leído por el ADC en binario.
✅ Desarrollo
▷ Para realizar la práctica planteada es necesario ubicar algunos JUMPER de tal manera que permita el uso de los componentes necesarios para esta práctica.
▷ El módulo Entrenamiento M.E.I&T04 puede utilizar una de dos fuentes de alimentación.
▷ Fuente de alimentación USB desde PC a través del cable USB.
▷ Fuente de alimentación EXT desde un Jack DC.
▷ Para hacer uso del potenciómetro PT tenemos que ubicar el JUMPER que está encima del potenciómetro en la posición EN (Enable=Habilitado) como se muestra en la figura.
▷ Para hacer uso de los led tenemos que ubicar el JUMPER que está debajo en la posición EN (Enable=Habilitado) como se muestra en la figura.
Brazo robotico ksr10 ps2 x mayo 2015 a 9v_version_3joaquinin1
El brazo tiene 5 motores de corriente continua (no paso a paso ni servomotores). Se pueden controlar desde la mesa con 3 Joystick o bien desde el mando de la playstation. Asímismo permite la grabación de los movimientos que realicemos del brazo y luego podemos secuenciar dichos movimientos de forma continua. Para ello, se utiliza un interruptor que permite la grabación de todos los movimientos que efectuemos y otro interruptor para secuenciarlos cuando deseemos, lo que permite a cualquier operario fácilmente modificar la trayectoria de los movimientos sin que tenga que venir un especialista para reprogramar los movimientos.
Proyecto brazo robotico ksr10 enero marzo 2015 a 9 v-version_2joaquinin1
Brazo robótico controlado con arduino mega 2560 mediante tres Joystick. dispone de 5 motorcillos. Se permite la grabación de los movimientos que efectuemos con los Joystick en tarjeta microSD y después secuenciarlos si así lo deseamos al activar el interruptor secuenciar.
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...
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017joaquinin1
Control de coche por bluetooth con ayuda del mando para el móvil realizado por D. Andrés Lasry y complementado por mí para la captación de los datos que debe enviar desde el arduino al móvil como son la dirección, y la distancia a los objetos frontales y traseros al vehículo.
Cuando se aproxime sobre unos 28 cm a un objeto debe parar y retroceder durante un segundo para salir de la zona de peligro de choque. Al llegar a los 28 cm será señalado por la intermitencia de los leds y paro del vehículo. luego invertirá la marcha para salir de la zona de peligro de choque.
Automatismo de control para el acceso a un garajeJomicast
Descripción del diseño, construcción y montaje de un circuito electrónico basado en puertas lógicas cuya finalidad es abrir y cerrar automáticamente y a través de sensores el porton de un garaje.
Construccion seguidor de línea por joaquín berrocal verano 2017joaquinin1
Velocista seguidor de línea realizado por Joaquín Berrocal Piris, peso del vehículo 507grs, motores con reductora de 30:1 alimentados a 7 Voltios. aceptan hasta los 12V.
Prototipo velocista seguidor de líneas blancas sobre fondo de color irregular, lo que agrava la dificultad de calibración de los sensores de infrarrojos.
Está basado en el proyecto Lamborghino.
Lleva control PID por lo que es muy necesario adaptarlo a las condiciones de tensión, peso y luminosidad de la pista. cualquier modificación en los mismos habría que reajustar los valores proporcional, integral y, en menor incidencia, el derivativo.
Como se puede observar ha sido de gran dificultad los ajustes debido a tener el suelo un color oscuro nada regular. Lo ideal es que la cinta blanca (de grosor 19mm) estuviera sobre fondo negro perfecto.
Para descargar:
+ Dirección de mis proyectos en el youtube:
https://www.youtube.com/user/joaquininbp/videos?sort=dd&shelf_id=0&view=0
Proyecto controlar la secuencia de un motor de bobinas de induccion de 4 pasos pero puede generalizarse para n pasos, usando circuitos integrados TTL, y un modelo de maquina de estados de Moore.
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
✅ Práctica 1
▷ Entradas y Salidas Digitales
✅ Objetivo
▷ Aprender a hacer uso del botón MCLR como entrada digital PORTE.3
▷ Mostrar valores binarios en los LEDs
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
✅ Descripción
▷ El presente proyecto hace uso del botón MCLR y los LEDs.
▷ Al presionar el botón MCLR se hace un incremento del valor mostrado en los LEDs
✅ Desarrollo
▷ Para realizar la práctica planteada es necesario ubicar algunos JUMPER de tal manera que permita el uso de los componentes necesarios para esta práctica.
1. INFORME N°3: Control de velocidad de un motor DC con encoder
UNIVERSIDAD NACIONAL DEL
CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
E. P. INGENIERÍA ELECTRÓNICA
ASIGNATURA: MICROCONTROLADORES
GRUPO/TURNO: 90G/ 17:00-19:30
PROFESOR: ASTOCONDOR VILLAR, JACOB
INTEGRANTES: DIBURGA VALDIVIA, LUZ CLAUDIA 1123220635
PEÑA LANDEO, VICTOR DANIEL 1113220333
RUIZ RODRIGUEZ, OMAR ARTEMIO 1113220574
YSLACHE GALVÁN, MIGUEL ANGEL 1113220101
2. LABORATORIO – 91G MICROCONTROLADORES
2
Control de velocidad de un motor DC con encoder
1. OBJETIVOS
Controlar en un motor DC con encoder el sentido de giro y velocidad.
Programar los puertos del atmega 8.
Estructurar rutinas de trabajo
2. MARCO TEORICO
Usando el ATMEGA8 y un tacómetro, se desea controlar el sentido de giro de un motor de
corriente directa. Para cambiar el sentido de giro dependerá del número de vueltas realizadas y
/ o las interrupciones activas.
MOTOR DC CON ENCODER
El encoder es un transductor rotativo que transforma un movimiento angular en una serie de
impulsos digitales. Estos impulsos generados pueden ser utilizados para controlar los
desplazamientos de tipo angular o de tipo lineal, si se asocian a cremalleras o a husillos. Las
señales eléctricas de rotación pueden ser elaboradas mediante controles numéricos (CNC),
contadores lógicos programables (PLC), sistemas de control etc.
El motor usado para nuestro laboratorio tiene 6 terminales 2 de los cuales son para la
alimentación del motor como DC simple y los 4 restantes son para el encoder que es del tipo
óptico (un terminal para alimentación, otro terminal para tierra y los 2 restantes para las
señales de dirección y velocidad de giro).
Fig. Motor DC con encoder
3. LABORATORIO – 91G MICROCONTROLADORES
3
El encoder es un sensor basado en la utilización de un haz infrarrojo para detectar posición y
velocidad. Consiste en un emisor y un receptor del haz infrarrojo, y en medio, una rueda
agujereada que al girar determinara interrumpirá este haz. Si se cuentan las interrupciones del
haz, sabiendo cuantos agujeros tiene el disco, se sabrá cuantas vueltas dio el motor, y cuál es
la posición actual del eje.
Fig. Encoder optico
3. DESCRIPCIÓN:
Se desea diseñar un circuito y un programa que realicen lo siguiente:
I. Que al energizar el micro, no suceda nada
II. Cuando se oprima la tecla conectada a las entrada de Interrupción externa INT1 (tecla
RUN_CAMBIO), del AVR, el motor de CD arranca y comienza a
Girar en el sentido elegido.
III. El Timer/Contador 0 empezará a contar el número de vueltas que dé el motor, usando
como reloj los pulsos que le enviará el encoder conectado a la entrada T0 del AVR.
IV. Cuando el Contador 0cuente 1,000 vueltas, el AVR detendrá automáticamente el giro del
motor e invertirá el sentido de giro, girará en este sentido otras 1,000 vueltas, (solo si no se
oprime ni la tecla STOP ni la RUN_CAMBIO)
V. Si se oprime otra vez la tecla RUN_CAMBIO, el motor invertirá su sentido de giro.
VI. Cuando se oprima la tecla STOP se detiene el motor.
4. LABORATORIO – 91G MICROCONTROLADORES
4
4. MATERIALES
1 Micro controladorATMEGA8
1 L293D, puente “H” doble, con diodos integrados de protección
Fotodiodo
Led
Motor de cd (corriente max 500mA)
2 push buttons NA
Fuente de alimentación 5V, 1ª
Resistencias (2)330W, (2)10Kw
5. PROCEDIMIENTO :
1) Realizar el circuito que se indica:
Fig. Simulación en Proteus
5. LABORATORIO – 91G MICROCONTROLADORES
5
2) DIAGRAMA DE FLUJO
Motor_DC_encoder
Configuracion de puertos
Leer interrupciones
Int1=1
Int0=1
Motor_apagado
NO
Wait:
Definicion de numero de giros
Int1=1 o int0=1
Giro_horario
Giro_antihorario
NO
SI
6. LABORATORIO – 91G MICROCONTROLADORES
6
3) Represente del programa para la simulación con comentarios.
.include "m8def.inc" ; estableciendo que la programación va a ser en un
atmega8
.def temp=r16 ; volviendo equivalente la etiqueta temp
al registro r16
.def stack=r17 ; volviendo equivalente la etiqueta stack al
registro r17
.def secondtemporal=r20 ; volviendo equivalente la etiqueta secondtemporal
al registro r20
.def cont1=r18
.org $00 ; estableciendo la dirección de inicio del
programa sin interrupciones
rjmp preset
.org $01 ; estableciendo la dirección de la interrupción
int0
rjmp ext_int0
.org $02 ; estableciendo la dirección de la interrupción int
rjmp ext_int1
.org $09
rjmp tim0_ovf
preset:
ldi stack,low(ramend) ;separando espacio en la pila
out spl,stack
ldi stack,high(ramend)
out sph,stack
ldi temp,0x00 ;configurando el puerto D como entrada
out DDRD,temp
ldi temp,0xFF
out PORTD,temp
out DDRC,temp
ldi cont1,0
sei ;activando todas las interrupciones
timer:
ldi temp,0b00001010 ;configurando int0 e int1 para que se active la
interrupción con un flanco de subida
out MCUCR,temp
ldi temp,0b11000000 ;habilitando las interrupciones deseadas
out GICR,temp
ldi temp,0b00000001 ;activando el timer en 1
out TIMSK,temp
mov r19,temp
wait:
nop
cpi cont1,4 ; definimos el N° de vueltas para nuestro ejemplo seran
10 vueltas
breq timer_01
rjmp salida
timer_01:
ldi secondtemporal,0x00
out TCCR0,secondtemporal ;ponemos el valor del timer0
out TCNT0,secondtemporal ;
out PORTC,secondtemporal ;puerto C inicialmente en 0
sbi PORTC,2
rcall delay ; llama al retardo
7. LABORATORIO – 91G MICROCONTROLADORES
7
cbi PORTC,2
ldi secondtemporal,0x07
out TCCR0,secondtemporal
com temp
andi temp,0x03
out PORTC,temp
ldi cont1,0
salida :
rjmp wait
delay: ; retardo de 0.37 seg aprox - 3 lazos
ldi r21,$09
WGLOOP0: ldi r22,$BC
WGLOOP1: ldi r23,$C4
WGLOOP2: dec r23
brne WGLOOP2
dec r22
brne WGLOOP1
dec r21
brne WGLOOP0
ret ;regreso de la subrutina delay
ext_int0: ; se llama a la interrupción int0 con la se hace los cambios de giro del motor
ldi r20,0x00
out PORTC,r20
reti
ext_int1:
ldi secondtemporal,0x00
out TCCR0,secondtemporal ;definimos como contador en flanco ascendente
out TCNT0,secondtemporal
ldi secondtemporal,0x07
out TCCR0,secondtemporal ;definimos como contador en flanco ascendente
com temp
andi temp,0x03 ; realiza la operación lógica and
out PORTC,temp ; el resultado anterior lo guarda en el puerto C
reti
tim0_ovf:
inc cont1
reti ; regreso a la subrutina reti
3. Describa el encoder del motor que está realizando las pruebas y diga sus
Características.
- Motor DC hasta 24V
- Pulsos por revolución: 100
- 1 A.
- Salidas 6 en total : 2 motor DC ( Vcc y Gnd) y 4 encoder
8. LABORATORIO – 91G MICROCONTROLADORES
8
4. EXPLICAR LAS INTERRUPCIONES EXTERNAS:
Interrupción externa into: STOP
Esta interrupción detendrá al motor en cualquier momento de giro de este
Interrupción externa int1: RUN_ CAMBIO
Esta interrupción dará inicio al giro del motor que una vez haya cumplido el número de
vueltas programado invertirá el giro y dará el mismo número de vueltas.
Si fuese activada esta interrupción en pleno giro del motor, inmediatamente hará cambiar
este giro al contrario y comenzara otra vez la cuenta hasta llegar al número programado
5. CONCLUSIONES Y RECOMENDACIONES.
Observaciones
Por lo general en el motor dc con encoder no se muestra el número de pulsos por
revolución, entonces la forma de medirla fue alimentando solo el encoder (5v en nuestro
caso) y conectando un led en cualquiera de las 2 señales de salida.
Después procederemos a girar lentamente el motor manualmente una vuelta completa
y contaremos el número de veces que parpadea el led, en nuestro caso fueron 100
pulsos por revolución
Conclusiones
En este laboratorio hemos podido experimentar el uso de este tipo de motor que nos
ofrece precisión tanto de giro como de velocidad y asimismo el uso de los registros de
los temporizadores para determinados tramos de tiempo en concreto, dándole así un
determinado número de vueltas que podemos definir a nuestra conveniencia;
Si bien es cierto el uso de temporizadores ofrece mayor precisión en la práctica los giros
son muy aproximados mas no perfectos al 100% ya que al momento de hacer los
cálculos no obtenemos números enteros de allí esta imprecisión.
También podemos mencionar que el tiempo de cambio de dirección del motor se puede
definir en la programación dándole mayor precisión a cualquier proyecto en el que
usemos estos motores.