Hola buenos dias/tardes o noches, mi problema es el siguiente, estaba uniendo diversos codigos en uno solo, para que hasta el dia de ayer, el codigo me funcionaba sin problemas pero ahora lo intento activar (o hacer funcionar) y me declara el siguiente error "looplluvia was not declared in this scope". Re-escribi el codigo pero aun sigue apareciendo el mismo error.
Adjunto el codigo, por si alguien ve el error
Muchas gracias
//Sensor Movimiento//
const int buzzer= 3; //Pin del buzer
const int PIR= 7; //pin de PIR
const int LED= 6; //pin del LED
int pirState = LOW; //de inicio no hay movimiento
int val = 0; //estado del pin
//Sensor Lluvia//
const int analogInPin= A0;
int sensorValue= 0;
//Sensor Sonido//
int led = 12; //verde
int led2 = 9; //amarillo
int rango = 600; //es el rango de los sonidos que coge
int volumen;
//Sensor Temperatura//
#include <LiquidCrystal.h> //Incluir esta libreria para poder usar el lcd
int Ana1 = A0; //Entrada analogica de LM35
LiquidCrystal lcd(12,11,5,4,3,2); //Definimos la pantalla LCD
int Temp = 0;
char Grados = 'º';
//Sensor de Luz//
#define LED 4 //El LED esta conectado en el pin 3
#define LDR 5 //El LDR esta conectador en el pin A5
int luz = 0;
int valor_sensor = 0;
int valor_limite = 300; //Este valor hara que el LED cambie de estado a una determinada luminosidad (podeis con distintos valores para ajustar la sensibilidad)
void setup() {
pinMode(3,OUTPUT);
pinMode(7,INPUT);
pinMode(6,OUTPUT);
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(led2,OUTPUT);
lcd.begin(16,2);
pinMode(13,OUTPUT);
digitalWrite(13, HIGH); //Activamos la retroiluminacion
pinMode(LED,OUTPUT);
pinMode(LDR,INPUT);
}
void loop() {
loopPIR();
looplluvia();
loopsonido();
looptemp();
loopluz();
}
void loopPIR(){
val = digitalRead(PIR);
if (val == HIGH) //si esta activado
{
digitalWrite(LED, HIGH); //se enciende el led
analogWrite(buzzer,128); //se enciende el buzzer
if (pirState == LOW) //si antes estaba apagado
{
Serial.println("Sensor Activado");
pirState = HIGH;
}
}
else //si esta desactivado
{
digitalWrite(LED, LOW); //se apaga el led
digitalWrite(buzzer, LOW); //se apaga el buzer
if (pirState == HIGH) //si antes estaba prendido
{
Serial.println("Sensor Parado");
pirState = LOW;
}
}
}
}
void looplluvia();{
sensorValue = analogRead(analogInPin);
Serial.print("Sensor cubierto =");
Serial.print(sensorValue*100/1024);
Serial.println("%");
delay(1000);
}
void loopsonido(){
volumen = analogRead(A0);
Serial.println(volumen);
delay(50); //Para que los sonidos los escriba en los LED’s con un delay de 50 milisegundos (un pequeño rango para que sea visible el encendido y el apagado por el ser humano)
digitalWrite(led,LOW); //Se inicializa el LED rojo a apagado
digitalWrite(led2,LOW); //Se inicializa el LED verde a apagado
if(volumen <=rango){
digitalWrite(led, HIGH); //Se enciende el LED rojo
digitalWrite(led2,LOW); //Se apaga el LED verde
}
else{
digitalWrite(led, LOW); //Se apaga el LED rojo
digitalWrite(led2,HIGH); //Se enciende el LED verde
}
}
void looptemp(){
Temp = analogRead(Ana1); //Leemos el valor de la entrada analogica
Temp = map(Temp,0,1024,-55,150); //Escalamos la señal a grados centigrados
//Mostramos los grados en el serial
Serial.print("Grados: ");
Serial.print(Temp);
Serial.print(Grados);
Serial.println("C");
//Mostramos los grados en la pantalla LCD
lcd.setCursor(0,0); //Con este comando decimos en que linea queremos escribir
lcd.print("Temperatura: ");
lcd.setCursor(0,1);
lcd.print(Temp);
delay(500); //Al ser temperatura no hace falta leerlo tan seguido
}
void loopluz(){
valor_sensor = analogRead(LDR);
luz = (5.0 * valor_sensor * 100.0)/1024.0; //Para entender esta formula visitar: http://programarfacil.com/podcast/48-sensor-de-temperatura-en-arduino/
Serial.print(luz);
Serial.println(" Luz");
delay(300);
if (luz <= valor_limite) //Si el valor de luz es menor o igual que el valor limite
{
digitalWrite (LED, LOW); //El led se apaga
}
if (luz > valor_limite) //Si es mayor que el valor limite
{
digitalWrite (LED, HIGH); //El led se eniende
}
}