Advertisement
Villalba2006

POST_52_Maestro

Nov 28th, 2016
3,264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.33 KB | None | 0 0
  1. /*  TITULO: Comunicación I²C entre dos Arduinos - Maestro 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 envía un "1" (presionado) o un "0" (no presionado), a través de comunicación I²C,
  14.     en función del estado en el que se encuentre el pulsador.
  15.    
  16.    
  17.     ESQUEMA DE CONEXION
  18.    
  19.                                       +-----+
  20.          +----[PWR]-------------------| USB |--+
  21.          |                            +-----+  |
  22.          |         GND/RST2  [ ][ ]            |
  23.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |   SCL del Arduino Esclavo I²C
  24.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |   SDA del Arduino Esclavo I²C
  25.          |                             AREF[ ] |
  26.          |                              GND[ ] |
  27.          | [ ]N/C                    SCK/13[ ] |  
  28.          | [ ]IOREF                 MISO/12[ ] |  
  29.          | [ ]RST                   MOSI/11[ ]~|  
  30.          | [ ]3V3    +---+               10[ ]~|  
  31.          | [ ]5v    -| A |-               9[ ]~|  
  32.          | [ ]GND   -| R |-               8[ ] |  
  33.          | [ ]GND   -| D |-                    |
  34.          | [ ]Vin   -| U |-               7[ ] |  
  35.          |          -| I |-               6[ ]~|  
  36.          | [ ]A0    -| N |-               5[ ]~|  
  37.          | [ ]A1    -| O |-               4[ ] |   PA
  38.          | [ ]A2     +---+           INT1/3[ ]~|  
  39.          | [ ]A3                     INT0/2[ ] |  
  40.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  41.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  42.          |            [ ] [ ] [ ]              |
  43.          |  UNO_R3    GND MOSI 5V  ____________/
  44.           \_______________________/
  45.  
  46.   NOTAS:
  47.  
  48.    - Los pulsadores suelen tener dos pines, que vamos a denominar PA y PB (si es de 4 sólo usamos 2 de ellos)
  49.    - Conexión PULL-DOWN del pulsador.
  50.        - PB conectado a VCC.
  51.        - PA conectado a GND a través de una R=10K ohms.
  52.    - Las masas de los dos Arduinos tienen que estar unidas entre sí.
  53.        
  54. */
  55.  
  56.   // Incluimos la librería para comunicación I2C
  57.   #include <Wire.h>
  58.  
  59.   int estado = LOW; // Asignamos el valor 0 a la variable estado
  60.   int pulsador = 4; // Pin digital para el pulsador
  61.  
  62.   void setup()
  63.   {
  64.     // Comienza la comunicación I2C, el paréntesis está vacío porque es el Maestro
  65.     Wire.begin();
  66.     pinMode(pulsador, INPUT); // Pin digital 4 como entrada
  67.   }
  68.  
  69.   void loop()
  70.   {
  71.     estado = digitalRead(pulsador); // Comprobamos el estado del pulsador
  72.  
  73.     // Si el pulsador está presionado
  74.     if(estado == HIGH)
  75.     {
  76.       Wire.beginTransmission(1); // Comenzamos la transmisión con el dispositivo 1
  77.       Wire.write(1); // Mandamos el número 1
  78.       Wire.endTransmission();  // Terminamos la transmisión con el dispositivo 1
  79.     }
  80.     // Si el pulsador no está presionado
  81.     else
  82.     {
  83.       Wire.beginTransmission(1); // Comenzamos la transmisión con el dispositivo 1
  84.       Wire.write(2); // Mandamos el número 2
  85.       Wire.endTransmission(); // Terminamos la transmisión con el dispositivo 1
  86.     }
  87.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement