domingo, 30 de mayo de 2010

Sensor luz Arduino

Es sencillo, montamos el siguiente circuito, la resistencia es de 10k:


Y el código utilizado es el siguiente:


int valor=1;
int anterior=0;

void setup(){
pinMode(13,OUTPUT);
Serial.begin(9600);
}

void loop(){
valor=analogRead(0);
if(valor!=anterior){
Serial.println(valor);
}
anterior=valor;
}

1 comentario:

  1. tengo este codigo pero no me funciona ya que pone que si recibe toda la luz se enciendan todas las bombillas pero cuando lo tapo no deberia de encenderse ninguna sin embargo las led siguen encendidas podrias ayudarme?


    int valorEntrada = 0; // Variable donde ponemos el valor de la luz
    int estado_leds = 0; // Variable donde ponemos el estado de los leds segun intensidad luz

    // Seteamos puertos como salida para leds + entrada para el sensor
    void setup() {
    pinMode(13,OUTPUT);
    pinMode(12,OUTPUT);
    pinMode(11,OUTPUT);
    pinMode(A0,INPUT);
    }

    void loop() {
    valorEntrada = analogRead (A0); // Leemos sensor de luz
    // Nos da un numero de entre 0 y 1024
    // proporcional a la intesidad de luz
    estado_leds = (5 * valorEntrada)/1024; // Esta funcion nos da un numero del 0 al 5 (El 5 no se utiliza)
    // proporcional a la intesidad de luz
    // obtenida anteriormente

    if (estado_leds == 0) {
    digitalWrite (13, LOW);
    digitalWrite (12, LOW);
    digitalWrite (11, LOW);
    }

    if (estado_leds == 1) {
    digitalWrite (13, LOW);
    digitalWrite (12, LOW);
    digitalWrite (11, HIGH);
    }

    if (estado_leds == 2) {
    digitalWrite (13, HIGH);
    digitalWrite (12, LOW);
    digitalWrite (11, LOW);
    }

    if (estado_leds == 3) {
    digitalWrite (13, HIGH);
    digitalWrite (12, HIGH);
    digitalWrite (11, LOW);
    }

    if (estado_leds == 4) {
    digitalWrite (13, HIGH);
    digitalWrite (12, HIGH);
    digitalWrite (11, HIGH);
    }
    }

    ResponderEliminar