Video
A continuación, tenemos el video del circuito.
Circuito control brillo led
En este post trabajaremos con la lectura y escritura analógica en arduino, la cual consiste en obtener un valor tipo análogo, convertirlo a digital y realizar el proceso a la inversa.
Nos vamos a apoyar en arduino ya que cuanta con un componente de lectura analógica y las instrucciones necesaria para usar el PWM, el cual nos ayudaran con la conversión de digital a análogo.
Vamos a cambiar el brillo de un led para ilustrar el ejercicio, para ello, primero conozcamos las funciones analogRead()
y analogWrite()
.
Lectura analógica
Para realizar la lectura analógica vamos a usar la instrucción analogRead()
la cual lee el valor del pin analógico especificado[1]. Arduino contienen un convertidor de analógico a digital multicanal de 10 bits. Esto significa que mapeará voltajes de entrada entre 0 y el voltaje de operación (5V o 3.3V) en valores enteros entre 0 y 1023.
Para mas información en el post de analogRead()
podrás encontrar al detalle la función.
Escritura analógica
Para realizar la escritura analógica usaremos analogWrite()
, la cual escribe un valor tipo (onda PWM) en un pin[2]. Se puede usar para encender un LED a diferentes niveles de brillo o para conducir un motor a varias velocidades.
Para mas información en el post de analogWrite()
podrás encontrar al detalle la función.
Materiales
Los materiales son sencillos de conseguir, no se requiere gran cosa.
Material | Cantidad | Descripción |
---|---|---|
Arduino | 1 | Puede ser cualquiera, lo único es que tenga lectura analógica y uso del PWM |
Potenciómetro | 1 | Uno de 100KΩ es suficiente |
Led | 1 | Preferiblemente que sea de choro o que tenga buena iluminación |
Resistencia de 1KΩ | 1 | Para protección del led |
Conexión
A continuación mostraremos los planos usados en el circuito
Lo que estamos realizando es la conexión del potenciómetro al pin analógico A3, pudimos haber seleccionado cualquiera y conectamos el led en unos de los pines PWM que se identifican con el símbolo ~, en este caso el pin 9.
Código
A continuación explicamos el código que se realizo, tambien lo pueden encontrar como control brillo led en github.
// Paso 1
int ledPin = 9;
int analogPin = 3;
int val = 0;
// Paso 2
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// Paso 3
val = analogRead(analogPin);
// Paso 4
analogWrite(ledPin, val / 4);
}
- Declaramos las variables de los pines que vamos a usar, como lo vimos en la conexión.
- Declaramos como salida el pin del led con la función
pinMode()
. - Leemos el valor del pin con la función
analogRead()
. - Escribimos en el pin del led con
analogWrite()
, pero el valor que obtuvimos en val esta entre 0 a 1024, como se explica en la función deanalogRead()
, lo dividimos en 4 para que nos den valores entre 0 y 255, que son los recibidos en la escritura analógica.
Referencias
[1] arduino, https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ Consultado febrero 2019
[2] arduino , https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/ Consultado febrero 2019