jueves, 13 de marzo de 2014

Laboratorio 3

Controlar 8 led's desde el arduino, un led encendido que se mueve en forma continua de izquierda a derecha, via una interfaz grafica en Processing/Control P% para controlar el tiempo de encendido y el tiempo de apagado.

Lista de Elementos Utilizados

Resistencias
Leds
Cables
Pelacable
Protoboard
Arduino UNO
Cable USB

Diagrama del Montaje en la Protoboard












Diagrama Esquemático del Circuito

















Fotos del Montaje























Vídeo Funcionamiento

Codigo 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: jesus lopez \nTecnologia Industrial",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