Advertisement
Villalba2006

POST_50_Emisor

Nov 28th, 2016
3,671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.81 KB | None | 0 0
  1. /*  TITULO: Enviando mensajes de texto mediante módulos RF a 433MHz - CÓDIGO PARA EL EMISOR
  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.     En este programa vamos a conectar nuestro "Arduino Emisor" al PC para que lea los caracteres
  14.     introducidos en el monitor serie del IDE de Arduino, para posteriormente enviarlos mediante
  15.     radiofrecuencia (433MHz), a través del módulo Emisor RF que tiene conectado en el pin digital 12.
  16.    
  17.  
  18.     ESQUEMA DE CONEXION
  19.    
  20.                                       +-----+
  21.          +----[PWR]-------------------| USB |--+
  22.          |                            +-----+  |
  23.          |         GND/RST2  [ ][ ]            |
  24.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |  
  25.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |  
  26.          |                             AREF[ ] |
  27.          |                              GND[ ] |
  28.          | [ ]N/C                    SCK/13[ ] |  
  29.          | [ ]IOREF                 MISO/12[ ] |   Pin DATA del módulo Emisor RF FST-FS1000A
  30.          | [ ]RST                   MOSI/11[ ]~|  
  31.          | [ ]3V3    +---+               10[ ]~|  
  32.          | [ ]5v    -| A |-               9[ ]~|  
  33.          | [ ]GND   -| R |-               8[ ] |  
  34.          | [ ]GND   -| D |-                    |
  35.          | [ ]Vin   -| U |-               7[ ] |  
  36.          |          -| I |-               6[ ]~|  
  37.          | [ ]A0    -| N |-               5[ ]~|  
  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.    - La alimentación y la masa del módulo Emisor RF FST-FS1000A, van directamente conectadas a VCC (+5V)
  49.      y GND respectivamente.  
  50. */
  51.  
  52.  
  53.   // Librería necesaria para el funcionamiento del módulo Emisor RF
  54.   #include <VirtualWire.h>
  55.  
  56.   // Variables globales
  57.   char cad[VW_MAX_MESSAGE_LEN]; // VW_MAX_MESSAGE_LEN = 80, porque lo he modificado en la librería.
  58.   int i=0;
  59.  
  60.   void setup()
  61.   {
  62.     Serial.begin(9600); // Comienzo de la comunicación serie
  63.     Serial.print("Pulsa enter para enviar los datos...\n");
  64.  
  65.     vw_set_ptt_inverted(true);  // Inicializa el software de VirtualWire
  66.     vw_setup(2000); // Velocidad de comunicación (Bits por segundo)
  67.     vw_set_tx_pin(12); // Pin digital para el envío del mensaje (por defecto será el pin 12).
  68.   }
  69.  
  70.   void loop()
  71.   {
  72.     // Si hay comunicación serie...
  73.     if(Serial.available()>0)
  74.     {
  75.       // Cada vez que se lee un carácter se guarda en la cadena de caracteres
  76.       cad[i] = Serial.read();
  77.      
  78.       // Solamente se imprimen en el monitor serie los primeros 32 caracteres
  79.       if(i<32)
  80.       {
  81.         Serial.print(cad[i]);
  82.       }
  83.      
  84.       //Se incrementa una posición de la cadena de caracteres
  85.       i++;
  86.     }
  87.  
  88.     // Cuando pulsemos "enter" se enviarán todos los caracteres a través del emisor RF
  89.     if(cad[i-1] == '\r')
  90.     {
  91.       vw_send((uint8_t *)cad, strlen(cad)); // Se envía la cadena de caracteres
  92.       vw_wait_tx(); // Espera a que finalice el envío del mensaje
  93.      
  94.       // Se vacía la cadena de caracteres
  95.       for(int j=0; j<i; j++)
  96.       {
  97.         cad[j] = ' ';
  98.       }
  99.      
  100.       // Se inicializa la posición de la cadena de caracteres
  101.       i=0;
  102.       delay(200);
  103.     }
  104.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement