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); }