domingo, 25 de agosto de 2013

LABORATORIO 4

DESCRIPCIÓN

En este laboratorio se controlaran el tiempo de apagado y el tiempo de encendido de los leds con un interfaz desarrollado con un programa de desarrollo de controladores en el cual simularemos dos potenciometros, los cuales eran usados en el laboratorio pasado para controlar los tiempos de apagado y encendido de los diodos leds. la comunicación entre este programa y el controlador arduino se usara por medio de comunicación serial la cual nos permitirá enviar datos rápidamente al arduino, luego este interpretara dichos datos y según las instrucción indicadas en el programa del chip arduino este actuara y cumplirá con las instrucciones indicadas.

Como se podra apreciar en la siguiente imagen, se hace muestra de la estructura del programa y el interfaz de mando del sistema processing.


IMAGEN DEL INTERFAZ DE MANDO


IMAGEN DEL SISTEMA DE PROGRAMACIÓN EN ARDUINO y PROCESSING


IMAGEN DE TRABAJO EN CONJUNTO DE AMBOS PROGRAMAS Y EL USO DEL INTERFAZ DE MANDO. 


MATERIALES

  1. 8 diodos led
  2. Kit de desarrollo arduino duominalove
  3. 8 resistencias de 220 ohmios
    DIAGRAMAS



    los diagramas fueron desarrollados con el programa de diseño de circuitos llamado fritzing

    DIAGRAMA DE MONTAJE EN PROTOBOARD


    DIAGRAMA ESQUEMÁTICO



    DIAGRAMA PCB PARA MONTAJE EN TARJETA PERFORADA

    FOTOS DEL PROCESO DE MONTAJE

    foto 1

    foto 2

    foto 3


CÓDIGO PROCESING

import processing.serial.*;
import controlP5.*;
ControlP5 cp5;
Slider slider1;
//Button boton1;
Knob   perilla1;
Serial puerto;

void setup(){
  size(600,400);
  puerto = new Serial(this, Serial.list()[0],9600);
  cp5 = new ControlP5(this);
  slider1 = cp5.addSlider("t",0,1000,200,40,40,300,40);
  slider1.setColor(new CColor (0xFF00FF00,0xFF808080,0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF));
 // boton1 = cp5.addButton("aceptar",50,40,100,80,40);
 // boton1.setColor(new CColor (0xFF00FF00,0xFF808080,0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF));
  perilla1 = cp5.addKnob("q",0,500,150,400,40,100);
  perilla1.setColor(new CColor (0xFF00FF00,0xFF808080,0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF));
  }
  
  void draw()
    {
    background(0x00000000);
    }
    
    void controlEvent (ControlEvent  theEvent){
     
     String nombre=theEvent.getController().getName();
      int valor=int(theEvent.getController().getValue());
      println( nombre + ":" + valor);
     puerto.write(nombre+valor);
     } 

CÓDIGO ARDUINO

#define MAXLED 8

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

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

void loop() {
  if (Serial.available()>0){
    valor=Serial.read();
    if(valor=='t')
      t_on=Serial.parseInt();
    
    if(valor=='q')
      t_off=Serial.parseInt();


  }
  on(led[i], t_on);
  off(led[i], t_off);
  i+=inc;
  if (i>MAXLED-1) inc=-1;
  if (i==0) inc=+1;

}

void on(int led, int ms) {
  digitalWrite(led, HIGH);
  delay(ms);
}

void off(int led, int ms) {
  digitalWrite(led, LOW);
  delay(ms); 
}


No hay comentarios:

Publicar un comentario