DESCRIPCION DEL LABORATORIO :
Controlar 8 leds 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.
MATERIALES:
- Arduino- Protoboard
- 8 leds
- 8 Resistencias
- Cable UTP
- Cables
DIAGRAMA EN FRITZING
MONTAJE:
VIDEO:
CODIGO EN ARDUINO:
//Codigo Arduino
//lAB 3
//Leandro Narvaez Ordoñez
//Usc
//Version 1.0
int valor=0;
#define MAX 9
int led[MAX]={
2, 3 , 4, 5, 6, 7, 8, 9,10};
int t_off=500;
int t_on=100;
void setup(){
Serial.begin(9600);
for(int pin=0; pin<=MAX;pin++){
pinMode(led[pin], OUTPUT);
}
}
void loop(){
if (Serial.available()>0){
valor=Serial.read();
if (valor=='O'){
t_on=Serial.parseInt();
}
if (valor=='F'){
t_off=Serial.parseInt();
}
}
for (int pin =0; pin <= MAX; pin++){
prender(led[pin], t_on);
apagar(led[pin], t_off);
}
for (int pin =MAX; pin >= 0; pin--){
prender(led[pin], t_on);
apagar(led[pin], t_off);
}
}
void prender(int le, int tem){
digitalWrite(le, HIGH);
delay(tem);
}
void apagar(int le, int tem){
digitalWrite(le, LOW);
delay(tem);
}
CODIGO EN PROCESING:
//Codigo Processing
//lAB 3
//Leandro Narvaez Ordoñez
//Usc
//Version 1.0
import controlP5.*;
import processing.serial.*;
// Creamos las variables para ControlP5, el Slider y el puerto Serial
ControlP5 cp5;
Knob knobA;
Knob knobB;
Serial serial;
// Solo se ejecuta una vez, al iniciar el Sketch
void setup() {
// Tamaño de la Ventana
size(800, 500);
// Creamos el objeto de ControlP5
cp5 = new ControlP5(this);
// Creamos el objeto Slider
knobA = cp5.addKnob("O", 0, 255, 128, 40, 40, 300);
knobB = cp5.addKnob("F", 0, 255, 128, 400, 40, 300);
// Creamos el objeto del puerto Serial
serial = new Serial(this, Serial.list()[0], 9600);
}
// Se ejecuta N frames por segundo
void draw() {
// En este caso no debe dibujar nada
}
// Cuando ocurra un evento, aquí lo procesamos
void controlEvent(ControlEvent evento) {
// Obtenemos el nombre y el valor del evento
String nombre = evento.getController().getName();
int valor = int(evento.getController().getValue());
// Envíamos el valor al Arduino a través del Serial
serial.write("O"+valor);
serial.write("F"+valor);
// Imprimimos en la consola, para ver que todo va Ok
println(nombre + ":" + valor);
}
No hay comentarios:
Publicar un comentario