Evaluación 1 AO g1
| Título | Evaluación 1 AO g1 |
|---|---|
| Asignatura | Interacción y Performatividad |
| Del Curso | Interacción y Performatividad 2019 |
| Carreras | Diseño |
| Nº | 1 |
| Alumno(s) | Omar Nuñez, Rodrigo Toro, Marcelo Mondaca, Christian Gazmuri, Gabriel Olivares Torrijo |
Evaluación
Cree un programa en Arduino que cumpla los siguientes requerimientos
- Encienda 5 leds con un patrón a definir por el alumno.
- Encienda 3 leds con efecto "degradé" o "fade"
- Encienda 1 led RGB con el que debe pasar por los 3 colores principales.
Proceso
Dificultades
- En un principio la primera dificultad fue conectar 4 LEDs, siendo la solución colocar cada lED a un PIN con su resistencia. Conectándolos a tierra creando en la Protoboard una fila única de conexión.
- Problemas con "Fade" en el cual la luz seguía encendida, y cada vez, seguía sumando y sumando mas brillo. La solución fue darle el valor "1" a la variable "Fade", el cual seguía ese aumento pero esta vez, siendo menos perceptible.
- El valor "510" se dio ya que el valor máximo de brillo es "255", entonces para que el LED se encienda y se apague necesitaba esa cantidad de "brillo"
for (i = 0 ; i < 510 ; i++) {
setColor (i, 255, 255);
analogWrite (azul, brillo);
analogWrite (rojo, brillo);
analogWrite (verde, brillo);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (2);
}
- Después se hace una secuencia con los 4 LEDs, probando en ellos el "Fade" y estar conforme con el resultado.
- En paralelo se prueba la conexión RGB en un protoboard aparte, teniendo como primer problema que no encendía. La solución fue conectar el cable a tierra al 5v del arduino.
- En el RGB las luces aparecían aleatoriamente y se investiga en internet como lograr encender el color deseado.
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(3, redValue);
analogWrite(5, greenValue);
analogWrite(6, blueValue);
}
Ademas se hace el "void Color" que sirve para encender combinaciones de colores
void color (int rojo, int verde, int azul) {
analogWrite(3, rojo);
analogWrite(5, verde);
analogWrite(6, azul);
}
Orden de circuito
Video
Código
int azul = 11;
int rojo = 10;
int verde = 9;
int amarillo = 4;
int R = 3;
int G = 5;
int B = 6;
int i;
int brillo = 0;
int fade = 1;
void setup () {
pinMode(azul, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
}
void setColor(int redValue, int greenValue, int blueValue) { //para hacer funcionar el rgb por valores (r,g,b)
analogWrite(3, redValue);
analogWrite(5, greenValue);
analogWrite(6, blueValue);
}
void color (int rojo, int verde, int azul) { //codigo para prender los otros colores que no son rgb
analogWrite(3, rojo);
analogWrite(5, verde);
analogWrite(6, azul);
}
void loop () {
digitalWrite(azul, HIGH); // se prende solo el azul
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 0); //color azul
delay(1000); //est� prendido por 1 segundo
setColor(255, 255, 255); // sin color
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, HIGH); //se prende solo el rojo
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(0, 255, 255); //rojo
delay(1000); //se prende por 1 segundo
setColor(255, 255, 255); //apagar
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, HIGH); //prendido el color verde
digitalWrite(amarillo, LOW);
setColor(255, 0, 255); //color verde
delay(1000);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH); //prendido color amarillo
setColor(0, 0, 255); //prendido color amarillo
delay(1000);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, HIGH);
digitalWrite(rojo, LOW);
digitalWrite(verde, HIGH);
digitalWrite(amarillo, LOW); //prendidos verde y azul
setColor(0, 255, 0); //prendido rosado
delay(500);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, HIGH);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH); //prendido rojo y amarillo
setColor(0, 115, 255); //prendido naranjo
delay(500);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, HIGH);
digitalWrite(rojo, HIGH);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW); // prendido azul y rojo
setColor(10, 255, 120); //magenta
delay(500);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, HIGH);
digitalWrite(amarillo, HIGH);//prendido verde y amarillo
setColor(64, 0, 255); //verde lima
delay(500);
setColor(255, 255, 255);
digitalWrite(amarillo, LOW);
delay(1);
for (i = 0 ; i < 510 ; i++) {
setColor (i, 255, 255);
analogWrite (azul, brillo);
analogWrite (rojo, brillo);
analogWrite (verde, brillo);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (2);
}
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(1000);
for (i = 0 ; i < 510 ; i++) {
setColor (255, i, 255);
analogWrite (azul, brillo);
analogWrite (verde, brillo);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (2);
}
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(1000);
for (i = 0 ; i < 510 ; i++) {
setColor (255, 255, i);
analogWrite (azul, brillo);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (2);
}
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(1000);
digitalWrite(azul, HIGH); // se prende solo el azul
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 0); //color azul
delay(500); //est� prendido por 1 segundo
setColor(255, 255, 255); // sin color
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, HIGH); //se prende solo el rojo
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(0, 255, 255); //rojo
delay(500); //se prende por 1 segundo
setColor(255, 255, 255); //apagar
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, HIGH); //prendido el color verde
digitalWrite(amarillo, LOW);
setColor(255, 0, 255); //color verde
delay(500);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH); //prendido color amarillo
setColor(0, 0, 255); //prendido color amarillo
delay(500);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, HIGH);
digitalWrite(rojo, LOW);
digitalWrite(verde, HIGH);
digitalWrite(amarillo, LOW); //prendidos verde y azul
setColor(0, 255, 0); //prendido rosado
delay(250);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, HIGH);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH); //prendido rojo y amarillo
setColor(0, 115, 255); //prendido naranjo
delay(250);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, HIGH);
digitalWrite(rojo, HIGH);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW); // prendido azul y rojo
setColor(10, 255, 120); //magenta
delay(250);
setColor(255, 255, 255);
delay(1);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, HIGH);
digitalWrite(amarillo, HIGH);//prendido verde y amarillo
setColor(64, 0, 255); //verde lima
delay(250);
setColor(255, 255, 255);
digitalWrite(amarillo, LOW);
delay(1);
for (i = 0 ; i < 255 ; i++) {
setColor (i, 255, 255);
analogWrite (azul, brillo);
analogWrite (rojo, brillo);
analogWrite (verde, brillo);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (5);
}
digitalWrite(azul, HIGH);
digitalWrite(rojo, HIGH);
digitalWrite(verde, HIGH);
setColor(0, 255, 255);
delay(500);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(500);
for (i = 0 ; i < 255 ; i++) {
setColor (255, i, 255);
analogWrite (azul, brillo);
analogWrite (verde, brillo);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (5);
}
digitalWrite(azul, HIGH);
digitalWrite(rojo, HIGH);
digitalWrite(verde, HIGH);
setColor(255, 0, 255);
delay(500);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(500);
digitalWrite(amarillo, HIGH);
delay(1);
for (i = 0 ; i < 255 ; i++) {
analogWrite (azul, brillo);
analogWrite (rojo , brillo);
analogWrite (verde, brillo);
setColor(255, 255, i);
brillo = brillo + fade;
if (brillo <= 0 || brillo >= 255) {
fade = -fade;
}
delay (10);
}
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(3000);
digitalWrite(azul, HIGH);
delay(100);
digitalWrite(azul, LOW);
delay(10);
digitalWrite(rojo, HIGH);
delay(100);
digitalWrite(rojo, LOW);
delay(10);
digitalWrite(verde, HIGH);
delay(100);
digitalWrite(verde, LOW);
delay(10);
digitalWrite(amarillo, HIGH);
delay(100);
digitalWrite(amarillo, LOW);
delay(10);
setColor(0, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 0);
delay(200);
digitalWrite(azul, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
setColor(255, 255, 255);
delay(5000);
}