Advertisement
Josueco

lab6

Mar 25th, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.73 KB | None | 0 0
  1. /********** Proyecto **********
  2.  * Laboratorio 6
  3.  * Autor: Josue Mauricio Hurtado Mosquera
  4.  * Descripcion:
  5.  * Controlar 8 LEDs desde el Arduino, a través de un IC 74HC595, definiendo mínimo 8 patrones de movimiento que son controlados desde
  6.  * una interfaz gráfica en Processing/ControlP5. Más información sobre el IC 74HC595
  7.  */
  8. /********** Variables **********/
  9. // se inicializan los pines para en envio de los datos al integrado
  10. int latchPin = 11;
  11. int clockPin = 10;
  12. int dataPin = 9;
  13.  
  14. // se inicializan los arreglos para cada patrón
  15. int P1[13] = {0, 1, 5, 21, 85, 213, 245, 253, 255, 0};
  16. int P2[9] = {0, 1, 129, 131, 195, 199, 239, 129, 0 };
  17. int P3[9] = {0, 129, 66, 36, 24, 36, 66, 129, 0 };
  18. int P4[9] = {0, 3, 15, 63, 255, 243, 240, 192, 0};
  19. int P5[10] = {0, 1, 5, 21, 85, 213, 245, 253, 255, 0};
  20. int P6[17] = {0, 240, 255, 15, 255, 15, 255, 240, 0, 2, 8, 16, 66, 32, 129, 195};
  21. int P7[7] = {0, 255, 189, 165, 161, 129, 0};
  22. int P8[16] = {0, 2, 4, 8, 16, 32, 64, 128, 64, 32, 16, 8, 4, 2, 1, 0};
  23.  
  24. char Letra; // variable para la lectura del dato serial desde processing
  25.  
  26. /********** Configuracion **********/
  27. void setup() {
  28.   // se configuran los pines como salidas y el modulo de com serial
  29.   pinMode(latchPin, OUTPUT);
  30.   pinMode(dataPin, OUTPUT);
  31.   pinMode(clockPin, OUTPUT);
  32.   Serial.begin(9600);
  33.  
  34. }//end setup ()
  35.  
  36. void loop() {
  37.  
  38.   // Si hay datos disponibles en el puerto serial
  39.   if (Serial.available() > 0)
  40.   {
  41.     // Leer la letra actual en el buffer
  42.     Letra = Serial.read();
  43.  
  44.     // aqui se condiciona si la letra enviada está entre las opciones y ejecuta el patron determinado
  45.  
  46.     if (Letra == 'A') {
  47.       for (int j = 0; j < 13; j++) {
  48.         envio(P1[j]);
  49.       }
  50.     }
  51.  
  52.     if (Letra == 'B') {
  53.       for (int j = 0; j < 9; j++) {
  54.         envio(P2[j]);
  55.       }
  56.     }
  57.  
  58.     if (Letra == 'C') {
  59.       for (int j = 0; j < 9; j++) {
  60.         envio(P3[j]);
  61.       }
  62.     }
  63.  
  64.     if (Letra == 'D') {
  65.       for (int j = 0; j < 9; j++) {
  66.         envio(P4[j]);
  67.       }
  68.     }
  69.  
  70.     if (Letra == 'E') {
  71.       for (int j = 0; j < 10; j++) {
  72.         envio(P5[j]);
  73.       }
  74.     }
  75.  
  76.     if (Letra == 'F') {
  77.       for (int j = 0; j < 17; j++) {
  78.         envio(P6[j]);
  79.       }
  80.     }
  81.  
  82.     if (Letra == 'G') {
  83.       for (int j = 0; j < 7; j++) {
  84.         envio(P7[j]);
  85.       }
  86.     }
  87.  
  88.     if (Letra == 'H') {
  89.       for (int j = 0; j < 16; j++) {
  90.         envio(P8[j]);
  91.       }
  92.     }
  93.     // el bucle se ejecuta mientras hayan datos disponibles por leer en el buffer.
  94.   }
  95. } //end loop ()
  96.  
  97. void envio(int data) { //Configuracion de envio de datos al integrado
  98.   digitalWrite(latchPin, LOW);
  99.   shiftOut(dataPin, clockPin, MSBFIRST, data);
  100.   digitalWrite(latchPin, HIGH);
  101.   delay(200);
  102. } //end envio ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement