7.5 Reto A05. El potenciómetro Un potenciómetro es una resistencia cuyo valor es variable ya que son un tipo de resistencias especiales que tienen la capacidad de variar su valor cambiando de forma mecánica su posición. Con ellos indirectamente, se puede controlar la intensidad de corriente que fluye por un circuito si se conecta en paralelo, o  controlar el voltaje al conectarlo en serie. Son adecuados para su uso como elemento de control en los aparatos electrónicos como el control de volumen, brillo, etc. La placa Imagina TDR STEAM  tiene un potenciómetro denominado  Rotation  que van asociado al pin A0. Las entradas  Anúmero  son entradas  analógicas, así que empezamos con el uso de este tipo de entradas. Este potenciómetro permite realizar un giro de unos 270º entre topes (3/4 de vuelta). La diferencia entre un sensor  analógico  y  digital  es que mientras este último, el digital, sólo permite dos tipos de entradas, 0-1,  alto-bajo ,  high-low ,  on-off , un sensor analógico puede tener infinidad de valores. En Arduino, las entradas analógicas pueden tener 210 valores (10 bits de resolución), es decir, valores comprendidos entre 0 y 1023. En el menú de sensores de ArduinoBlocks, disponemos de un bloque  específico para realizar programas utilizando el potenciómetro de nuestra placa. En el desplegable del bloque del sensor, podemos elegir su lectura en porcentaje (%) o en valor (de 0 a 1023). 7.5.1 Lectura de valores con el puerto serie Para realizar una lectura de los valores del sensor es necesario utilizar la  Consola  (lector de datos por el puerto serie) que nos ofrece ArduinoBlocks, vamos a ver como se hace. En primer lugar, generamos una variable a la que llamaremos  pot . Para cambiar el nombre de la variable pulsaremos sobre el menú desplegable del bloque de la variable y elegiremos  Variable nueva…  nos aparecerá una ventana en la que escribiremos el nuevo nombre y daremos a Aceptar . Ahora fijaremos el valor de la variable al valor del potenciómetro, tal y como está en la imagen. Es importante establecer la variable con el valor del potenciómetro dentro  de  Bucle , ya que si sólo se hace en  Inicializar  el valor siempre será el mismo a lo largo de todo el programa. En otras ocasiones interesa establecer las variables en el inicio, pero no es este el caso. Continuando con el programa, ahora nos faltan los bloques del  Puerto Serie . El primero que debemos utilizar es el Iniciar Baudios 9.600  que siempre lo colocaremos en el Inicio y después el bloque Enviar. Observa cómo queda el programa resultante: Sube ahora el programa y después pulsa sobre el botón de la  Consola .  Se abrirá la siguiente ventana y pulsaremos sobre el botón conectar. De esta manera podremos ver cada medio segundo el valor de nuestro potenciómetro. Gira el potenciómetro y observa cómo van cambiando los valores. Actividad de ampliación: prueba ahora quitando el tic de  Salto de línea  a ver qué sucede. 7.5.2 Ajuste de valores de entrada y salida: mapear Existe un pequeño “problema” entre las entradas y las salidas en Arduino. Las entradas trabajan con 10 bits (210 valores = 0 a 1023) y las salidas trabajan a 8 bits (28 valores = 0 a 255). Debido a esto, debemos realizar un cambio de escala. A este cambio de escala se le llama “mapear”. En el menú  Matemáticas  existe un bloque llamado  mapear . Este bloque permite modificar el rango de un valor o variable desde un rango origen a un rango destino. Esta función es especialmente útil para adaptar los valores leídos de sensores o para adaptar valores a aplicar en un actuador. En esta actividad vamos a imaginar que con el potenciómetro queremos definir un rango de valores entre 0 a 255. Para ello definiremos una variable, llamada  consigna , que será el valor  mapeado  del potenciómetro. En el potenciómetro cambiaremos su opción para obtener datos 0...1023. Continuando el programa para poder realizar lecturas por el puerto serie utilizaremos un nuevo bloque de  crear texto con... . Fíjate como al pulsar sobre el símbolo del mecanismo podemos ampliar las líneas añadiendo  varNum  a la parte derecha. El programa resultante quedará de la siguiente forma:  Por último, carga el programa, abre la  Consola  y comprueba las lecturas moviendo el potenciómetro. Actividad de ampliación: cambia ahora el rango de salida y el texto que envía por el puerto serie. 7.5.3 Control del led RGB con el potenciómetro En la siguiente actividad vamos a controlar los colores del led RGB utilizando el potenciómetro. Vamos a hacer que cambie de color según varíe el valor del potenciómetro. Es decir, cuando el valor del potenciómetro se encuentre entre 0 y 100 que el color del led sea rojo, cuando se encuentre entre 101 y 200 que sea verde y cuando esté entre 201 y 255 que sea azul. Del menú  Lógica  vamos a necesitar dos nuevos bloques; el bloque de  Evaluar condición  y el bloque de  Conjunción/Disyunción . Con ellos crearemos estas condiciones: Deberemos crear tres estructuras para hacer los tres rangos. El programa quedaría como muestra la imagen:  También se puede hacer el mismo programa de la siguiente forma: Actividad de ampliación: completa el programa con más condiciones.