 Bienvenidos a este recurso del mes de CodeInterf. Soy David Guardias, cofundador de Arduino y estoy dándose unas pequeñas charlas sobre cómo utilizar Arduino para introducirlos al mundo de electrónica digital. Estamos trabajando con Arduino 1, que es esta placa de aquí, y lo que vamos a ver ahora es cómo trabajar con entradas analógicas. Dentro del chip que hace las operaciones en Arduino 1 hay un pequeño conversor que convierte voltajes analógicos en voltajes digitales. Bueno, eso no es exactamente así, lo que hace es que convierte el voltaje analógico que va de 0 a 5 voltios en un número que podemos semplar dentro de nuestro programa. Veamos cómo es esto. A la entrada tenemos un voltaje que va de 0 a 5 voltios. Puede darnos, por ejemplo, un sensor de temperatura y tenemos un poco tosco, pero es un termómetro de toda la vida. Y esto nos sería un voltaje que podríamos medir a la entrada de Arduino. Lo que hace este conversor, que se llama conversor analógico digital o ADC en sus siglas en inglés, es darnos una correspondencia numérica en la que 0 voltios se convierte en el número 0 y 5 voltios se convierte en el número 1023. Es decir, hace una conversión de 10 bits de un valor analógico en un valor digital. Este número, que nos dará el resultado del ADC, es algo que podemos emplear dentro de nuestros programas para modificar, por ejemplo, la intensidad de la luz, la velocidad de un motor o, sencillamente, enviarlos a todos de vuelta al ordenador. Voy a hacer un pequeño ejemplo en el que emplearé un potenciómetro, que es este sensor de aquí, y lo emplearé para medir el ángulo al que lo hemos rotado. Un potenciómetro es un sensor de sencillo que lo que hace es variar el voltaje en una pata en función de los voltajes que tienen sus otros dos patas. Voy a dibujar un potenciómetro aquí, en el papel, aquí lo veis, tiene tres patas y tiene un eje que puede girar en dos direcciones. Puede tener topes o no, dependía de la construcción mecánica. Y lo que hace dentro del potenciómetro es que al ponerle un voltaje entre sus patas externas, 0 voltios, y en nuestro caso, 5 voltios, la otra pata nos dará un valor entre estos dos voltajes que corresponderá con el ángulo de giro del eje del sensor. Es decir, que con girar este eje de aquí tendremos un valor que valdrá de 0 a 5 voltios. Conectemoslo. Un consejo de amigo, y es decir, cuando conectes el sensor potenciómetro os fijáis bien en los pines. Este es el único sensor que podéis quemar, así a lo tonto, por conectarlo de forma equivocada. Es muy importante, de nuevo como este, que sepáis cuáles son los extremos del sensor y cuáles es el que nos da la información en concreto, que en este caso es el central, porque si los conectáis mal, al girar el sensor en una dirección en concreto, haréis un cortocircuito entre 5 voltios y tierra y eso hará que se queme el material del que está hecho el potenciómetro. Entonces, lo importante, insisto, va a ser que en un extremo conectemos 5 voltios, aquí va 5 voltios, en el extremo conectemos 0 voltios, aquí va los 0 voltios, y en el centro la señal. No puedo garantizaros que, si es lo que tengáis en vuestra mano, funciona exactamente igual que éste, pero es muy posible que sí. Si volvemos a lo que sería el pinao de la placa Arduino, vemos que hay una serie de pines dentro de la placa, que están situados aquí abajo, que están marcados con la letra A y un número. Ellos son los únicos pines dentro de la placa que están conectados al conversor analógico-digital. No todos los pines de Arduino tienen la capacidad de poder leer una señal analógica. De esa manera, en mi caso, tengo que conectar mis 0 voltios aquí, mis 5 voltios, aquí arriba, y la señal analógica la voy a conectar al pin que está marcado con la letra Acer. El objetivo de mi experimento va a ser poder medir el ángulo de giro de esto y el número que me de, lo voy a mandar de vuelta al ordenador. Voy a inicializar la comunicación entre la placa Arduino y el ordenador con una librería que se llama la librería serial. Conecto Arduino, vemos que funciona bien. El led verde se enciende, si hubiera un cortocircuito, el led verde se apagaría y en ese caso, yo lo querías echará rápidamente mi Arduino del USB para buscar dónde me equivoqué en el cableado de mi circuito. El hecho de que se apague el led no quiere decir que ya se ha quemado la placa, quiere decir que en ese momento ha habido un cortocircuito. Las placas Arduino, concreto que estas tienen este chip de aquí arriba, es un polifusible, que lo que hace es permitir que puedas hacer cortocircutos en tu placa un número casi infinito de veces y evitará que se queme la placa. Antes se quemará tu sensor que tu placa. Bien, volvemos al software, empezamos un programa nuevo y hay que hacer varias cosas. Por una parte, tenemos que decir que vamos a emplear la librería de comunicación serial que se hace así poniendo serial.begin y se pone una velocidad de comunicación entre paréntesis. La velocidad de comunicación es algo que siempre trae a la gente un poquito de cabeza porque los números son un poco raros, ¿no? La velocidad de comunicación estándar es 9600. Y eso quiere una razón histórica. Cuando los primeros heredadores comunicaron entre sí, recibió una velocidad de 300 bits por segundo y cada vez que mejoraban la velocidad de comunicación, la hacían multiplicando por 2 la velocidad anterior. Entonces fueron 300, 600, 1200, 2400, 4800, 9600. Ahí lo veis. 9600 se convirtió desde los años 80 en la velocidad más rápida que podíamos comunicar diferentes aparatos sencillos con un ordenador. Pues bien, 9600 es la velocidad que hemos elegido y lo que vamos a hacer es enviar de vuelta el ordenador la información que estamos leyendo. O sea, tenemos serial.println, esto indica que además de enviar la información envíe un fin de línea, entonces envíe un número y luego saltear a la siguiente línea y haremos analog read A0, porque A0 es el pin en el que hemos conectado nuestro sensor. Ahora, otro consejo. Cuando estéis enviando datos de vuestra placa hacia el ordenador, no solamente envíe datos, envíe datos a una cadencia determinada para no saturar el puerto de comunicación. Por eso es recomendable cuando envíe datos pongáis un delay. Voy a enviar datos una vez cada cinco veces por segundo. Se abundería 200 y se envía datos cinco veces por segundo. Envío esto a mi placa. Tuve que grabar el programa, intef, analog in, guardar. Y ahora lo que voy a hacer es abrir el monitor del puerto, sería para ver cómo al girar el potenciómetro cambian los datos. Veréis que ahora mismo aquí una luz que se ha quedado encendido. Es algo que está encendido, marca Tx. Tx quiere decir que estamos enviando datos hacia el ordenador. Es lo que acabamos de hacer. Nuestro programa es solamente enviar datos y nadie los está leyendo, con lo cual la luz, llega a un momento en que se satura y se queda encendido. Hablo del monitor del puerto serie y ahora veis cómo están entrando datos en mi pantalla y veis que estoy leyendo 780 y tantos. Cuando gire el potenciómetro, conseguirá llegar hasta el máximo 1023 y lo gire en la dirección contraria y bajará hasta el mínimo 0. Cuando yo no muevo, cambiará los datos. Pues bien, este es solamente uno de los muchos sencillos que nos podemos encontrar.