Evaluación 1: AO

De Casiopea



TítuloEvaluación 1: AO
AsignaturaInteracción y Performatividad
Del CursoInteracción y Performatividad 2019
CarrerasDiseño, Diseño Industrial, Interacción y Servicios
1
Alumno(s)Constanza Maldonado, Paulina Diez, Catalina Godoy

Objetivos de la evaluación

  1. Encender 5 leds con un patrón a definir por el alumno.
  2. Encender 3 leds con efecto "degradé" o "fade".
  3. Encender 1 led RGB con el que debe pasar por los 3 colores principales.

Circuito

Ejercicio 1 AO.jpg

Código


#define led1 5
#define led2 6
#define led3 7
#define led4 8
#define led5 9

#define rgb1 10
#define rgb2 11
#define rgb3 12

#define pi 3.1416

int state = 1;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);

  pinMode(rgb1, OUTPUT);
  pinMode(rgb2, OUTPUT);
  pinMode(rgb3, OUTPUT);

}

void loop() {
  if(state == 1){

    digitalWrite(rgb1, HIGH);
    digitalWrite(rgb2, HIGH);
    digitalWrite(rgb3, HIGH);
  
    digitalWrite(led1, HIGH);
    delay(500);
    digitalWrite(led2, HIGH);
    delay(500);
    digitalWrite(led3, HIGH);
    delay(500);
    digitalWrite(led4, HIGH);
    delay(500);
    digitalWrite(led5, HIGH);
    delay(500);
    digitalWrite(led1, LOW);
    delay(500);
    digitalWrite(led2, LOW);
    delay(500);
    digitalWrite(led3, LOW);
    delay(500);
    digitalWrite(led4, LOW);
    delay(500);
    digitalWrite(led5, LOW);
    delay(500);
    }
    
  else if(state == 2){
        digitalWrite(rgb1, HIGH);
    digitalWrite(rgb2, HIGH);
    digitalWrite(rgb3, HIGH);
    
    
    for(float i = 0; i <= (2 * pi); i = i + 2 * pi / 360){
      analogWrite(led3, int(abs(sin(i) * 255)));
      analogWrite(led4, int(abs(sin(i - 2 * pi / 3) * 255)));
      analogWrite(led5, int(abs(sin(i + 2 * pi / 3) * 255)));
      delay(10 * 100/36); // el primer valor (10 en este caso) son los segundos que durara en total
      
    }
    
  }else if(state == 3){
    digitalWrite(rgb1, HIGH);
    digitalWrite(rgb2, LOW);
    digitalWrite(rgb3, LOW);
    delay(800);

    digitalWrite(rgb1, LOW);
    digitalWrite(rgb2, HIGH);
    digitalWrite(rgb3, LOW);
    delay(800);

    digitalWrite(rgb1, LOW);
    digitalWrite(rgb2, LOW);
    digitalWrite(rgb3, HIGH);
    delay(800);
  }
  
  delay(1000); 
  state++;

  if (state > 3){
    state = 1;
    }
  
}

Ejecución