Advertisement
Villalba2006

POST_40

Nov 25th, 2016
2,215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.32 KB | None | 0 0
  1. /*  TITULO: Control de una Matriz LED 3X3 con un Joystick Analógico
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Con este programa controlamos el encendido/apagado de los LEDS de una matriz LED 3x3, mediante
  14.     el uso de un Joystick, además, podremos visualizar las coordenadas de los puntos y los valores
  15.     que los potenciómetros del joystick están entregando a las entradas analógicas A0 y A1 de
  16.     Arduino a cada instante.
  17.    
  18.    
  19.     ESQUEMA DE CONEXION
  20.    
  21.                                       +-----+
  22.          +----[PWR]-------------------| USB |--+
  23.          |                            +-----+  |
  24.          |         GND/RST2  [ ][ ]            |
  25.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  26.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  27.          |                             AREF[ ] |
  28.          |                              GND[ ] |
  29.          | [ ]N/C                    SCK/13[ ] |  
  30.          | [ ]IOREF                 MISO/12[ ] |  
  31.          | [ ]RST                   MOSI/11[ ]~|  
  32.          | [ ]3V3    +---+               10[ ]~|  FILA 1 de la matriz LED 3x3
  33.          | [ ]5v    -| A |-               9[ ]~|  FILA 2 de la matriz LED 3x3
  34.          | [ ]GND   -| R |-               8[ ] |  FILA 3 de la matriz LED 3x3
  35.          | [ ]GND   -| D |-                    |
  36.          | [ ]Vin   -| U |-               7[ ] |  COLUMNA 1 de la matriz LED 3x3
  37.          |          -| I |-               6[ ]~|  COLUMNA 2 de la matriz LED 3x3
  38.     VRx  | [ ]A0    -| N |-               5[ ]~|  COLUMNA 3 de la matriz LED 3x3
  39.     VRy  | [ ]A1    -| O |-               4[ ] |  
  40.          | [ ]A2     +---+           INT1/3[ ]~|  
  41.          | [ ]A3                     INT0/2[ ] |  
  42.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  43.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  44.          |            [ ] [ ] [ ]              |
  45.          |  UNO_R3    GND MOSI 5V  ____________/
  46.           \_______________________/
  47.  
  48.   NOTAS:
  49.    
  50.    - Conexión del Joystick:
  51.        - VCC del Joystick --> VCC de Arduino
  52.        - GND del Joystick --> GND de Arduino
  53.        - VRx --> A0 de Arduino
  54.        - VRy --> A1 de Arduino
  55.        
  56. */
  57.  
  58.   // Valores máximos y mínimos de los potenciómetros del Joystick, diferentes para cada Joystick.
  59.   int max_x = 1010;
  60.   int min_x = 0;
  61.   int max_y = 1020;
  62.   int min_y = 0;
  63.  
  64.   int filas[]={10,9,8}; // Pines digitales para las filas
  65.   int columnas[]={7,6,5}; // Pines digitales para las columnas
  66.  
  67.   // Variables internas del programa
  68.   int x, y, valor_x, valor_y;
  69.   int columna, fila;
  70.   int h, i, j;
  71.  
  72.   byte numero_fila[3]={1,2,4};
  73.   byte numero_columna[3]={6,5,3};
  74.   byte enciende_columna, enciende_fila;
  75.  
  76.   void setup()
  77.   {
  78.     Serial.begin(9600);
  79.     // Pines digitales 5, 6, 7, 8, 9 y 10 como salidas para los LEDS
  80.     for(int i=0; i<3; i++)
  81.     {
  82.       pinMode(filas[i],OUTPUT);
  83.       pinMode(columnas[i],OUTPUT);
  84.     }
  85.   }
  86.  
  87.   void loop()
  88.   {
  89.     x = analogRead(A0); // Potenciómetro del eje x
  90.     y = analogRead(A1); // Potenciómetro del eje y
  91.    
  92.     valor_x = map(x,min_x,max_x,-1,1); // Valor de la posición X entre (-1,1)
  93.     valor_y = map(y,min_y,max_y,1,-1); // Valor de la posición Y entre (1,-1)
  94.    
  95.     Serial.print("Punto(");
  96.     Serial.print(valor_x);
  97.     Serial.print(",");
  98.     Serial.print(valor_y);
  99.     Serial.print(")");
  100.     Serial.print(" ---> Valores analogicos: ");
  101.     Serial.print("x = ");
  102.     Serial.print(x);
  103.     Serial.print(", y = ");
  104.     Serial.println(y);
  105.    
  106.     // Llamada a la función que ilumina los LEDS
  107.     joystick(x,y);
  108.  
  109.   }
  110.  
  111.   // Función que ilumina los LEDS de la Matriz LED 3x3 según la posición del Joystick
  112.   void joystick(int x,int y)
  113.   {
  114.     columna = map(x,min_x,max_x,2,0);
  115.     fila = map(y,min_y,max_y,2,0);
  116.     h=2;
  117.    
  118.     for(j=0; j<3; j++)
  119.     {
  120.         enciende_columna = bitRead(numero_columna[columna],h);
  121.         digitalWrite(columnas[j],enciende_columna);
  122.         enciende_fila = bitRead(numero_fila[fila],h);
  123.         digitalWrite(filas[j],enciende_fila);
  124.         h=h-1;
  125.     }
  126.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement