Contenido del curso

Actividad 16

 

Vamos a emplear un LDR para controlar la intensidad de un LED en función del nivel de luz que llegue a la fotorresistencia. Programaremos el Arduino para leer un valor analógico, que dependerá del valor del LDR, y mediante una PWM modificaremos el brillo del LED conectado.

Recuerda que necesitarás utilizar la función map().

El esquema planteado se puede ver a continuación:

 

const int LED = 9;  // Se define el pin del led
const int LDR = 0;  // Se define el pin del potenciometro
int val_led;        // Se crea variable para potencia del led

void setup() {
  Serial.begin(9600);    // Inicializar bus serial
  pinMode(LED, OUTPUT);  // configurar pin del led
}

void loop() {
  // Leemos e imprimimos el valor del LDR por bus serial
  Serial.print("\nValor del LDR: \t");
  Serial.println(analogRead(LDR));
  // Hacemos un cambio de escala del valor leido que tiene 10 bits al
  // valor que se va a escribir, que es de 8 bits
  // Además, para que ilumine más cuanto más oscuro se mida,
  // debemos partir del máximo valor del LED e ir restando
  // la lectura del LDR
  val_led = 255 - map(analogRead(LDR), 0, 1023, 0, 255);
  // Imprimimos el valor aplicado al led
  Serial.print("\nValor aplicado al LED: \t");
  Serial.print(val_led);
  // Se enciende el led con una PWM de un valor inverso
  analogWrite(LED, val_led);
}


Puedes descargar la solución pinchando en el siguiente icono:


Vistas
12 Número de vistas
12 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.