Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Laboratorio #9: Controlar desde una interfaz en Processing, el
- * patrón de movimiento y colores en un módulo de 8 LEDs RGB
- * controlado con un Arduino
- * Autor: Sebastian Palacios Tovar
- */
- #define TOTAL_LED 8 // Total LEDs RGB
- int led[TOTAL_LED] = {
- 2, 3, 4, 5, 6, 7, 8, 9
- };
- int pin_r = 11;
- int pin_g = 12;
- int pin_b = 13;
- //colores
- int r[TOTAL_LED] = {1, 0, 0, 1, 0, 1, 0, 1};
- int g[TOTAL_LED] = {0, 1, 0, 1, 1, 0, 0, 1};
- int b[TOTAL_LED] = {0, 0, 1, 0, 1, 1, 0, 1};
- // Guardamos el valor lo que recibimos via serial
- int valor, val;
- char letr;
- //indicado, durante tantos milisegundos
- int ms = 100;
- void setup() {
- // La comunicacion serial sera a 9600 baudios
- Serial.begin(9600);
- Serial.println("Iniciando Lab. 08");
- delay(60);
- // inicializar pines digitales como salida.
- for (int i = 0; i < TOTAL_LED ; i++) {
- pinMode(led[i], OUTPUT);
- digitalWrite(led[i], HIGH);
- }
- // inicializar los pines que controlan el color
- pinMode(pin_r, OUTPUT); // ROJO
- digitalWrite(pin_r, HIGH);
- pinMode(pin_g, OUTPUT); // VERDE
- digitalWrite(pin_r, HIGH);
- pinMode(pin_b, OUTPUT); // AZUL
- digitalWrite(pin_r, HIGH);
- }
- void loop() {
- if (Serial.available() > 0) {
- letr = Serial.read();
- val = Serial.parseInt();
- Serial.print(letr);
- Serial.println(val);
- }
- if (val == 1) {
- secuencia1();
- }
- if (val == 2) {
- secuencia2();
- }
- if (val == 3) {
- secuencia3();
- }
- if (val == 4) {
- secuencia4();
- }
- if (val == 5) {
- secuencia5();
- }
- if (val == 6) {
- secuencia6();
- }
- if (val == 7) {
- secuencia7();
- }
- if (val == 8) {
- secuencia8();
- }
- }
- void encendido(int l, int r, int g, int b) {
- digitalWrite(l, LOW);
- digitalWrite(pin_r, r == 0 ? HIGH : LOW);
- digitalWrite(pin_g, g == 0 ? HIGH : LOW);
- digitalWrite(pin_b, b == 0 ? HIGH : LOW);
- delay(2);
- digitalWrite(l, HIGH);
- digitalWrite(pin_r, HIGH);
- digitalWrite(pin_g, HIGH);
- digitalWrite(pin_b, HIGH);
- }
- void encender_led(int l, int r, int g, int b) {
- digitalWrite(l, LOW);
- digitalWrite(pin_r, r == 0 ? HIGH : LOW);
- digitalWrite(pin_g, g == 0 ? HIGH : LOW);
- digitalWrite(pin_b, b == 0 ? HIGH : LOW);
- delay(ms);
- digitalWrite(l, HIGH);
- digitalWrite(pin_r, HIGH);
- digitalWrite(pin_g, HIGH);
- digitalWrite(pin_b, HIGH);
- }
- void apagar_led(int l, int r, int g, int b) {
- digitalWrite(l, HIGH);
- digitalWrite(pin_r, r == 0 ? LOW : HIGH);
- digitalWrite(pin_g, g == 0 ? LOW : HIGH);
- digitalWrite(pin_b, b == 0 ? LOW : HIGH);
- delay(ms);
- digitalWrite(l, LOW);
- digitalWrite(pin_r, LOW);
- digitalWrite(pin_g, LOW);
- digitalWrite(pin_b, LOW);
- }
- void secuencia0() {
- for (int i = 0; i < TOTAL_LED; i++) {
- encendido(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia1() {
- for (int i = 0; i < TOTAL_LED; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia2() {
- for (int i = TOTAL_LED ; i >= 0; i--) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia3() {
- for (int i = 0; i < TOTAL_LED; i++) {
- encender_led(led[i + 1], r[i], g[i], b[i]);
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia4() {
- for (int i = 0; i < TOTAL_LED; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- for (int i = TOTAL_LED ; i >= 0; i--) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia5() {
- for (int i = 0; i < TOTAL_LED/2; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- encender_led(led[TOTAL_LED-i-1], r[i], g[i], b[i]);
- }
- for (int i = TOTAL_LED/2 ; i >= 0; i--) {
- encender_led(led[TOTAL_LED-i-1], r[i], g[i], b[i]);
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia6() {
- for (int i = 0; i < TOTAL_LED/2; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- encender_led(led[(TOTAL_LED/2)+i], r[i], g[i], b[i]);
- }
- }
- void secuencia7() {
- for (int i = 0; i < TOTAL_LED; i++) {
- apagar_led(led[i], r[i], g[i], b[i]);
- }
- for (int i = TOTAL_LED ; i >= 0; i--) {
- apagar_led(led[i], r[i], g[i], b[i]);
- }
- }
- void secuencia8() {
- for (int i = 0; i < TOTAL_LED; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- for (int i = 0; i < TOTAL_LED; i++) {
- apagar_led(led[i], r[i], g[i], b[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement