Advertisement
Josueco

Lab2

Mar 24th, 2015
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.68 KB | None | 0 0
  1. /********** Proyecto **********
  2.  * Laboratorio 2:
  3.  * Autor: Josue Mauricio Hurtado Mosquera
  4.  * Descripcion:
  5.  *   En este laboratorio se van a leer los datos de 2 potenciómetros que se usaran como tiempo de encendido y tiempo de apagado para una
  6.  *   secuencia de 8 LEDs, que se moverán de izquierda derecha, y viceversa.
  7.  */
  8.  
  9. /********** Constantes **********/
  10.  
  11. #define POT1    A0
  12. #define POT2    A1
  13. #define TOTLED   8 // Total LEDs
  14.  
  15. /********** Variables **********/
  16.  
  17. int led[TOTLED] = {2, 3, 4, 5, 6, 7, 8, 9};    //Se realiza un arreglo para la asignación de la posición y si es de salida o entrada de cada uno de los LED´s
  18.  
  19.   int t_encendido = 500;    //se inicializan las varibles t_encendido
  20.   int t_apagado = 500;      //se inicializan las varibles t_apagado
  21.  
  22. /********** Configuracion **********/
  23.  
  24. void setup() {
  25.     // put your setup code here, to run once:
  26.   int pos=0;
  27.   while (pos < TOTLED){  //se realiza un while para que recorra los pines del arreglo y los configure como OUTPUT
  28.     pinMode(led[pos], OUTPUT);
  29.     pos=pos+1;
  30.   }
  31.   pinMode(POT1, INPUT); //se configuran los pines de los potenciometros como INPUT
  32.   pinMode(POT2, INPUT);
  33. } // end setup()
  34.  
  35. /********** Funciones **********/
  36.  
  37.  void leer(){ //La función Leer es para que el cambio en los potenciometros se haga al instante.
  38.     t_encendido = analogRead(POT1);
  39.     t_apagado   = analogRead(POT2);
  40.  }
  41.  
  42. void encender(int p, int t){ //funcion que dado un pin y un tiempo determina el tiempo de encendido.
  43.   digitalWrite(p, HIGH);  //indica que el pin p va a esta encendido, se pone en HIGH para que prenda la señal
  44.   delay(t);   //retardo de la señal t milisegundos
  45. } // end encender()
  46.  
  47.  
  48. void apagar(int p, int t){ //funcion que dado un pin y un tiempo determina el tiempo de apagado.
  49.   digitalWrite(pin, LOW);  //indica que el pin p va a esta encendido, se pone en HIGH para que prenda la señal
  50.   delay(t);  //retardo de la señal t milisegundos
  51. } // end apagar()
  52.  
  53. /********** Ciclo Principal **********/
  54.  
  55. void loop() {
  56.    // put your main code here, to run repeatedly:
  57.   for (int pos = 0; pos < TOTLED; pos++) {  //recorrido hacia la derecha, prendiendo y apagando.
  58.     leer();                                //función que permite leer la variación del potenciometro cada vez que se mueva y no esperar hasta que cumpla el ciclo.
  59.     encender(led[pos], t_encendido);  
  60.     apagar(led[pos], t_apagado);  
  61.   }
  62.  
  63.   for (int pos = TOTLED-2; pos > 0; pos--) {  //recorrido hacia la izquierda, prendiendo y apagando.
  64.     leer();                                
  65.     encender(led[pos], t_encendido);  
  66.     apagar(led[pos], t_apagado);  
  67.   }
  68. } // end loop()
  69.  
  70. /********** Fin ***********/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement