int ldr_value;
int ldr_map;
// el LDR cuando hay luz resiste menos
//El valor de LDR es más alto cuando hay menos luz
//Poca luz >resistencia alta. El valor se va a acercar a 1023
//Mucha luz>resistencia baja. El valor se va acercar a 0
int led=3;
int buz=2;
unsigned int d=261;
unsigned int re=293;
unsigned int mi=329;
unsigned int fa=349;
unsigned int sol=392;
unsigned int la=440;
unsigned int si=494;
void setup() {
pinMode(A0, INPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
Serial.begin(9600);
}
void loop() {
//cuando haya poca luz, el led se enciende con mayor intensidad
//cuando haya mucha luz, el led se enciende con menor intensidad
//configuro LDR como lectura
//hacemos Analogo pq trabajamos en rangos
//Programacion igual q potenciometro
ldr_value = analogRead(A0);
//map para asignar variable ldr_map
ldr_map = map(ldr_value, 0, 1023, 0, 255);
//Analog read valor maximo es 1023
//Analog write va de 0 a 255
//Escribo el valor de ldr_map en analogWrite ()
analogWrite(3,ldr_map);
// analogWrite nos dice por q pin queremos sacar energia y cual es el valor que queremos sacar de energia.
//Los pines con la tilde (PWM, pulse with modulator) son los unicos capaces de hacer uso del analogWrite.
//Imprimimos valores para poder verlos
Serial.print("LDR:");
Serial.print(ldr_value);
Serial.print(" Mapped:");
Serial.println(ldr_map);
//Seleccionamos nota según rango de luz
if (ldr_map < 40) {
tone(buz, d);
} else if (ldr_map < 80) {
tone(buz, re);
} else if (ldr_map < 120) {
tone(buz, mi);
} else if (ldr_map < 160) {
tone(buz, fa);
} else if (ldr_map < 200) {
tone(buz, sol);
} else if (ldr_map < 240) {
tone(buz, la);
} else {
tone(buz, si);
}
delay(200); // Pequeña pausa para no saturar
}