PULSADOR + POTENCIÓMETRO

COMPONENTES:

-RGB: Es un sólo un led, pero para representarlo en bitbloq Se conectan a los pines con número ( sólo los que tengan el símbolo de la raya, porque nos permitirá regular la intensidad). Son los que aportarán la luz.

-PULSADOR: También se conecta a un pin numerado. Determina qué función de color del rgb debe ejecutarse en cada momento..

POTENCIÓMERO. Se puede conectar en A0, A1, A2, A3, A4 o A5. Regula la intensidad con la que brillan los leds.







DESCRIPCIÓN:
Declaramos una variable llamada LUZ y le aportamos un valor numérico (0). Esta variable regula la intensidad con la que lucen los leds.
Le ponemos el mismo valor a una variable llamada estado, que nos servirá más tarde para realizar el cambio de color.
Una variable llamada CAMBIO_ESTADO, suma +1 al valor de estado cada vez que la ejecutamos



Para los cambios de colores de las funciones de las variables rojo,verde y azul, escribimos en el pin digital correspondiente el valor analógico "Variable LUZ" dependiendo de que color queremos que se encienda. 

Para colores secundarios como cyan, amarillo y magenta pondremos la variable LUZ en 2 de los pines (los que controlen los colores que lo forman) 

También, declaramos una función llamada APAGADO, en la que todos los pines tienen valor 0 y así, ninguno se enciende.

                                      
Nuestra última función será encender color. Si el estado es 0, se realizará apagado; si es 1, rojo; si es 2, Verde y así, sucesivamente hasta llegar al 6




En el bucle principal, igualamos la variable "LUZ" a lo que lea el potenciómetro / 4 (entre 4 porque el potenciómetro lee en valores del 0 al 1024 y los leds de 0 a 255)
Indicamos que si el pulsador es pulsado, se ejecute la función, "CAMBIO_ESTADO" y, tras esperar 100ms, se ejecute "ENCENDER_COLOR"


CÓDIGO:

/***   Included libraries  ***/


/***   Global variables and function definition  ***/
const int LED_r = 3;
const int LED_g = 6;
const int LED_b = 11;
const int potentiometer = A0;
const int button = 13;

float LUZ = 0;
float ESTADO = 0;
void CAMBIO_ESTADO() {
    if (ESTADO == 6) {
        ESTADO = 0;
    } else {
        ESTADO = ESTADO + 1;
    }
}
void ROJO() {
    analogWrite(3, LUZ);
    analogWrite(6, 0);
    analogWrite(11, 0);
}
void VERDE() {
    analogWrite(6, LUZ);
    analogWrite(11, 0);
    analogWrite(3, 0);
}
void AZUL() {
    analogWrite(11, LUZ);
    analogWrite(6, 0);
    analogWrite(3, 0);
}
void CIAN() {
    analogWrite(11, LUZ);
    analogWrite(6, LUZ);
    analogWrite(3, 0);
}
void AMARILLO() {
    analogWrite(3, LUZ);
    analogWrite(6, LUZ);
    analogWrite(11, 0);
}
void MAGENTA() {
    analogWrite(3, LUZ);
    analogWrite(11, LUZ);
    analogWrite(6, 0);
}
void APAGADO() {
    analogWrite(6, 0);
    analogWrite(11, 0);
    analogWrite(3, 0);
}
void ENCENDER_COLOR() {
    if (ESTADO == 0) {
        APAGADO();
    } else if (ESTADO == 1) {
        ROJO();
    } else if (ESTADO == 2) {
        VERDE();
    } else if (ESTADO == 3) {
        AZUL();
    } else if (ESTADO == 4) {
        CIAN();
    } else if (ESTADO == 5) {
        AMARILLO();
    } else if (ESTADO == 6) {
        MAGENTA();
    }
    delay(1000);
}



/***   Setup  ***/
void setup() {
    pinMode(LED_r, OUTPUT);
    pinMode(LED_g, OUTPUT);
    pinMode(LED_b, OUTPUT);
    pinMode(potentiometer, INPUT);
    pinMode(button, INPUT);

}


/***   Loop  ***/
void loop() {
    LUZ = analogRead(potentiometer) / 4;
    if (digitalRead(button) == 1) {
        ENCENDER_COLOR();
        CAMBIO_ESTADO();
    }
    ENCENDER_COLOR();
}




FRITZING:









Comentarios

Entradas populares de este blog

Redes informáticas :)

Sensor de luz: VERSIÓN 1.0

CÓDIGO 2 (recuperar línea)