PULSADOR + POTENCIÓMETRO
COMPONENTES:
-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.
-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
Publicar un comentario