rubenelportero

Tercera práctica arduino

Jul 25th, 2013
699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.53 KB | None | 0 0
  1. // Programa de pruebas para la comunicación entre PC y arduino
  2. // Creado por rubenelportero
  3. // http://rubenelportero.net http://ingenieroaburrido.com
  4.  
  5. int X = 0; //variable integer de los milisegundos del parpadeo del led
  6. byte Y = 3; //estado del led (2 = cada vez parpadea mas rapido, 1 = cada vez parpadea mas lento, Y= 3 Led apagado).
  7. byte orden = 0; //variable donde se guardaran los datos recibidos del ordenador.
  8. byte Z = 0; //variable para el funcionamiento del modo1
  9. int modo1() { // la función del parpadeo decreciente/creciente [práctica 2]
  10.    if (X > 50 and Y == 2 and orden > 48) //Si "X" es mayor que 50 y el modo "Y...
  11.   {
  12.     X = X - 50; //... a X se le resta 50
  13.    }
  14.     else if (X >= 1 and Y == 2 and orden > 48) //Si no fuese asi pero "X" es mayor o igual que 1 e "Y" es dos...
  15.      {
  16.       X = X - 1; //... a X se le resta 1
  17.      }
  18.      else if (X < 1 and Y == 2 and orden > 48) //Si no fuese asi pero "X" es menor o igual que 1 e "Y" es dos...
  19.       {
  20.        Y = 1; //"Y" pasa a ser 1, (cambia de modo)
  21.       }
  22.    if (X <= 1000 and Y == 1 and orden > 48) //Si "X" es menor o igual que 00 e "Y" es 1...
  23.    {
  24.     X = X + 50; //... a X se le suma 50
  25.    }
  26.     else //si no fuese asi...
  27.     {
  28.      Y = 2; //"Y" cambia a 2, cambiando el modo
  29.     }
  30.   }
  31. // The setup() solo ocurre al iniciar el programa. (1 vez)
  32.  
  33. void setup()   {                
  34.   // iniciamos el PIN 13 como output para darle tension y encender asi el led
  35.   pinMode(13, OUTPUT); // El led de la arduino nano esta en el PIN 13
  36.   Serial.begin(115200);  //iniciamos la comunicacion en 115200 baudios
  37. }
  38. // The loop() se ejecuta indefinidamente.
  39.  
  40. void loop()                    
  41. {
  42.   if (Y != 3) {  // Si Y es distinto de 3, entonces...
  43.   digitalWrite(13, HIGH);   // encendemos el LED
  44.   delay(X);                  // esperamos "X" milisegundos
  45.   digitalWrite(13, LOW);    // apagamos el LED
  46.   delay(X);  // esperamos "X" milisegundos
  47.   if (Z == 1) { //si el modo1 está activado, ejecutamos la funcion
  48.     modo1();
  49.   }
  50.   }
  51.   if (Serial.available() > 0) { //si recibimos datos...
  52.      orden = Serial.read(); // los almacenamos en una variable
  53.       if (orden == 49) { //49 es el valor de la tecla "1" del ordenador
  54.         Serial.print("modo LED apagado activado"); //manda un mensaje al ordenador
  55.         Serial.print("\n");
  56.         Y = 3;
  57.         Z = 0;
  58.       }
  59.         else if (orden == 50) { //50 es el valor de la tecla "2" del ordenador
  60.          Serial.print("modo LED encendido activado"); //manda un mensaje al ordenador
  61.          Serial.print("\n");
  62.          X = 0;
  63.          Y = 1;
  64.          Z = 0;
  65.        }
  66.         else if (orden == 51) { //51 es el valor de la tecla "3" del ordenador
  67.          Serial.print("modo LED parpadeante con decrecimiento y crecimiento activado");
  68.          Serial.print("\n"); //manda un mensaje al ordenador
  69.          Y = 2;
  70.          X = 1000;
  71.          Z = 1;
  72.        }
  73.         else if (orden == 52) { //52 es el valor de la tecla "4" del ordenador
  74.          Serial.print("modo LED parpadeante cada 3 segundos activado");
  75.          Serial.print("\n"); //manda un mensaje al ordenador
  76.          Y = 0;
  77.          X = 3000;
  78.          Z = 0;
  79.        }
  80.         else if (orden == 53) { //53 es el valor de la tecla "5" del ordenador
  81.          Serial.print("modo LED parpadeante cada 2 segundos activado");
  82.          Serial.print("\n"); //manda un mensaje al ordenador
  83.          Y = 0;
  84.          X = 2000;
  85.          Z = 0;
  86.        }
  87.         else if (orden == 54) { //54 es el valor de la tecla "6" del ordenador
  88.          Serial.print("modo LED parpadeante cada segundo activado");
  89.          Serial.print("\n"); //manda un mensaje al ordenador
  90.          Y = 0;
  91.          X = 1000;
  92.          Z = 0;
  93.        }
  94.         else if (orden == 55) { //55 es el valor de la tecla "7" del ordenador
  95.          Serial.print("modo LED parpadeante cada medio segundo activado");
  96.          Serial.print("\n"); //manda un mensaje al ordenador
  97.          Y = 0;
  98.          X = 500;
  99.          Z = 0;
  100.        }
  101.         else if (orden == 56) { //56 es el valor de la tecla "8" del ordenador
  102.          Serial.print("modo LED parpadeante cada 200 milisegundos activado");
  103.          Serial.print("\n"); //manda un mensaje al ordenador
  104.          Y = 0;
  105.          X = 200;
  106.          Z = 0;
  107.        }
  108.         else if (orden == 57) { //57 es el valor de la tecla "9" del ordenador
  109.          Serial.print("modo LED parpadeante follao perdio activado");
  110.          Serial.print("\n"); //manda un mensaje al ordenador
  111.          Y = 0;
  112.          X = 30;
  113.          Z = 0;
  114.        }
  115.    }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment