domingo, 20 de septiembre de 2015

LABORATORIO # 3

DESCRIPCIÓN DEL LABORATORIO:

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 en Processing/ControlP5 para controlar el tiempo de encendido y el tiempo de apagado.


MATERIALES:

-Protoboard
-Cable UTP
-8 Resistencias
-8 Leds
-Arduino Uno
-Cables

ESQUEMAS DEL MONTAJE:


ESQUEMATICO:


PBC: 



FOTOS DEL MONTAJE:






VIDEO:





CODIGO ARDUINO :


ata hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #define maxleds 8
  2. int t1=0;      
  3. int t2=0;        
  4. int valor=0;      
  5. int led[maxleds] = {2,3,4,5,6,7,8,9};
  6. int i;          
  7. void setup ()
  8. {
  9.   Serial.begin(9600);
  10.   for (int i=0;i<maxleds;i++)
  11.     pinMode(led[i],OUTPUT);
  12. }
  13. void loop()
  14. {
  15.   for (int i=0;i<=maxleds;i++)
  16.   {
  17.     if (Serial.available()>0)
  18.     {
  19.       valor = Serial.read();
  20.       if (valor == 'O')
  21.         t1 = Serial.parseInt();
  22.       if (valor == 'F')
  23.         t2 = Serial.parseInt();
  24.     }
  25.     prender(led[i],t1);
  26.     apagar(led[i],t2);  
  27.   }
  28.   for (int i=maxleds;i>=0;i--)
  29.   {
  30.     if (Serial.available()>0)
  31.     {
  32.       valor = Serial.read();
  33.       if (valor == 'O')
  34.         t1 = Serial.parseInt();
  35.       if (valor == 'F')
  36.         t2 = Serial.parseInt();
  37.     }
  38.     prender(led[i],t1);
  39.     apagar(led[i],t2);  
  40.   }
  41. }
  42. void prender(int i, int t)
  43. {
  44.   digitalWrite(i, HIGH);
  45.   delay(t);            
  46. }
  47. void apagar(int i, int t)
  48. {
  49.   digitalWrite(i, LOW);
  50.   delay(t);            
  51. }


CODIGO PROCESING:

Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import controlP5.*;          
  2. import processing.serial.*;    
  3. ControlP5 cp5;              
  4. Slider slider1;            
  5. Slider slider2;            
  6. Serial serial;              
  7. Textlabel texto1, texto2, texto3, texto4;
  8. Textlabel texto5, texto6;
  9. void setup()
  10. {
  11. serial = new Serial(this, Serial.list()[0],9600);
  12. String puerto = Serial.list()[0];  
  13. size(750,330);              
  14. cp5 = new ControlP5(this);
  15. slider1 = cp5.addSlider("O",0,1000,500,40,150,300,40);
  16. slider1.setColor(newCColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
  17. slider1.setLabelVisible(false);
  18. slider2 = cp5.addSlider("F",0,1000,500,400,150,300,40);
  19. slider2.setColor(newCColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
  20. slider2.setLabelVisible(false);
  21. texto1 = cp5.addTextlabel("label")
  22.                     .setText("CONTROL DE LEDS")
  23.                     .setPosition(210,50)
  24.                     .setColorValue(0xffff0000)
  25.                     .setFont(createFont("Comic Sans MS",30))
  26.                     ;
  27. texto2 = cp5.addTextlabel("label1")
  28.                     .setText("TIEMPO ENCENDIDO (ms)")
  29.                     .setPosition(90,120)
  30.                     .setColorValue(0xffff0000)
  31.                     .setFont(createFont("Comic Sans MS",15))
  32.                     ;              
  33. texto3 = cp5.addTextlabel("label2")
  34.                     .setText("TIEMPO APAGADO (ms)")
  35.                     .setPosition(460,120)
  36.                     .setColorValue(0xffff0000)
  37.                     .setFont(createFont("Comic Sans MS",15))
  38.                     ;  
  39.    
  40. texto4 = new Textlabel(cp5,"Juberth Andres Reneria ",40,230,600,200);  
  41. texto4.setFont(createFont("MV Boli",15));
  42. texto5 = new Textlabel(cp5,"Ingenieria Electronica",40,250,600,200);  
  43. texto5.setFont(createFont("MV Boli",15));
  44. texto6 = new Textlabel(cp5,"Noveno semestre",40,270,600,200);  
  45. texto6.setFont(createFont("MV Boli",15));
  46. }
  47. void draw()
  48. {
  49. background(50,30,100);
  50.  texto4.draw(this);    
  51.  texto5.draw(this);
  52.  texto6.draw(this);
  53. }
  54. void controlEvent (ControlEvent evento)
  55. String nombre = evento.getController().getName();
  56. int valor = int(evento.getController().getValue());
  57. serial.write(nombre + ":" + valor);
  58. println(nombre + ":" + valor);    
  59. }
  60.   for (int i=0;i<maxleds;i++)
  61.     pinMode(led[i],OUTPUT);
  62. }
  63. void loop()
  64. {
  65.   for (int i=0;i<=maxleds;i++)
  66.   {
  67.     if (Serial.available()>0)
  68.     {
  69.       valor = Serial.read();
  70.       if (valor == 'O')
  71.         t1 = Serial.parseInt();
  72.       if (valor == 'F')
  73.         t2 = Serial.parseInt();
  74.     }
  75.     prender(led[i],t1);
  76.     apagar(led[i],t2);  
  77.   }
  78.   for (int i=maxleds;i>=0;i--)
  79.   {
  80.     if (Serial.available()>0)
  81.     {
  82.       valor = Serial.read();
  83.       if (valor == 'O')
  84.         t1 = Serial.parseInt();
  85.       if (valor == 'F')
  86.         t2 = Serial.parseInt();
  87.     }
  88.     prender(led[i],t1);
  89.     apagar(led[i],t2);  
  90.   }
  91. }
  92. void prender(int i, int t)
  93. {
  94.   digitalWrite(i, HIGH);
  95.   delay(t);            
  96. }
  97. void apagar(int i, int t)
  98. {
  99.   digitalWrite(i, LOW);
  100.   delay(t);            
  101. }

No hay comentarios:

Publicar un comentario