Está en la página 1de 3

Programa: Alarma exceso temperatura con sealizacin luminosa y acstica

const int sensorTemp = A0;


const float refTemp = 30.0;
unsigned int semiciclo; // Se declara la variable que establece la duracin
// del semiciclo de la onda cuadrada a generar.
unsigned int tono; // Se declara la variable que controlar la duracin del tono.

void setup() {
Serial.begin(9600); // Abre un puerto serie para comunicarse con el ordenador.
for (int pin = 2; pin < 5; pin++) {
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
}
}

void loop() {
int valorSensor = analogRead(sensorTemp);
float tensionSensor = (valorSensor / 1024.0) * 5.0;
Serial.print("Temperatura en Grados Centigrados: ");
float Temperatura = (tensionSensor - 0.5) * 100;

Serial.print(Temperatura);
if (Temperatura < refTemp)
{
Serial.println(" , Alarma acstica y luminosa desactivada.");
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
else
{
Serial.println(" , Alarma acstica y luminosa activada.");
semiciclo = 500; // Se inicializa la duracin del semiciclo para la onda de 1 kHz.
// Iteracin for para controlar la duracin del tono de 1 kHz.
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
for (tono = 0; tono <= 500; tono++)
{
digitalWrite(salida, HIGH); // Saca el nivel alto de la onda cuadrada.
delayMicroseconds(semiciclo); // Mantiene la duracin del nivel alto de la onda.
digitalWrite(salida, LOW); // Saca el nivel bajo de la onda cuadrada.
delayMicroseconds(semiciclo); // Mantiene la duracin del nivel bajo de la onda.
}
semiciclo = 250; // Se inicializa la duracin del semiciclo para la onda de 2 kHz.

// Iteracin for para controlar la duracin del tono de 2 kHz.


digitalWrite(2, LOW);
digitalWrite(3, HIGH);
for (tono = 0; tono <= 1000; tono++)
{
digitalWrite(salida, HIGH); // Saca el nivel alto de la onda cuadrada.
delayMicroseconds(semiciclo); // Mantiene la duracin del nivel alto de la onda.
digitalWrite(salida, LOW); // Saca el nivel bajo de la onda cuadrada.
delayMicroseconds(semiciclo); // Mantiene la duracin del nivel bajo de la onda.
}
}
delay(1);
}

También podría gustarte