/*PROYECTO
Elementos:
- Potenciómetro analógico
- Sensor de fotoresistor
- Led RGB Cátodo (si es ánodo hacer modificación)
- Zumbador
- Protoboard
Si es de noche, vamos a escuchar un zumbido. Cuando sea de día con el
potenciómetro podremos regular los colores.
*/
int rojo = 3; // Pin para el LED Rojo
int verde = 5; // Pin para el LED Verde
int azul = 6; // Pin para el LED Azul
int potenciometroPin = A0; // Pin analógico para el potenciómetro
int fotoresistorPin = A1; // Pin analógico para el fotoresistor
long valorPoten; // Variable donde está el valor del potenciómetro
int zumbadorPin = 9; // Pin para el zumbador
void setup() {
// Inicializo pines como entrada o salida
// Seteo el Led RGB
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
// Seteo el potenciómetro
pinMode(potenciometroPin, INPUT);
// Seteo el zumbido
pinMode(zumbadorPin, OUTPUT);
// Inicializar comunicación serial
Serial.begin(9600);
}
void loop() {
valorPoten = analogRead(potenciometroPin);
int valorFotoresistor = analogRead(fotoresistorPin);
if (valorFotoresistor < 200) {
// Es de noche, produce un zumbido
producirZumbido();
} else {
// No es de noche, controla los LED según el valor del potenciómetro
controlarLEDs();
}
Serial.print("El valor del fotoresistor es = ");
Serial.println(valorFotoresistor);
delay(500);
}
void producirZumbido() {
tone(zumbadorPin, 1000, 1000); // Frecuencia en Hz y duración en ms del zumbido
delay(1000); // Espera 1 segundo antes de detener el zumbido
noTone(zumbadorPin); // Detiene el zumbido
}
void controlarLEDs() {
if (valorPoten < 128) {
// Color rojo
digitalWrite(rojo, 255);
digitalWrite(verde, 0);
digitalWrite(azul, 0);
Serial.print("El color esperado es rojo |");
} else if (valorPoten < 256) {
// Color celeste
digitalWrite(rojo, 0);
digitalWrite(verde, 255);
digitalWrite(azul, 255);
Serial.print("El color esperado es celeste |");
} else if (valorPoten < 384) {
// Color verde
digitalWrite(rojo, 0);
digitalWrite(verde, 255);
digitalWrite(azul, 0);
Serial.print("El color esperado es verde |");
} else if (valorPoten < 512) {
// Color azul
digitalWrite(rojo, 0);
digitalWrite(verde, 0);
digitalWrite(azul, 255);
Serial.print("El color esperado es azul |");
} else if (valorPoten < 640) {
// Color blanco
digitalWrite(rojo, 255);
digitalWrite(verde, 255);
digitalWrite(azul, 255);
Serial.print("El color esperado es blanco |");
} else if (valorPoten < 768) {
// Color amarillo
digitalWrite(rojo, 255);
digitalWrite(verde, 255);
digitalWrite(azul, 0);
Serial.print("El color esperado es amarillo |");
} else if (valorPoten < 896) {
// Color magenta
digitalWrite(rojo, 255);
digitalWrite(verde, 0);
digitalWrite(azul, 255);
Serial.print("El color esperado es magenta |");
} else {
// Color rosa
analogWrite(rojo, 255);
analogWrite(verde, 0);
analogWrite(azul, 128);
Serial.print("El color esperado es rosa |");
}
}