Controla un LED con precisión y sin complicaciones: aquí verás cómo un potenciómetro (resistencia variable) se conecta a Arduino para generar voltaje variable y leerlo por una entrada analógica. Con esa lectura, harás que el LED parpadee más rápido o más lento usando analogRead, digitalWrite y delay.
¿Qué es y cómo se conecta un potenciómetro en Arduino?
Un potenciómetro permite obtener una salida de voltaje variable desde el pin central, mientras los extremos van a 5 volts y GND. Ese voltaje se comporta igual que el de muchos sensores analógicos (temperatura, distancia), ideal para practicar entradas analógicas.
Extremo 1 a 5V desde la sección power de Arduino, cable rojo.
Extremo 2 a GND, cable oscuro (azul en el ejemplo).
Pin central a A0, cable amarillo.
Tip: asegúrate de buena conexión o podrías dañar el potenciómetro.
Además, conecta el LED al pin 3 y su parte negativa a GND. Así verás el efecto del valor analógico en el parpadeo.
¿Cómo cablear con protoboard sin errores?
Coloca el potenciómetro accesible en la protoboard.
Verifica continuidad de las líneas de 5V y GND.
Evita invertir extremos: positivo en un lado, negativo en el otro.
¿Cómo leer una entrada analógica y variar el parpadeo?
El objetivo es leer A0 y usar ese valor para cambiar el tiempo de delay. Así, el LED parpadea según la posición del potenciómetro.
Declara pines y variables: LED en pin 3, potenciómetro en A0, y una variable para el valor leído.
Configura el LED como salida en setup con pinMode.
Lee el potenciómetro en loop con analogRead y aplica el valor al delay.
Código base (Arduino/C++):
int ledRosa =3;// LED en pin 3int potPin = A0;// potenciómetro en A0int potValue =0;// valor leídovoidsetup(){pinMode(ledRosa, OUTPUT);// salida digital}voidloop(){ potValue =analogRead(potPin);// lectura analógica (0–1023)digitalWrite(ledRosa, HIGH);// enciende LEDdelay(potValue);// tiempo variabledigitalWrite(ledRosa, LOW);// apaga LEDdelay(potValue);// tiempo variable}
analogRead devuelve un entero entre 0 y 1023 (dependiendo de la posición del potenciómetro).
digitalWrite controla el estado del LED con HIGH y LOW.
delay recibe milisegundos: más valor, parpadeo más lento; menos valor, parpadeo más rápido.
Tip: al escribir código desde laptop, usar teclado en inglés facilita caracteres y sintaxis.
¿Qué pasos de verificación conviene seguir?
Compila y sube el sketch a la placa (el ejemplo reportó 3 % de uso de programa).
Ajusta el potenciómetro y observa el cambio de frecuencia del LED.
Si el parpadeo se vuelve imperceptible, es porque el delay es muy bajo.
¿Qué habilidades y conceptos prácticos se aplican en este proyecto?
Este ejercicio consolida varias habilidades de electrónica y programación con Arduino.
Identificación de un potenciómetro como resistencia variable de 10 kΩ.
Uso de entradas analógicas para leer voltaje variable desde A0.
Configuración de salidas digitales con pinMode y digitalWrite.
Manipulación de tiempos con delay según un valor dinámico.
Declaración y uso de variables: int ledRosa, int potPin, int potValue.
Estructura de programa con setup y loop.
Buenas prácticas de cableado en protoboard y prevención de fallos.
¿Te gustaría extenderlo con un monitoreo en tiempo real del valor leído en A0 usando el monitor serial? Comenta cómo quieres visualizar los datos y seguimos con la implementación.
Uso del Potenciómetro para Control de LED con Arduino
Uso del Potenciómetro para Control de LED con Arduino
ENTRADAS ANALÓGICAS Y DIGITALES
digitales ->Las entradas digitales del arduino uno son las correspondientes a los pines que van del 1 al 13. Se diferencian de las analógicas porque éstas son capaces de “entender” sólo dos niveles de señal, LOW o valores cercanos a 0 V y HIGH o valores cercanos a 5 V.
analógicas -> Las entradas analógicas del arduino Uno son las correspondientes a los pines de A0 a A5. Se caracterizan por leer valores de tensión de 0 a 5 Voltios con una resolución de 1024 (10 bits). Si dividimos 5 entre 1024 tenemos que ser capaz de detectar variaciones en el nivel de la señal de entrada de casi 5 mV.
Código del ejercicio
int led =3;int potPin =A0;//declaracion de pin analogico int potValue =0;//declaramos una variable para guardar el valor del potenciometrovoidsetup(){pinMode(led,OUTPUT);//declaramos el led como salida}voidloop(){potValue =analogRead(potPin);//almacenamos el valor del pin analogico de nuestro potenciometrodigitalWrite(led,HIGH);//encendemos el leddelay(potValue);//damos un delay igual al valor recibido por nuestro potenciometrodigitalWrite(led,LOW);//apagamos el leddelay(potValue);//asingamos un delay igual alvalor recibido por nuestro potenciometro}
Solo para que quede más visible como se conectan los pines del potenciometro.
En el pin 1 va la tierra GND
En el pin 2 es la entrada de voltaje
En el pin 3 es la salida de voltaje modificado que va a nuestra entrada análoga del Arduino
te tengo que decir que la imagen esta mal podia haber sido asi con otros potenciometros que son mas precisos pero con mi potenciometro que es el mismo mostrado en la imagen mi potenciometro se quemo y ademas si buscas el pinout del potenciometro te sale otra cosa
¿Dónde está la lectura que explica como bajar e instalar librerías? En la clase anterior el profesor mencionó que la íbamos a encontrar a continuación del video, pero yo no encuentro nada aquí. ¿Me podría orientar, por favor? Muchas gracias.
A mi cada proyectico me gusta hacerle su diagrama en fritzing, exportar una imagen png para que lo puedan ver los que no usan fritzing
, su código fuente para el ide de arduino y subirlo todo junto en una carpeta a github (subo todos mis proyectos, por más pequeños que sean, es preferible tener un github con algunas cosas a querer tener sólo cosas super pro y no subir nada por no haberlo logrado aun) 😃 y acá en mi github
Para cambiar el estado de una variable de HIGH a LOW; o de true a false y viceversa. Así pueden usar una variable para cambiar el estado y usar un solo delay. Se puede usar para otras cosas también.
const int led1 =3;const int potPin =A0;int potValue =0;boolean ledState =true;voidsetup(){// put your setup code here, to run once:pinMode(led1,OUTPUT);}voidloop(){// put your main code here, to run repeatedly: potValue =analogRead(potPin); ledState =!ledState;digitalWrite(led1, ledState);delay(potValue);}
pueden ser 3 cosas
1 - no tienes conectado tu arduino
2 - no tienes bien configurada la conexión con tu arduino
3 - no tienes configurado en el programa que arduino esstas usando
las 3 cosas se solucionan en herramientas, donde dice placa: selecciona el arduino que estas usando, me supongo que como todos estas usando el Arduino UNO, aunque puede que uses otros, la otra es configurar el puerto CON EL ARDUINO CONECTADO selecciona el arduino y listo, si nada de esto funciona quizás tu placa de arduino esta defectuosa
Es medio feito trabajar en el IDE de Arduino la verdad. Está la alternativa de utilizar CLion, un IDE de Jetbrains para trabajar con C, C++ y, por consecuencia, Arduino. En tiempo real indica los typos y tiene un mejor uso de file system que el IDE que se usa en las clases. Se los recomiendo :D