Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********** Proyecto **********
- * Laboratorio 9
- * Autor: Josue Mauricio Hurtado Mosquera
- * Descripcion:
- * 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 shield.
- */
- /********** Constantes **********/
- #define TOTAL_LED 8 // Total LEDs RGB
- /********** Variables **********/
- 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] = {0, 1, 0, 1, 1, 0, 1, 0};
- int g[TOTAL_LED] = {0, 0, 1, 0, 0, 1, 1, 0};
- int b[TOTAL_LED] = {1, 0, 0, 0, 1, 1, 0, 0};
- // 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);
- //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); // RED
- digitalWrite(pin_r, HIGH);
- pinMode(pin_g, OUTPUT); // GREEN
- digitalWrite(pin_r, HIGH);
- pinMode(pin_b, OUTPUT); // BLUE
- digitalWrite(pin_r, HIGH);
- }
- void loop() {
- // send data only when you receive data:
- if (Serial.available() > 0) {
- //letr = Serial.read();
- val = Serial.parseInt();
- Serial.print(letr);
- Serial.println(val);
- }
- //condiciones para la escojencia del patron
- if (val == 1) {
- patron1();
- }
- if (val == 2) {
- patron2();
- }
- if (val == 3) {
- patron3();
- }
- if (val == 4) {
- patron4();
- }
- if (val == 5) {
- patron5();
- }
- if (val == 6) {
- patron6();
- }
- if (val == 7) {
- patron7();
- }
- if (val == 8) {
- patron8();
- }
- }
- 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);
- }
- //patrones de movimiento de los leds
- void patron1() {
- for (int i = 0; i < TOTAL_LED; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void patron2() {
- for (int i = 8; i >= 0; i--) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- for (int i = 0; i < 8; i++) {
- apagar_led(led[i], r[i], g[i], b[i]);
- }
- }
- void patron3() {
- 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]);
- }
- for (int i = TOTAL_LED ; i >= 0; i--) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void patron4() {
- 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]);
- }
- }
- void patron5() {
- 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 ; i >= 0; i--) {
- apagar_led(led[i], r[i], g[i], b[i]);
- }
- }
- void patron6() {
- for (int i = 0; i < TOTAL_LED/2; i++) {
- encender_led(led[i], r[i], g[i], b[i]);
- encender_led(led[4+i], r[i], g[i], b[i]);
- }
- for (int i = TOTAL_LED/2 ; i >= 0; i--) {
- encender_led(led[8-i-1], r[i], g[i], b[i]);
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void patron7() {
- 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--) {
- encender_led(led[i], r[i], g[i], b[i]);
- }
- }
- void patron8() {
- for (int i = TOTAL_LED ; i >= 0; i--) {
- apagar_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