Advertisement
Villalba2006

POST_52_Esclavo

Nov 28th, 2016
3,267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.24 KB | None | 0 0
  1. /*  TITULO: Comunicación I²C entre dos Arduinos - Esclavo I²C
  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.     Programa que recibe un número a través comunicación I²C:
  14.     - Si el número recibido es "1" se enciende el zumbador (pulsador presionado).
  15.     - Si el número recibido es "2" se apaga el zumbador (pulsador no presionado).
  16.    
  17.    
  18.     ESQUEMA DE CONEXION
  19.    
  20.                                       +-----+
  21.          +----[PWR]-------------------| USB |--+
  22.          |                            +-----+  |
  23.          |         GND/RST2  [ ][ ]            |
  24.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |   SCL del Arduino Maestro I²C
  25.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |   SDA del Arduino Maestro I²C
  26.          |                             AREF[ ] |
  27.          |                              GND[ ] |
  28.          | [ ]N/C                    SCK/13[ ] |  
  29.          | [ ]IOREF                 MISO/12[ ] |  
  30.          | [ ]RST                   MOSI/11[ ]~|  
  31.          | [ ]3V3    +---+               10[ ]~|  
  32.          | [ ]5v    -| A |-               9[ ]~|  
  33.          | [ ]GND   -| R |-               8[ ] |  
  34.          | [ ]GND   -| D |-                    |
  35.    +5V   | [ ]Vin   -| U |-               7[ ] |  
  36.          |          -| I |-               6[ ]~|  
  37.          | [ ]A0    -| N |-               5[ ]~|   zumbador(+)
  38.          | [ ]A1    -| O |-               4[ ] |  
  39.          | [ ]A2     +---+           INT1/3[ ]~|  
  40.          | [ ]A3                     INT0/2[ ] |  
  41.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  42.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  43.          |            [ ] [ ] [ ]              |
  44.          |  UNO_R3    GND MOSI 5V  ____________/
  45.           \_______________________/
  46.  
  47.   NOTAS:
  48.  
  49.    - Zumbador(-) conectado directamente a GND.
  50.    - Este Arduino se alimenta conectando el pin "Vin" a los +5V del "Arduino Maestro I²C".
  51.    - Las masas de los dos Arduinos tienen que estar unidas entre sí.
  52.    
  53. */
  54.  
  55.   // Incluimos la librería para comunicación I2C
  56.   #include <Wire.h>
  57.  
  58.   int zumbador = 5; // Pin digital 5 para el zumbador
  59.   int x; // Variable auxiliar de la función "recibidoEvento"
  60.  
  61.   void setup()
  62.   {
  63.     Wire.begin(1); // Empezamos la comunicación I2C con el dispositivo esclavo 1
  64.     Wire.onReceive(recibidoEvento); // Irá a la función receiveEvent cuando entre un dato
  65.     pinMode(zumbador, OUTPUT); // Pin digital 5 como salida
  66.   }
  67.  
  68.   void loop()
  69.   {
  70.     delay(100);
  71.   }
  72.  
  73.   void recibidoEvento(int recepcion)
  74.   {
  75.     while(Wire.available()) // Mientras tengamos datos en la entrada
  76.     {
  77.       x = Wire.read(); // Leemos el dato recibido
  78.     }
  79.    
  80.     // Casos de la variable dato (X)
  81.     switch (x)
  82.     {
  83.       case 1: // Si se recibe el número "1"
  84.         digitalWrite(zumbador, HIGH); // Zumbador activado
  85.         break;
  86.       case 2: // Si se recibe el número "2"
  87.         digitalWrite(zumbador, LOW); // Zumbador desactivado
  88.         break;
  89.     }
  90.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement