Advertisement
Villalba2006

POST_8

Nov 24th, 2016
3,989
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.78 KB | None | 0 0
  1. /*  TITULO: Sensor de parking con HC-SR04
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2015) --> 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.     Este programa es capaz de mostrarnos la distancia a la que se encuentra un objeto cualquiera
  14.     respecto del sensor ultrasónico HC-SR04. Ayudándonos de esta característica Arduino va a activar
  15.     una alarma sonora y visual que va a parpadear con una frecuencia en función de la distancia a la
  16.     que se encuentre el objeto, siempre que esta sea menor de 50 cm. El sistema está dotado de un
  17.     interruptor de modo con indicador LED, para que la funcionalidad del modo parking sea activada
  18.     únicamente cuando nosotros lo necesitemos.
  19.    
  20.  
  21.     ESQUEMA DE CONEXION
  22.    
  23.                                       +-----+
  24.          +----[PWR]-------------------| USB |--+
  25.          |                            +-----+  |
  26.          |         GND/RST2  [ ][ ]            |
  27.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  28.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  29.          |                             AREF[ ] |
  30.          |                              GND[ ] |
  31.          | [ ]N/C                    SCK/13[ ] |  
  32.          | [ ]IOREF                 MISO/12[ ] |  
  33.          | [ ]RST                   MOSI/11[ ]~|  
  34.          | [ ]3V3    +---+               10[ ]~|  
  35.          | [ ]5v    -| A |-               9[ ]~|  ECHO
  36.          | [ ]GND   -| R |-               8[ ] |  TRIG
  37.          | [ ]GND   -| D |-                    |
  38.          | [ ]Vin   -| U |-               7[ ] |  
  39.          |          -| I |-               6[ ]~|  BUZZER(+)
  40.          | [ ]A0    -| N |-               5[ ]~|  P2
  41.          | [ ]A1    -| O |-               4[ ] |  LED_V(+)
  42.          | [ ]A2     +---+           INT1/3[ ]~|  LED_R(+)
  43.          | [ ]A3                     INT0/2[ ] |  
  44.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  45.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  46.          |            [ ] [ ] [ ]              |
  47.          |  UNO_R3    GND MOSI 5V  ____________/
  48.           \_______________________/
  49.  
  50.   NOTAS:
  51.    - LED_V --> LED de color verde y LED_R --> LED de color rojo.
  52.    - Cátodo(-) tanto del LED_V(-) como del LED_R(-) a GND a través de una R=220 omhs (pata más corta).
  53.    - El buzzer (zumbador) tiene dos terminales, buzzer(+) que es el más largo y buzzer(-).
  54.      Buzzer(-) conectado directamente a GND.
  55.    - Denomínamos a los 3 terminales del interruptor como P1, P2 y P3 (donde P2 es el terminal central).    
  56.      - P1 conectado a VCC.
  57.      - P3 conectado a GND.
  58.   - Sensor ultrasónico HC-SR04. Además de las conexiones TRIG y ECHO que van directamente al Arduino,
  59.     necesitamos alimentarlo en sus terminales VCC (+5V) y GND (masa).      
  60. */
  61.  
  62.   #include <Ultrasonic.h>
  63.  
  64.   Ultrasonic ultrasonic(8,9,30000); // (Trig PIN, Echo PIN, Time Out = 30000 us --> 5 metros máximo.
  65.  
  66.   const int buzzer = 6; // Pin digital para el buzzer
  67.   const int modo_parking = 5; // Pin digital para el interruptor de modo
  68.   const int LED_V = 4; // Pin digital para el LED de color VERDE
  69.   const int LED_R = 3; // Pin digital para el LED de color ROJO
  70.  
  71.   int distancia;
  72.   int pausa;
  73.  
  74.   void setup()
  75.   {
  76.     Serial.begin(9600);
  77.     pinMode(LED_R, OUTPUT); // Pin digital del LED de color ROJO como salida
  78.     digitalWrite(LED_R, LOW); // LED de color ROJO apagado
  79.     pinMode(LED_V, OUTPUT); // Pin digital del LED de color VERDE como salida
  80.     digitalWrite(LED_V, LOW); // LED de color VERDE apagado
  81.     pinMode(buzzer, OUTPUT); // Pin digital del buzzer como salida
  82.     pinMode(modo_parking, INPUT); // Pin digital del interruptor de modo como entrada
  83.   }
  84.  
  85.   void loop()
  86.   {
  87.     distancia = ultrasonic.Ranging(CM);
  88.     Serial.println(distancia); // Mostramos la distancia en cm por el monitor serie
  89.    
  90.     if(digitalRead(modo_parking)==HIGH) // Si el interruptor de modo está activado
  91.     {
  92.       digitalWrite(LED_V, HIGH); // Se enciende el LED de color VERDE
  93.       if(distancia < 50) // Si la distancia es inferior a 50 cm
  94.       {
  95.         // Efecto parpadeo que varía según la distancia
  96.         pausa = distancia * 10;
  97.         digitalWrite(buzzer, HIGH);
  98.         digitalWrite(LED_R, HIGH);
  99.         delay(pausa); // Como mucho va a ser de medio segundo      
  100.         digitalWrite(buzzer, LOW);
  101.         digitalWrite(LED_R, LOW);
  102.         delay(pausa);
  103.       }  
  104.     }
  105.    
  106.     else // Si el interruptor de modo está desactivado
  107.     {
  108.       // Apagamos los LED y el buzzer
  109.       digitalWrite(LED_V, LOW);
  110.       digitalWrite(LED_R, LOW);
  111.       digitalWrite(buzzer, LOW);
  112.     }
  113.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement