De conformidad con el Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo de 27 de abril de 2016 relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos y (Reglamento General de Protección de Datos) ofrecemos la posibilidad de aceptar o no el uso de cookies mientras navega por nuestro sitio web. Puede obtener más información en nuestra web
El espacio exclusivo de robótica educativa
Todo sobre productos Mobile, Connect, Outdoor y Robótica Educativa
Proyecto 2 Build & Code: control de brillo de led
Published in Robótica - 28 Abril 2017

Ejercicio:


Construye y programa un circuito para controlar el brillo de un LED en función de la posición de un potenciómetro. Un LED es un diodo, que además de dejar pasar la electricidad en un único sentido, emite luz de un color determinado cuando la electricidad circula por él.


Material:


  • 1 — LED
  • 1 — Resistencia 220
  • 1 — Potenciómetro
  • 1 — Placa Build&Code UNO
  • 1 — ProtoBoard

¿Qué es un LED?


Un LED es un Diodo Emisor de Luz (Light Emitting Diode), y como todo diodo tiene un ánodo y un cátodo, siendo el ánodo el positivo y el cátodo el negativo. El cátodo se diferencia del ánodo mirando las 2 patas metálicas, la más larga es el ánodo y la más corta el cátodo. La electricidad sólo puede circular a través de él en una única dirección, de ánodo a cátodo, y para ello se ha de cumplir que el voltaje sea mayor en el ánodo que en el cátodo.



Circuito:


La placa protoboard recibe la electricidad del pin de 5V de Build&Code UNO y vuelve de la protoboard a la Build&Code UNO a través del pin GND (tierra). Todos los GND del circuito debes conectarlos entre sí para que todos tengan el mismo valor de GND. Conecta el pin central de tu sensor, el potenciómetro, a un pin analógico, ya que el potenciómetro es un sensor analógico y el LED debes conectarlo a un pin digital PWM que será el encargado de hacerlo brillar más o menos en función de la lectura recibida del sensor.



El color negro es el GND, donde todos los Grounds de cada componente están conectados entre sí y al GND de la placa.


El color rojo son los 5V, que alimentan tanto el servomotor como el potenciómetro.


El LED se conecta con un cable azul al pin digital PWM 5.


Y del potenciómetro sale un cable azul claro al pin analógico A0, este cable suministra la información del potenciómetro a la placa para hacer las lecturas del sensor.


Programa en código Arduino


Realizarás un programa que estará constantemente leyendo la información del potenciómetro. En función de la lectura que mida el sensor, harás que brille más o menos el LED.


El potenciómetro hará lecturas de 0 a 1023, en función de cuanto hayas hechos girarlo.


El pin digital PWM estará trabajando como un pin de salida, pero en vez de dar un valor alto o bajo de manera constante, éste puede hacer cambios muy rápidos de valores para jugar con valores medios, lo cual permite emitir distintos niveles de brillo.


Es decir, que si en 1 segundo el LED se enciende y apaga 100 veces, y está el mismo tiempo encendido que apagado (50 veces encendido y 50 veces apagado), nuestro ojo verá el LED con un brillo equivalente a una potencia del 50% del total, mientras que si estuviese mucho más tiempo apagado que encendido nuestro ojo detectaría un brillo muy leve en el LED.


El PWM tiene una resolución de 256 estados, va desde 0 a 255. Si escribes un 15, apenas se encenderá, ya que estará más tiempo apagado que encendido, si escribes un 127, lo verás brillar con el 50% de la potencia máxima, ya que estará el 50% del tiempo encendido y el otro 50 apagado y si le escribes un valor de 250 prácticamente lo verás como si brillara al 100%.


Para relacionar la entrada analógica del potenciómetro y la del pin digital PWM, hay que dividir los 2 valores máximos:



Esto quiere decir que si divides los valores del sensor entre 4 estarás haciendo un relación lineal entre el giro del potenciómetro y el brillo del LED.


int entrada = A0; //Declaramos la entradas analógicas A0

int LEDR = 9;  //Declaramos el pin digital 9 como salidas digitales PWM

int valor=0; //creamos una variable valor de tipo entero para almacenar los valores de las lecturas analógicas

void setup ()
{ 
 pinMode(LEDR,OUTPUT); // Definimos el pin digital será de salida
}

void loop()
{

 int valor = analogRead(entrada); // lee el valor del potenciómetro


 analogWrite(LEDR, valor/4); // Como las entradas analógicas tienen una resolución máxima de 1024 estados y el PWM tiene una resolución de 256, tendremos que dividir el valor de la entrada
 //analógica entre 4 para hacer proporcional la lectura de la entrada analógica con la intensidad de salida de la salida digital PWM
}

Código en mBlock:


También puedes ver:

Escribe un comentario
* Campos obligatorios