En este tutorial enseñarnos como hacer una cajita del tesoro que en el día estará cerrada y en la noche se iluminará y se abrirá lentamente, esto se lograra mediante el uso de un sensor análogo que mide luz ambiental, el cual es capaz de detectar cuando la luz percibida es fuerte o tenue, al cambiar la intensidad de la luz, los valores de salida variaran. En la noche, a baja luz, activaremos un motor servo que rotará para abrir la caja y veremos cómo se ilumina también la caja.

Componentes necesarios:

  • 1×  Luz Digital Piranha LED
LED
  • 1x  Sensor de luz ambiental análogo
sensor de luz
  • 1x Servo Motor TowerPro SG
Servo
  • 1×  IO Expansion Shield
IO expander
  • 1× Kit Intel® Edison con tarjeta Arduino Breakout.
Edison

Pin Out de conexión:

  • Motor Servo TowerPro SG50          –> Pin digital 9
  • Luz Digital Piranha LED                  –> Pin digital 3
  • Sensor de luz ambiental análogo    –> Pin análogo 0
pinout

Código de programación Arduino:

#include <Servo.h>

Servo myservo;

int LED = 3;              //El número de Pin del LED

int val = 0;             //Variable para asignar el valor del sensor

int pos = 0;

int light =0;

void setup(){

// inicializa el pin digital como una salida.

pinMode(LED,OUTPUT);

//Inicializa la comunicación serial a 9600 bits por segundo

Serial.begin(9600);

// Define que el servo está en el Pin digital 9

myservo.attach(9);

// Define que el servo se inicie en 0°

myservo.write(0);

}

void loop(){

val = analogRead(0);     // Lee el valor del pin análogo “0”

Serial.println(val);    // Imprime en pantalla el valor análogo

//Si el valor es menor que 40, comienza a cambiar el ángulo.

if(val<40){

pos = pos +2;

if(pos >= 90){  //Al llegar a 90°, lo mantiene así

pos = 90;

}

//Le dice al servo que tome el grado de la variable pos

myservo.write(pos);

delay(100);

// Al aumentar el ángulo, aumenta el brillo del LED

light = map(pos,0,90,0,255);

analogWrite(LED,light);   //modifica el brillo

}else{

pos = pos -2;    //reduce el ángulo

if(pos <= 0){

pos = 0;       //reduce hasta 0 grados

}

myservo.write(pos);

delay(100);

light = map(pos,0,90,0,255);

analogWrite(LED,light);

}

}

Luego de que instales los componentes en una cajita, ponla en la oscuridad (el sensor de luz debe estar expuesto para detectar la luz ambiental) y prueba que la cajita se abra.