Está en la página 1de 12

UPM-DISAM

CYBERTECH 2008
TALLER 3.
MOTORES Y SENSORES DIGITALES

UPM-DIE

1. MOTORES 1.1. NOCIONES GENERALES MOTORES DE CORRIENTE CONTINUA: Los motores de corriente continua son muy utilizados en minirobots. Podemos encontrar motores de este tipo en prcticamente todos los coches teledirigidos y/o coches de juguete, los ventiladores de mano y accionamientos varios. En este taller vamos a aprender a controlarlos. Las preguntas claves que tenemos que responder son: Cmo controlar su velocidad. Controlar el sentido de giro. Alimentacin. Aparentemente, si conectamos un motor de continua a una batera, siempre debera moverse a la misma velocidad, bajo tensin constante. Si no cambiamos la polaridad, parece imposible cambiarlos de sentido y en tercer lugar, si queremos alimentar los motores a nuestro antojo, cmo hacerlo si el PIC enva seales de 0 a 5V? Velocidad: Para poder controlar este aspecto enviaremos al motor una seal desde el PIC de la forma PWM o tren de pulsos, que ser del tipo:

Esta grfica es una forma de onda en tensin. Para entenderlo mejor, realmente estamos alimentando el motor y apagndolo en perodos de tiempo del orden de milisegundos. Con motivo de la inercia del propio motor estos cambios provocan que se mueva a una velocidad constante. As pues, cuanto mayor sea el tiempo del pulso, mayor velocidad obtendremos:

1
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

Sentido de giro y alimentacin: La nica manera de controlar este aspecto del motor, es rodendolo de un circuito, de tal forma que se pueda, al enviar seales, cambiar la polaridad de la alimentacin del motor. Este circuito es el puente en H y vamos a ver su funcionamiento:

Bien, de esta forma si activamos los transistores Q1 y Q4 (1 lgico) el motor girar en un sentido y si activamos Q2 y Q3, la corriente circular en sentido opuesto y por tanto el motor tambin. As, vamos a analizar los cuatro casos posibles, con los pares Q1Q4/Q2Q3: 00 Los motores no reciben alimentacin, quedan libres. 01 El motor gira en un sentido. 10 El motor gira en sentido contrario al anterior. 11 Frenado dinmico: Convine no hacer. Vamos a diferenciar los casos extremos: si el motor no se alimenta y tiene una velocidad dada por algn valor anterior, est solo frenar por rozamiento y la inercia del robot. Si en cambio utilizamos el ltimo caso, le ordenamos al motor girar en los dos sentidos a la vez. Como consecuencia de esto, el motor se para de forma inmediata y eficaz, pero parece claro que consumir mucha ms corriente, existiendo la posibilidad de quemar el circuito o el propio

2
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

motor en casos extremos. Adems, dado el aumento de consumo, reducir notablemente la duracin de las bateras. LA ETAPA DE POTENCIA: En nuestra placa est el circuito integrado L298. Este integrado contiene dos puentes en H y por tanto con l seremos capaces de manejar hasta dos motores. El motor, gracias a este integrado, podr ser alimentado a una tensin distinta de los 5V que emite el PIC, por lo que nos resuelve los problemas propuestos. Algunas notas importantes sobre estos integrados: NOTA 1: si vamos a utilizar una configuracin con un motor y un servo que lleve la direccin, nos vale con un integrado L293, que soporta hasta 1 Amperio y consume menos. NOTA 2: El L298 soporta hasta 2 Amperios de corriente, con lo que debemos tener mucho cuidado al elegir los motores, porque puede que consuman ms de estos 2 Amperios y no valdra este integrado, y tendramos que construirnos el circuito. Hay ejemplos en Internet. Es complicado, pero es una buena manera de aprender un montn de electrnica. Esquema del L298 donde se ven sus pines y los puentes en H:

3
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

Para aprender ms sobre este circuito integrado, se pueden ver sus hojas de caractersticas, en la web de Cybertech. Nuestra conclusin final, es que desde el micro tendremos que enviar tres seales a cada motor. Dos se enviarn al puente en H para regir el sentido de giro, y la ltima ser el tren de pulsos (seal PWM). SERVOS: Aunque no utilizaremos los servos en este taller, conviene que tengamos una idea general sobre ellos. Un servo es un motor de continua dotado de su propia electrnica. Tiene su propia etapa de potencia, por lo que no es necesario conectarlo a nuestro L298. Pero, como un motor que es, necesita recibir un tren de pulsos.

En un servo el tren de pulsos no rige la velocidad del servo, sino su posicin. Siempre se mueve a la misma velocidad pero, segn el ancho del pulso, girar un ngulo entre 0 y 180 grados, aunque depende del servo en cuestin: Duracin del pulso 1ms 1,5ms 2ms As pues, el servo posee tres cables: 1. Referencia de tensin (masa o tierra) que suele ser de color negro, 2. Alimentacin (generalmente 6V) de color rojo o naranja y 3. Cable de color blanco o amarillo por el que se enva el tren de pulsos. El perodo total del pulso (tiempo entre el inicio de un pulso y el siguiente) es vlido si se encuentra entre los 10 y los 30 ms, por lo que dependiendo del reloj del PIC quiz se pueda (o no) enviar el PWM directamente del micro (Ver ejemplo 3 de programacin en la web de Cybertech, que utiliza un CCP para un servo. Prximamente habr ms ejemplos para estos accionamientos). Conviene resaltar que el servo es un sistema realimentado: Es decir, conoce su posicin y la que debe ocupar, para tratar de reducir el error entre ellas. Si el servo recibe un tren de pulsos, permanece en el ngulo que ese tren de pulsos le fuerza a ocupar. Si una fuerza externa afecta al servo, ste la contrarresta para permanecer en la posicin que debe ocupar. Para ello, necesita consumir ms potencia, y aumenta la intensidad y el consumo. NOTA: Se puede trucar un servo consiguiendo que haga un giro completo y poder utilizarlo como motor. Existe un manual en la red de cmo trucar un servo. Tiene la ventaja de que no ngulo de giro 0 grados 90 grados 180 grados

4
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

necesita etapa de potencia ni reductora, aunque es una forma un poco cara de obtener un motor y suelen dar problemas porque dan mucho par y poca velocidad. 1.2. CONTROL DE MOTORES CON UN PWM: Ahora nos ponemos a trabajar. El PIC posee dos salidas que emiten PWMs. Estas son las patillas 16 y 17 del micro (CCP1 y CCP2). Regulando este ancho de pulso regularemos la velocidad del motor y necesitaremos dos seales ms para cada motor para el sentido de giro. En la placa de Cybertech 2006 las patillas del micro conectadas para regular el puente en H (L298) son: RC1, RC2 (patillas 16 y 17): CCP1 y CCP2 para pulsos PWM RD4, RD5 (patillas 27 y 28): entradas puente H motor 1 RD6, RD7 (patillas 29 y 30): entradas puente H motor 2

/***************PROGRAMA MOTORES******************/ /***************************************************************** *Este programa mueve el motor1 en un sentido de giro a casi mxima velocidad * *aunque se han incluido en comentarios las lneas de codigo para el motor 2, * *que se movera en sentido contrario al motor 1, a la misma velocidad * ******************************************************************/ #include <p18f442.h> #include <pwm.h> #include <timers.h> //definimos las variables de PWM y sentido de los motores #define motor1PWM PORTCbits.RC2 #define motor11 PORTDbits.RD5 #define motor12 PORTDbits.RD4 #define motor2PWM PORTCbits.RC1 #define motor21 PORTDbits.RD7 #define motor22 PORTDbits.RD6 void main(void) { //configuracin de los puertos, declarando como salida los pines necesarios TRISC = 0b11111001; TRISD = 0B00001111; // inicializo pwms con periodo mximo OpenPWM1(255); //OpenPWM2(255); // se inicializa el timer2, que es el correspondiente a las seales de PWM del micro OpenTimer2(TIMER_INT_OFF & T2_PS_1_1 & T2_POST_1_1); // se establecen los valores de los pwms SetDCPWM1(1000); //SetDCPWM2(1000); motor11=1; // sentido para el motor 1 motor12=0; //motor21=0; // sentido para el motor 2

5
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

//motor22=1; while (1) {} } /******************************************************************/


Comentarios: - Las patillas RC2 y RC1 son las del tren de pulsos y siempre son las mismas. Las patillas RD4, 5, 6, 7 se han seleccionado para el sentido de los motores. - Configuramos el puerto C y D. Mucho cuidado al configurar estos puertos. Las patillas RC1, RC2 se han de configurar siempre como salida si utilizamos dos motores. De igual forma, las patillas del puerto D que utilicemos para motores (depende si utilizamos o no dos motores) no se deben utilizar para otra cosa. - SetDCPWM(arg): el argumento de esta funcin es guardado en un registro de 10 bits, por lo que se debe introducir un valor entre 0(mnima velocidad) y 1023 (mxima). - OpenPWM1(char periodo) es una funcin de la librera pwm y se utiliza para configurar el canal. El periodo se calcula segn la frmula: PWM period = [(period ) + 1] x 4 x TOSC xTMR2 prescaler. - OpenTimer2( ) es una funcin de la librera timer necesaria para establecer el preescalado y el postescalado. - SetDCPWM1(unsigned int dutycycle) marca el ancho de pulso del PWM, es decir la velocidad del motor (valor entre 0 y 1000, aprox.) El trabajo ser que un motor permanezca a media velocidad unos segundos, pase a mxima velocidad durante el mismo tiempo y luego realice la misma secuencia en sentido opuesto. NOTA: si queremos ms PWM (por ejemplo para manejar servos) tendremos que hacerlo manualmente. Se publicarn ejemplos en la web sobre la programacin de PWMs artesanales que requieren manejo de interrupciones del micro. 2. SENSORES DIGITALES 2.1. TIPOS DE SENSORES: ANALGICOS VS. DIGITALES Sensores digitales son aquellos que tienen dos valores posibles (0 y 1) y sensores analgicos son los que pueden tener valores dentro de un rango. En este taller vamos a tratar los sensores digitales y en el siguiente nos ocuparemos de un sensor analgico de tipo infrarrojo. Evidentemente, el objetivo de estos talleres es una introduccin a los sensores ms bsicos y ms comunes de los minirobots, pero hay infinidad de sensores asequibles, de los que

6
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

podemos encontrar muchsima informacin y que muchas veces resolvern de manera ms inteligente los problemas a los que se enfrentar nuestro robot. Para hacernos a la idea, una clasificacin de sensores podra ser: - Sensores de Odometra(movimiento del vehculo): Encoders pticos Potencimetros - Sensores de Contacto: Interruptores Sensores de Presin - Sensores de Proximidad: Sensores de Infrarrojos Sensores de Ultrasonidos Cmaras - Sensores Especiales: Sensores de luz Brjula electrnica Detector de fuego Detector de humo Detector de temperatura Sensores de sonido - Sensores Propioceptivos Medidor de bateras 2.2. CONECTAR UN CNY 70 A UNA PUERTA SMITH TRIGGER El sensor CNY70 es un sensor de infrarrojos de corta distancia.

7
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

Tiene un emisor y un receptor. El led emisor enva un haz de infrarrojos que rebota y es recibido por el receptor. En funcin de lo que recibe podemos determinar el color de la superficie sobre la que ha rebotado.

El sensor CNY70 es analgico. Da un valor entre 0 y 5 voltios, siendo negro 3.3 V (absorbe toda la el rayo emitido) y blanco 0 V (refleja toda la luz). Por tanto, su salida depende mucho de una buena definicin del color y del tipo de superficie. Con una puerta inversora Smith Trigger (74HC14) podemos utilizar el CNY70 como digital, de manera que se consigue una seal ms limpia. Este integrado convierte los valores por debajo de un cierto umbral en un valor digital 0 V y los valores por encima de un umbral superior se convierten en 5 V. De esta manera, al micro le llegan valores digitales (0, 1). Adems esta puerta es inversora, con lo que a la salida del 74HC14 negro se corresponde con 0 digital y blanco con 1 digital. MONTAJE DEL SENSOR CNY70:

8
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

NOTA: sensor visto desde arriba. MONTAJE DE DOS SENSORES CNY70:

Se utiliza este montaje porque as se reduce el consumo de los sensores, es recomendable si vais a poner ms de tres sensores. Otra opcin sera poner una alimentacin independiente a la del micro.

9
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

MONTAJE DEL INTEGRADO 74HC14: El integrado 74HC14 tiene 14 patillas, de las cuales dos son para alimentacin y masa y las dems estn relacionadas dos a dos, teniendo capacidad para transformar seis seales analgicas en digitales. Las entradas desde el sensor (seal) estn marcadas por una A y las salidas hacia el micro por una V.

2.3. PROGRAMA QUE ENCIENDE UN LED CUANDO UN CNY70 LEA NEGRO.

/**PROGRAMA: ENCIENDE UN LED CUANDO UN SENSOR LEE NEGRO**/ #include <p18f442.h> #define LED PORTCbits.RC5 #define SENSOR PORTDbits.RD1 //el sensor debe enviar la seal al RD1 void main() { TRISD=255; //puerto D entrada (no habr motores enchufados en la placa) TRISC=0; //puerto C salida LED=1; while(1) { if(SENSOR==0) { LED=1; } else LED=0; } } /******************************************************************/
2.4 . PULSADORES. ENCENDER UN LED AL PULSAR. El pulsador es un sensor digital muy sencillo que cierra o abre un circuito al pulsarlo. Tiene muchas aplicaciones en minirobots, por ejemplo en la deteccin de obstculos. MONTAJE PULSADOR:

10
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

El montaje general, que suele funcionar, es:

De esta manera, si el interruptor no est pulsado (circuito abierto) la patilla del micro estar a 5V (1 digital) y cuando pulsamos, cerramos el circuito y en la seal que llega al micro es 0V (0 digital). MONTAJE 555: A veces es necesario filtrar la seal porque tiene rebotes. Para ello podemos utilizar un integrado 555 (os recomiendo utilizarlo slo en caso de tener problemas con el montaje general).

PROGRAMA QUE ENCIENDE UN LED AL PULSAR UN INTERRUPTOR. Conectamos el interruptor donde tenamos conectado el sensor CNY70 en el ejemplo anterior y nos vale el mismo cdigo.

11
Taller 3

UPM-DISAM

Cybertech 2008

UPM-DIE

2.5. PROGRAMA QUE UNE TODO LO APRENDIDO EN ESTE TALLER. Es importante realizar un programa que segn lo que lea un CNY mueva de distinta forma un motor. Por ejemplo, si el sensor lee negro que el motor cambie de sentido y/o velocidad de giro. Mucho cuidado con la configuracin de los puertos. Con lo aprendido en este taller ya podemos hacer que un robot siga una lnea negra. Ya tenemos un rastreador.

12
Taller 3

También podría gustarte