jueves, 13 de marzo de 2014

LABORATORIO # 3

Control de Leds con Interfaz Grafica.

1.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.

2.Elementos Utilizados
v1 Computador
v1 Protoboard
v1 Arduino UNO
v(8)Resistencias
v (8)Leds
vAlambre
vSoftware “Arduino”
vSoftware “Fritzing”





3.Diagrama del Montaje





4.Diagrama Esquemático


5.Fotos del Montaje






 

6.Video del funcionamiento


7.Código Fuente Arduino


#define maxleds 8
int t1=0;      
int t2=0;      
int valor=0;    
int led[maxleds] = {13,12,11,10,9,8,7,6};
 int i;        
void setup ()
{
  Serial.begin(9600);
  for (int i=0;i<maxleds;i++)
    pinMode(led[i],OUTPUT);
}
 void loop()
{
  for (int i=0;i<=maxleds;i++)
  {
    if (Serial.available()>0)
    {
      valor = Serial.read();
      if (valor == 'O')
        t1 = Serial.parseInt();
      if (valor == 'F')
        t2 = Serial.parseInt();
    }
    prender(led[i],t1);
    apagar(led[i],t2);
}
  for (int i=maxleds-1;i>=0;i--)
  {
    if (Serial.available()>0)
    {
      valor = Serial.read();
      if (valor == 'O')
        t1 = Serial.parseInt();
      if (valor == 'F')
        t2 = Serial.parseInt();
    }
    prender(led[i],t1);
    apagar(led[i],t2);
  }
}
 void prender(int i, int t)
{
  digitalWrite(i, HIGH);
  delay(t);          
}
 void apagar(int i, int t)
{
  digitalWrite(i, LOW);
  delay(t);        
}

Codigo Processing
import controlP5.*;        
import processing.serial.*;  
ControlP5 cp5;            
Slider slider1;            
Slider slider2;            
Serial serial;            
Textlabel texto1, texto2, texto3, texto4;
Textlabel texto5, texto6;


void setup()
{
serial = new Serial(this, Serial.list()[0],9600);
String puerto = Serial.list()[0];
size(750,330);            
cp5 = new ControlP5(this);


slider1 = cp5.addSlider("O",0,1000,500,40,150,300,40);
slider1.setColor(new CColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
slider1.setLabelVisible(false);


slider2 = cp5.addSlider("F",0,1000,500,400,150,300,40);
slider2.setColor(new CColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
slider2.setLabelVisible(false);


texto1 = cp5.addTextlabel("label")
                    .setText("LABORATORIO TRES")
                    .setPosition(210,50)
                    .setColorValue(0xffffffFF)
                    .setFont(createFont("Comic Sans MS",30))
                    ;


texto2 = cp5.addTextlabel("label1")
                    .setText("TIEMPO ENCENDIDO (ms)")
                    .setPosition(90,120)
                    .setColorValue(0xffffffFF)
                    .setFont(createFont("Comic Sans MS",15))
                    ;            


texto3 = cp5.addTextlabel("label2")
                    .setText("TIEMPO APAGADO (ms)")
                    .setPosition(460,120)
                    .setColorValue(0xffffffFF)
                    .setFont(createFont("Comic Sans MS",15))
                    ;

//nombre de estudiante
texto4 = new Textlabel(cp5,"Estudiante: Lady Garay",40,230,600,200);
texto4.setFont(createFont("verdana",15));
// programa
}

void draw()
{
background(0,0,0);
 texto4.draw(this);  
}

void controlEvent (ControlEvent evento)
{
String nombre = evento.getController().getName();
int valor = int(evento.getController().getValue());
serial.write(nombre + ":" + valor);
println(nombre + ":" + valor);    
}





No hay comentarios:

Publicar un comentario