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
- 8 diodos led
- Kit de desarrollo arduino duominalove
- 8 resistencias de 220 ohmios
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);
}