Advertisement
Villalba2006

POST_25

Nov 25th, 2016
3,557
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.25 KB | None | 0 0
  1. /*  TITULO: Alarma de incendios con altavoz incorporado.
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     En este programa cuando el sensor detecta las llamas de un incendio, el arduino emite una alarma acústica,
  14.     a través del altavoz, a demás de encender un diodo LED conectado a una de sus salidas digitales.
  15.  
  16.        
  17.     ESQUEMA DE CONEXION
  18.    
  19.                                       +-----+
  20.          +----[PWR]-------------------| USB |--+
  21.          |                            +-----+  |
  22.          |         GND/RST2  [ ][ ]            |
  23.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  24.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  25.          |                             AREF[ ] |
  26.          |                              GND[ ] |
  27.          | [ ]N/C                    SCK/13[ ] |  
  28.          | [ ]IOREF                 MISO/12[ ] |   LED(+)
  29.          | [ ]RST                   MOSI/11[ ]~|   D0(Sensor de llama)
  30.          | [ ]3V3    +---+               10[ ]~|   Altavoz(+)
  31.          | [ ]5v    -| A |-               9[ ]~|  
  32.          | [ ]GND   -| R |-               8[ ] |  
  33.          | [ ]GND   -| D |-                    |
  34.          | [ ]Vin   -| U |-               7[ ] |  
  35.          |          -| I |-               6[ ]~|  
  36.          | [ ]A0    -| N |-               5[ ]~|  
  37.          | [ ]A1    -| O |-               4[ ] |  
  38.          | [ ]A2     +---+           INT1/3[ ]~|  
  39.          | [ ]A3                     INT0/2[ ] |  
  40.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  41.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  42.          |            [ ] [ ] [ ]              |
  43.          |  UNO_R3    GND MOSI 5V  ____________/
  44.           \_______________________/
  45.  
  46.   NOTAS:
  47.  
  48.    - Cátodo(-) del LED (pata más corta) a GND a través de una R=220 omhs.
  49.    - Altavoz(-) a GND.
  50.    - Alimentación y masa del sensor de llama a +5V y GND respectivamente.
  51.  
  52. */
  53.  
  54.  
  55.   int LED = 12; // Pin digital para el LED
  56.   int sensor_llamas = 11; // Pin digital para el sensor de fuego
  57.   int altavoz = 10;  // Pin digital con PWM para el altavoz
  58.  
  59.   int estado_sensor = LOW;  // Inicialmente ponemos a NIVEL BAJO el estado del sensor de fuego
  60.   int valor = 0;  // variable que acumula el valor del sensor de fuego
  61.  
  62.   void setup()
  63.   {
  64.     pinMode(LED, OUTPUT);  // Pin digital 12 como salida
  65.     pinMode(sensor_llamas, INPUT); // Pin digital 11 como entrada    
  66.     pinMode(altavoz, OUTPUT); // Pin digital 10 como salida
  67.    
  68.     Serial.begin(9600); // Comienza la comunicación serie a 9600 BAUDIOS
  69.   }
  70.  
  71.   void loop()
  72.   {
  73.     // Leemos el valor del sensor de llamas
  74.     valor = digitalRead(sensor_llamas);
  75.     // Si detecta llamas, es decir, su salida digital está a NIVEL BAJO (LOW)
  76.     if (valor == LOW)
  77.     {
  78.       // Suena el altavoz y se enciende el LED    
  79.       digitalWrite(LED,HIGH);
  80.       suenaTono(300,160);
  81.       delay(150);
  82.      
  83.       // Presento mensaje por el monitor serie
  84.       if(estado_sensor == LOW)
  85.       {
  86.         Serial.println("Fuego activo!!!");
  87.         estado_sensor = HIGH;
  88.       }
  89.     }
  90.     // Si no detecta llamas, es decir, su salida digital está a NIVEL ALTO (HIGH)
  91.     else
  92.     {
  93.       // Tanto el altavoz como el LED permanecen desconectados  
  94.       digitalWrite(LED,LOW);
  95.       suenaTono(0,0);
  96.       delay(300);  
  97.      
  98.       // Presento mensaje por el monitor serie  
  99.       if(estado_sensor == HIGH)
  100.       {    
  101.         Serial.println("Fuego apagado!!!");
  102.         estado_sensor = LOW;
  103.       }
  104.     }
  105.   }
  106.  
  107.   // Función que ejecuta el sonido del altavoz: Duración (ms) y frecuencia (hercios)
  108.   void suenaTono(long duracion, int frecuencia)
  109.   {
  110.     duracion *= 1000;
  111.     int periodo = (1.0 / frecuencia) * 1000000;
  112.     long tiempo_transcurrido = 0;
  113.     while (tiempo_transcurrido < duracion)
  114.     {
  115.       digitalWrite(altavoz,HIGH);
  116.       delayMicroseconds(periodo / 2);
  117.       digitalWrite(altavoz, LOW);
  118.       delayMicroseconds(periodo / 2);
  119.       tiempo_transcurrido += (periodo);
  120.     }
  121.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement