Evaluación 1 AO g1
De Casiopea
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); }