sábado, 17 de mayo de 2014

LABORATORIO 4

LABORATORIO 4

DESCRIPCIÓN DEL LABORATORIO :

Controlaré a través de Arduino ocho (8) LEDs puestos en una protoboard, haciendo que un LED se mueva en forma continua de izquierda a derecha, mientras por medio de una interfaz gráfica en Processing/ControlP5 se controlan los tiempos que el LED permanece encendido y apagado.

MATERIALES UTILIZADOS

(1) Protoboard


(8) Leds


Cable utp

(1) Arduino uno


DIAGRAMA DEL MONTAJE EN LA PROTOBOARD

DIAGRAMA DEL MONTAJE EN EL CIRCUITO


FOTOS DEL MONTAJE
   
                            
                                   






CODIGO ARDUINO

  1. #define MAXLED 8

  2. int led [MAXLED]={2,3,4,5,6,7,8,9};
  3. int valor=0;
  4. int i=0; 
  5. int t_on=500;
  6. int t_off=100;
  7. int inc=1;

  8. void setup(){
  9.   Serial.begin(9600);
  10.   for (int i=0; i<MAXLED; i++){
  11.     pinMode(led[i], OUTPUT);  
  12.   }
  13. }

  14. void loop() {
  15.   if (Serial.available()>0){
  16.     valor=Serial.read();
  17.     if(valor=='t')
  18.       t_on=Serial.parseInt();
  19.     
  20.     if(valor=='q')
  21.       t_off=Serial.parseInt();


  22.   }
  23.   on(led[i], t_on);
  24.   off(led[i], t_off);
  25.   i+=inc;
  26.   if (i>MAXLED-1) inc=-1;
  27.   if (i==0) inc=+1;

  28. }

  29. void on(int led, int ms) {
  30.   digitalWrite(led, HIGH);
  31.   delay(ms);
  32. }

  33. void off(int led, int ms) {
  34.   digitalWrite(led, LOW);
  35.   delay(ms); 

  36. }

CÓDIGO PROCESSING
  1. import processing.serial.*;
  2. import controlP5.*;
  3. ControlP5 cp5;
  4. Slider slider1;
  5. Button boton1;
  6. Knob   perilla1;
  7. Serial puerto;

  8. void setup(){
  9.   size(600,400);
  10.   puerto = new Serial(this, Serial.list()[0],9600);
  11.   cp5 = new ControlP5(this);
  12.   slider1 = cp5.addSlider("t",0,1000,200,40,40,300,40);
  13.   slider1.setColor(new CColor (0x80008000,0xFF808080,0x80FF0000,0x80FF80FF,0xFF80FF00));
  14.   boton1 = cp5.addButton("aceptar",50,40,100,80,40);
  15.   boton1.setColor(new CColor (0x8000FF00,0xFF808000,0x80FF0000,0x00000000,0xFFFFFFFF));
  16.   perilla1 = cp5.addKnob("q",0,500,150,400,40,100);
  17.   perilla1.setColor(new CColor (0x8000FF00,0xFF808080,0xFFFF0000,0xFFFFFF00,0x00000000));
  18.   }
  19.  
  20.   void draw()
  21.     {
  22.     background(0);
  23.     }
  24.    
  25.     void controlEvent (ControlEvent  theEvent){
  26.     
  27.    String nombre=theEvent.getController().getName();
  28.    int valor=int(theEvent.getController().getValue());
  29.    println( nombre + ":" + valor);
  30.    puerto.write(nombre+valor);
  31.      }



VIDEO DEL FUNCIONAMIENTO




No hay comentarios.:

Publicar un comentario