Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********** Proyecto **********
- * Laboratorio 2:
- * Autor: Josue Mauricio Hurtado Mosquera
- * Descripcion:
- * 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
- * secuencia de 8 LEDs, que se moverán de izquierda derecha, y viceversa.
- */
- /********** Constantes **********/
- #define POT1 A0
- #define POT2 A1
- #define TOTLED 8 // Total LEDs
- /********** Variables **********/
- 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
- int t_encendido = 500; //se inicializan las varibles t_encendido
- int t_apagado = 500; //se inicializan las varibles t_apagado
- /********** Configuracion **********/
- void setup() {
- // put your setup code here, to run once:
- int pos=0;
- while (pos < TOTLED){ //se realiza un while para que recorra los pines del arreglo y los configure como OUTPUT
- pinMode(led[pos], OUTPUT);
- pos=pos+1;
- }
- pinMode(POT1, INPUT); //se configuran los pines de los potenciometros como INPUT
- pinMode(POT2, INPUT);
- } // end setup()
- /********** Funciones **********/
- void leer(){ //La función Leer es para que el cambio en los potenciometros se haga al instante.
- t_encendido = analogRead(POT1);
- t_apagado = analogRead(POT2);
- }
- void encender(int p, int t){ //funcion que dado un pin y un tiempo determina el tiempo de encendido.
- digitalWrite(p, HIGH); //indica que el pin p va a esta encendido, se pone en HIGH para que prenda la señal
- delay(t); //retardo de la señal t milisegundos
- } // end encender()
- void apagar(int p, int t){ //funcion que dado un pin y un tiempo determina el tiempo de apagado.
- digitalWrite(pin, LOW); //indica que el pin p va a esta encendido, se pone en HIGH para que prenda la señal
- delay(t); //retardo de la señal t milisegundos
- } // end apagar()
- /********** Ciclo Principal **********/
- void loop() {
- // put your main code here, to run repeatedly:
- for (int pos = 0; pos < TOTLED; pos++) { //recorrido hacia la derecha, prendiendo y apagando.
- leer(); //función que permite leer la variación del potenciometro cada vez que se mueva y no esperar hasta que cumpla el ciclo.
- encender(led[pos], t_encendido);
- apagar(led[pos], t_apagado);
- }
- for (int pos = TOTLED-2; pos > 0; pos--) { //recorrido hacia la izquierda, prendiendo y apagando.
- leer();
- encender(led[pos], t_encendido);
- apagar(led[pos], t_apagado);
- }
- } // end loop()
- /********** Fin ***********/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement