Utilizar un potenciómetro en Arduino sin lloros ni nada
Me he dado cuenta que tenía un potenciómetro (probablemente no tengas ni pajuel de que es) y digo, algo simple que se podría hacer es una de esas luces que se regulan en algunas casas. Así que ahí vamos. Supongo que recordarás cómo se conecta un led y que siempre hay que acompañarlos con una resistencia si no quieres que eso acabe oliendo a chamusquina.
Bueno, le damos a los ingredientes que me lío y no empezamos:
Un potenciómetro es una resistencia. La diferencia es que si te fijas, el agujero ese permite insertar un destornillador y variar la resistencia. Es decir un potenciómetro de 2K puede variar de 0 a 2K Ohms. ¿Qué qué es eso de los Ohms? Ná, la unidad de medida de las resistencias. Si tenemos 1000 Ohms utilizamos la K. Por ejemplo, una resistencia bastante común es 4K7, que en realidad son 4.700 Ohms pero los rufianes tendemos a ser vagos hasta la médula.
Utilizar un potenciómetro en Arduino para novatos
Bueno, lo que voy a intentar es modificar la intensidad del led según varía la resistencia del potenciómetro. La primera forma es la facilita. Soy un cobarde y no me voy a arriesgar a quemar otro led por lo que conectaré el led a un pin digital de Arduino, que ellos ya se han encargado de hacer que no pete.
Ahora vienen los cálculos. Para poder representar en nuestras 256 posibilidades que tiene el led las posibilidades de la lectura analógica hay que conocer la resolución de lectura. Esto es el número de posiciones. Si lo intentas manualmente, probando a girar el potenciómetro te saldrá desde 0 hasta un número cercano a 1000. Buscando en la referencia del AnalogRead de Arduino verás que va de 0 a 1023, tiene 1024 unidades. Si te acuerdas del cole sabrás que es esto:
Que no es más que una regla de tres. Dónde valor es el valor analógico que recogemos de la lectura y que va de 0 a 1023 y x es el valor que queremos conocer para metérselo al led y que irá de 0 a 255. Y eso es lo que metemos en el programa:
void setup() { pinMode(13,OUTPUT); } void loop() { analogWrite(13,analogRead(A5)/4); /*255/1023 es aproximadamente 0.25*/ }
Muy sencillito el código de hoy,¿no? Primera línea, llamo al pin 13 como salida (recuerda que los analógicos sólo son de entrada y no se definen) y luego lo que hago es escribir en el pin 13 (dónde tenemos el led) el valor que se lee por el pin analógico 5 multiplicado por 255 y dividido entre 1023. Esta multiplicación y división sale de multiplicar en cruz y dividir el valor opuesto a la x de la regla de tres. Fácil.
Un apunte, lo de A5 es que yo soy un maniático y me gusta dejar claro que es un pin analógico pero si pones un 5 también vale ya que…sólo se puede hacer una lectura analógica de los pines analógicos, la función AnalogRead solo te deja poner un valor de 0 a 5 😉
¿Qué tal si le damos un poco de vidilla a esto?
Pero bueno, hasta ahora he sido bastante conservador. He tomado la decisión cobarde. Arduino es el que se encarga de todo y yo no hago nada. Lo suyo sería que el valor de el potenciómetro me hiciese variar la corriente y me variase la luz. El único riesgo: que se queme el led. Pero eso sabemos que se soluciona con una resistencia. ¿Cuál?
Te invito a calcularlo. Lo primero que tienes es que imaginarte el circuito:
Ahora vamos con las leyes de Kirchoff. Tan sólo hay dos, y en concreto la segunda dice que el potencial total será la suma de potenciales. Entonces, en nuestro ejemplo vamos al grano:
Lo que he hecho es coger el circuito. Primero va de 5 Voltios al led. Luego el led se engancha en serie con la resistencia y ésta en serie con el potenciómetro y el potenciómetro ya va a GND. Entonces lo que hago es sumar los potenciales de los 3 elementos y decir que son el potencial final. Yo he ido de 5 Voltios a 0 Voltios por lo que el voltaje será
.Vale, ahora recuerda que el potenciómetro es una resistencia, lo único es que varía por lo que si no te importa voy a unir la caída de voltaje de la resistencia y la del potenciómetro.
Y si haces un poco de memoria, V=R.I así que…se me queda algo así:
¿Lo pillas? Ahora ya viene la magia. Te he dicho que el voltaje era de 5 Voltios. Ahora te digo que el de un led podría estar alrededor de los 1.5 Voltios y también te digo que una intensidad adecuada para que no pete el led serían unos 15mA. Esto no es que yo sea un genio (que ya te digo que no lo soy) sino que lo saco de datasheets (documentos con la información de los componentes, cómo las hojas de montaje de Ikea vaya). Son valores aproximados pero ya te digo yo que lo estoy calculando a groso modo, no te preocupes que no se te quema el led con estos cálculos tan conservadores (en el fondo soy buencha y todo).
Así que nada, sustituyo los valores a ver qué queda:
Pasa restando esos 1.5V a la otra parte y tienes:
Ahora pasas dividiendo los 15mA para obtener el valor mínimo de Resistencia válida para el circuito. El valor son:
Cómo ya sabrás, no existen resistencias de todo tipo así que hay que buscar, entre todas las que hay en el mercado, una superior a este valor. A esto se llama resistencias normalizadas. El valor superior a éste será el de 270 Ohms. Te dejo deberes: si quieres, puedes calcular la intensidad y verás que con la resistencia elegida de 270 Ohms es menor que el máximo que le habíamos puesto.
Truco de rufián: La intensidad está en miliAmperios por lo que si hacemos la división directamente el resultado nos dará en kOhms. Así te ahorras dividir por mil el 15 que te quedan demasiados ceros a la izquierda y eso marea.
Ahora, tu potenciómetro puede ser de muchos valores y estoy seguro que es superior a 270 Ohms, vamos que no tendrías problema en no poner la resistencia y meter directamente el potenciómetro. Yo lo que pasa es que soy un cagao, y prefiero perder un poco de luminosidad siempre que estar al tanto de si me paso bajando el potenciómetro. De esta manera cuando el potenciómetro me da 0 Ohms pues tengo los 270 Ohms protegiéndome.
En fin..
Has visto cómo calcular valores de resistencias y cómo utilizar un potenciómetro. Me ha quedado decirte que el potenciómetro tiene una pata en GND, la del otro extremo en el positivo (en nuestro caso 5 Voltios) y que la del medio es la salida. Si mides la resistencia por patas verás que lo que gana de resistencia la pata 1 y 2 es lo que pierde la 2 y la 3.
Si giras mucho para un lado el potenciómetro, la resistencia variará para acercarse a un valor de 0 Ohms o uno alto. Y esto es lo que hace que pase más o menos corriente y que el led brille más o menos. Además has visto que en el segundo caso no hay código que valga: Se conecta el circuito a 5V y a GND y ya..a tocar la ruedecita.
Espero que esto te haya servido y ya sabes: Nos vemos en los comentarios de ahí abajo, ¡rufián!
Información básica sobre Proteción de datos
Responsable ➥ Sergio Luján Cuenca
Finalidad ➥ Gestionar el envío de correos electrónicos con artículos, noticias y publicidad. Todo relacionado con los temas de rufianenlared.com
Legitimación ➥ Consentimiento del interesado
Destinatarios ➥ Estos datos se comunicarán a MailRelay para gestionar el envío de los correos electrónicos
Derechos ➥ Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad
Plazo de conservación de los datos ➥ Hasta que se solicite la supresión por parte del interesado
Información adicional ➥ Puedes encontrarla en la política de privacidad y el aviso legal