1 00:00:00,750 --> 00:00:07,809 Hola, en este vídeo os voy a explicar el trabajo que vais a tener que hacer para la siguiente tarea. 2 00:00:08,630 --> 00:00:15,269 La siguiente tarea en nuestro generador de funciones consiste en empezar a programar el encoder rotativo. 3 00:00:16,010 --> 00:00:21,730 El encoder rotativo nosotros lo vamos a utilizar para ajustar la frecuencia de salida de nuestro generador de funciones. 4 00:00:22,510 --> 00:00:26,050 Como sabemos, un encoder rotativo consta de dos partes. 5 00:00:26,050 --> 00:00:37,909 En primer lugar, tiene un pulsador que en esta tarea nosotros no la vamos a programar y que en nuestro modelo lo vamos a conectar de la siguiente manera. 6 00:00:38,030 --> 00:00:46,070 Lo vamos a conectar al pin data 8 de nuestra placa Arduino a través de una resistencia de pull-up a 5 voltios. 7 00:00:47,070 --> 00:00:49,810 Como os digo, esta parte no la vamos a programar en esta tarea. 8 00:00:50,710 --> 00:01:05,489 Por otra parte, el encoder rotativo consta de una parte giratoria con la que nosotros vamos a ajustar girando la frecuencia de tal manera que si giramos hacia la derecha la frecuencia va a aumentar, si giramos hacia la izquierda la frecuencia va a disminuir. 9 00:01:05,769 --> 00:01:19,510 De momento en esta tarea vamos a hacer que los incrementos sean de 1 en 1. En la siguiente tarea lo haremos para que en función de cómo tengamos pulsado ese incremento sea de 1 en 1, de 10 en 10, de 100 en 100, etc. 10 00:01:19,810 --> 00:01:32,170 Puesto que Proteus no tiene ningún modelo que nos permita simular un encoder rotativo completo, el movimiento de giro lo vamos a simular de la manera que vemos aquí. 11 00:01:32,170 --> 00:01:49,209 En primer lugar vamos a tener aquí un componente que se denomina motor encoder. Este componente, este elemento, este motor, lo que nos va a permitir, como os digo, es permitir que hagamos giros hacia la derecha o hacia la izquierda. 12 00:01:49,209 --> 00:02:02,129 El sentido de giro hacia la derecha y hacia la izquierda lo vamos a controlar por medio de estos dos conmutadores que están conectados a una pila de 1,5 voltios y con los que controlamos la polaridad con la que conectamos el motor. 13 00:02:03,870 --> 00:02:07,870 Con esto, como os digo, vamos a controlar el sentido del movimiento. 14 00:02:07,870 --> 00:02:17,870 Y por otro lado, con este otro conmutador de aquí, lo que vamos a determinar es cuándo iniciamos el movimiento o cuándo lo paramos. 15 00:02:17,870 --> 00:02:25,909 Es decir, por medio de este conmutador, cuando esto está a masa, vamos a simular que no estamos efectuando ningún giro en el encoder. 16 00:02:26,610 --> 00:02:33,949 Y cuando el conmutador lo tenemos en esta posición, vamos a simular justamente lo contrario, que estamos haciendo girar nuestro encoder. 17 00:02:35,210 --> 00:02:43,110 Este conmutador va a controlar estos dos buffers, 74 y 126, que serán los que conectaremos a nuestra plaquita de Arduino. 18 00:02:43,830 --> 00:02:47,530 Que van a ser el pin 3 y el pin 2. 19 00:02:47,870 --> 00:02:51,710 ¿Por qué estos pines? Porque estos pines son los que admiten interrupciones. 20 00:02:52,009 --> 00:02:57,590 Porque esto del encoder rotativo, la parte giratoria, la vamos a programar por medio de interrupciones. 21 00:02:58,129 --> 00:03:03,469 Acordaros que estuvimos haciendo una práctica en clase en la que estuvimos viendo cómo funcionaba todo esto. 22 00:03:03,789 --> 00:03:11,039 ¿Qué nos queda por comentar aquí en nuestro esquema? Pues este bloque de aquí. 23 00:03:11,340 --> 00:03:13,479 Esto de aquí. Mirad, esto es un terminal virtual. 24 00:03:13,479 --> 00:03:25,060 Esto lo vamos a conectar para poder ver en pantalla, en la simulación, si el encoder rotativo efectivamente nos está aumentando o nos está disminuyendo la frecuencia en función del sentido que giramos. 25 00:03:25,419 --> 00:03:35,699 Lo colocamos porque de momento en nuestra simulación no tenemos aquí un display LCD donde se nos vea. Eso ya lo programaremos más adelante. 26 00:03:36,539 --> 00:03:38,319 ¿Cómo se conecta este terminal virtual? 27 00:03:38,319 --> 00:03:57,199 Bueno, pues en primer lugar lo encontramos aquí en los componentes. Aquí tenemos un virtual terminal, lo conectamos y lo vamos a conectar a los pines 0 y 1 de forma cruzada, es decir, que el terminal RX tiene que ir al TX y el TX de Arduino tiene que ir al RX. 28 00:03:57,199 --> 00:04:05,580 Es decir, aquí nos va a aparecer una consola en la que vamos a ir viendo el valor que tenemos. 29 00:04:07,039 --> 00:04:16,139 Respecto al esquema, bueno, estáis viendo que aquí tendríamos nuestros tres diodos LED, que esto correspondería a la parte que ya habéis programado, la tarea anterior. 30 00:04:16,660 --> 00:04:25,720 Vamos a ir añadiendo, a medida que vayamos incorporando cosas, vamos a ir añadiendo al diseño que tenéis programado, pues las partes nuevas. 31 00:04:25,720 --> 00:04:32,620 bueno una vez que os he descrito un poco la estructura de esto vale vamos a empezar a ver 32 00:04:32,620 --> 00:04:38,379 ahora cómo funcionaría o qué es lo que quiero que haga el encoder para ello vamos a darle a 33 00:04:38,379 --> 00:04:44,720 la simulación ahora mismo esto estaría a cero es decir ahora mismo el encoder es como si estuviera 34 00:04:44,720 --> 00:04:51,920 parado y por lo tanto nos va a dar a la salida pues la frecuencia que tenemos por defecto que 35 00:04:51,920 --> 00:04:58,680 es un kiloherzio. ¿Veis? Ahora mismo la lectura estaría en un kiloherzio, mil hercios. No 36 00:04:58,680 --> 00:05:05,279 se mueve porque ahora mismo, al tener esto desactivado, nos estaría trasladando a movimiento 37 00:05:05,279 --> 00:05:12,339 del encoder. Si yo ahora este pulsador o este interruptor lo pongo a uno, ahora mismo estaríamos 38 00:05:12,339 --> 00:05:16,720 simulando un movimiento hacia la derecha. Entonces, ¿veis? Estáis viendo que ahora 39 00:05:16,720 --> 00:05:22,540 mismo, pues se iría incrementando la frecuencia en una unidad, es decir, estaríamos girando 40 00:05:22,540 --> 00:05:29,920 hacia la derecha. Si yo ahora este conmutador lo pongo a cero, volveríamos a detener el 41 00:05:29,920 --> 00:05:36,220 movimiento y se nos quedaría parada la frecuencia, pues en este caso en 1079. Si yo ahora quiero 42 00:05:36,220 --> 00:05:42,100 invertir el sentido de giro, es decir, vamos a simular que ahora estamos girando hacia 43 00:05:42,100 --> 00:05:56,040 a la izquierda, le damos aquí y ahora vemos que el cambio de frecuencia se haría hacia abajo, de uno en uno, y aquí lo detendríamos. 44 00:05:58,860 --> 00:06:07,800 Bien, bueno, esto sería el funcionamiento básico de la tarea que quiero que hagáis en este momento, ¿no? O sea, simplemente vamos a programar los giros 45 00:06:07,800 --> 00:06:12,839 y que haga incrementos y decrementos de uno en uno y que se haga por medio de interrupciones. 46 00:06:14,339 --> 00:06:23,139 Y para que se vea esto aquí, tendréis que utilizar la consola Serial y usar un Serial Print LN en el loop para irlo mostrando. 47 00:06:24,420 --> 00:06:29,959 Basaros para esto, como os digo, en el ejemplo que estuvimos haciendo en clase. 48 00:06:30,600 --> 00:06:33,920 Si tenéis cualquier duda, me comentáis. ¿De acuerdo? Venga, chao.