Constanza Maldonado - Evaluación 1: Arduino Outputs

De Casiopea




TítuloArduino Outputs
Período2019-2019
AsignaturaInteracción y Performatividad
Del CursoInteracción y Performatividad 2019
CarrerasDiseño, Diseño Industrial, Interacción y Servicios
Alumno(s)Constanza Maldonado
ProfesorRenzo Varela

Requerimientos

1. Encienda 5 leds con un patrón a definir por el alumno.

2. Encienda 3 leds con efecto "degradé" o "fade"

3. Encienda 1 led RGB con el que debe pasar por los 3 colores principales.

  • Ya que no puede conseguir un LED RGB, simulé un RGB a través de 3 LED; uno rojo, uno verde y uno azul.

Código


#define led1 13
#define led2 12
#define led3 11
#define led4 10
#define led5  6

#define rgb1 5
#define rgb2 4
#define rgb3 3

#define pi 3.1416

int state = 3;

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(led1, true);
    delay(500);
    digitalWrite(led2, true);
    delay(500);
    digitalWrite(led3, true);
    delay(500);
    digitalWrite(led4, true);
    delay(500);
    digitalWrite(led5, true);
    delay(2500);
    digitalWrite(led1, false);
    delay(500);
    digitalWrite(led2, false);
    delay(500);
    digitalWrite(led3, false);
    delay(500);
    digitalWrite(led4, false);
    delay(500);
    digitalWrite(led5, false);
    delay(2500);
    
  }else if(state == 2){
    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, true);
    digitalWrite(rgb2, false);
    digitalWrite(rgb3, false);
    delay(2000);

    digitalWrite(rgb1, false);
    digitalWrite(rgb2, true);
    digitalWrite(rgb3, false);
    delay(2000);

    digitalWrite(rgb1, false);
    digitalWrite(rgb2, false);
    digitalWrite(rgb3, true);
    delay(2000);
  }
  delay(1);
}


Vista del circuito

Arduino evaluacion 1.png