Advertisement
Villalba2006

POST_32

Nov 25th, 2016
5,984
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.55 KB | None | 0 0
  1. /*  TITULO: Control del brillo de un LED a través de un LDR.
  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.     Con este programa controlamos el brillo de un LED a través de un LDR (fotorresistor). Con luz
  14.     máxima, el LED permanece apagado y a medida que la luz disminuye, el brillo del LED aumenta, para
  15.     que a oscuras el brillo del LED sea máximo.
  16.    
  17.    
  18.     ESQUEMA DE CONEXION
  19.    
  20.                                       +-----+
  21.          +----[PWR]-------------------| USB |--+
  22.          |                            +-----+  |
  23.          |         GND/RST2  [ ][ ]            |
  24.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  25.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  26.          |                             AREF[ ] |
  27.          |                              GND[ ] |
  28.          | [ ]N/C                    SCK/13[ ] |  
  29.          | [ ]IOREF                 MISO/12[ ] |  
  30.          | [ ]RST                   MOSI/11[ ]~|   LED(+)
  31.          | [ ]3V3    +---+               10[ ]~|  
  32.          | [ ]5v    -| A |-               9[ ]~|  
  33.          | [ ]GND   -| R |-               8[ ] |  
  34.          | [ ]GND   -| D |-                    |
  35.          | [ ]Vin   -| U |-               7[ ] |  
  36.          |          -| I |-               6[ ]~|  
  37.  LDR(B)  | [ ]A0    -| N |-               5[ ]~|  
  38.          | [ ]A1    -| O |-               4[ ] |  
  39.          | [ ]A2     +---+           INT1/3[ ]~|  
  40.          | [ ]A3                     INT0/2[ ] |  
  41.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  42.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  43.          |            [ ] [ ] [ ]              |
  44.          |  UNO_R3    GND MOSI 5V  ____________/
  45.           \_______________________/
  46.  
  47.   NOTAS:
  48.    - Cátodo(-) del LED (pata más corta) a GND a través de una R=220 omhs.
  49.    - Los LDR tienen dos terminales (intercambiables entre sí), que vamos a denominar LDR(A) y LDR(B).
  50.    - Conexión de los terminales del LDR:
  51.        - LDR(A) conectado a +5V (VCC).
  52.        - LDR(B) conectado a GND a través de una R=10K omhs.
  53. */
  54.  
  55.   int LDR = 0;  // PIN analógico A0 para la foto resistencia (LDR)
  56.   int LED = 11; // PIN digital para el LED
  57.   int valor;    // Variable que acumula el valor de la entrada analógica A0
  58.  
  59.   // Ajuste de los valores propios, máximo y mínimo, del LDR.
  60.   int maximo = 600;  // Valor máximo que da la foto-resistencia en A0 (con plena luz)
  61.   int minimo = 470;  // Valor mínimo que da la foto-resistencia en A0 (sin luz)
  62.  
  63.   void setup()
  64.   {
  65.        Serial.begin(9600);   // Inicializa la comunicación serie
  66.        pinMode(LED, OUTPUT); // PIN digital 11 como salida
  67.   }
  68.  
  69.   void loop()
  70.   {
  71.        // Leemos el valor del LDR
  72.        valor = analogRead(LDR);    
  73.        // Limitamos el valor entre el máximo y el mínimo
  74.        valor = constrain(valor, minimo, maximo);
  75.        // Mostramos a través del monitor serie el valor para ajustar máx y min.
  76.        Serial.println(valor);
  77.        // Acomodamos el valor leído y ajustado, a un valor proporcional entre 0 y 255
  78.        // - Cuando hay plena luz (máximo) --> Valor = 0
  79.        // - Cuando no hay luz (mínimo) --> Valor = 255
  80.        valor = map(valor, maximo, minimo, 0, 255);
  81.        // Aplicamos el valor obtenido a un LED mediante PWM
  82.        analogWrite(LED, valor);        
  83.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement