Advertisement
Josueco

Lab3

Mar 24th, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.22 KB | None | 0 0
  1. /********** Proyecto **********
  2.  * Universidad Santiago de Cali
  3.  * Laboratorio 3
  4.  * Autor: Josue Mauricio Hurtado Mosquera
  5.  * Descripcion:
  6.  * Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve en forma continua de izquierda a derecha, vía una interfaz gráfica
  7.  * en Processing/ControlP5 para controlar el tiempo de encendido y el tiempo de apagado.
  8.  */
  9. /********** Constantes **********/
  10. // Conectamos el LED al pin 9 que es PWM
  11. #define TOTLED   8 // Total LEDs
  12.  
  13. /********** Variables **********/
  14. int led[TOTLED] = {
  15.   2, 3, 4, 5, 6, 7, 8, 9};
  16. // Guardamos el valor lo que recibimos via serial
  17. int valor = 0;
  18. int t_encendido = 0;
  19. int t_apagado = 0;
  20.  
  21. void setup() {
  22.  // put your setup code here, to run once:
  23.   // La comunicacion serial sera a 9600 baudios
  24.   Serial.begin(9600);
  25.   // El pin 9 sera de un pin de salida
  26.   int pos=0;
  27.   while (pos < TOTLED){
  28.     pinMode(led[pos], OUTPUT);
  29.     pos=pos+1;
  30.   }
  31. }
  32. /********** Funciones **********/
  33.    void leer(){ //La función lee los datos provistos al puerto serial
  34.   // Si hay datos disponibles en el puerto serial
  35.   if (Serial.available() > 0) {
  36.     // Leer el valor
  37.     t_encendido = Serial.read();
  38.     t_apagado = Serial.read();
  39.     // Cambiar la intensidad de iluminacion del LED
  40.    // analogWrite(led, valor);
  41.  }//end leer()
  42. }
  43. // Pone en +5V el pin indicado, durante tantos milisegundos
  44. void on(int pin, int ms){ /funcion que dado un pin y un tiempo determina el tiempo de encendido.
  45.   digitalWrite(pin, HIGH);  
  46.   delay(ms);  
  47. } // end on()
  48.  
  49. // Pone en GND el pin indicado, durante tantos milisegundos
  50. void off(int pin, int ms){ //funcion que dado un pin y un tiempo determina el tiempo de apagado.
  51.   digitalWrite(pin, LOW);  
  52.   delay(ms);  
  53. } // end off()
  54.  
  55. // Ciclo infinito de ejecucion
  56. void loop() {
  57.  // put your main code here, to run repeatedly:
  58.     for (int pos = 0; pos < TOTLED; pos++) { //recorrido hacia la derecha, prendiendo y apagando.
  59.       leer();
  60.       on(led[pos], t_encendido);  
  61.       off(led[pos], t_apagado);  
  62.     }
  63.    
  64.     for (int pos = TOTLED-2; pos > 0; pos--) {//recorrido hacia la izquierda, prendiendo y apagando.
  65.       leer();
  66.       on(led[pos], t_apagado);  
  67.       off(led[pos], t_apagado);  
  68.     }
  69.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement