Guest User

Untitled

a guest
Jun 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. // Emisor/Receptor Wireless nRF24L01+
  2.  
  3. #include <SPI.h>
  4. #include <Mirf.h>
  5. #include <nRF24L01.h>
  6. #include <MirfHardwareSpiDriver.h>
  7.  
  8. char cadena[10]; //Cadena de caracteres para enviar
  9. String inputstring = ""; //Cadena recibida desde el PC
  10. boolean input_stringcomplete = false; //Cadena recibida completamente desde el PC
  11.  
  12. void setup()
  13. {
  14.  
  15. Mirf.spi = &MirfHardwareSpi; //Inicializa controlador de SPI
  16. Mirf.init(); //Inicializa PINES del SPI
  17. Mirf.payload = 1; //Define el payload, cantidad de bytes que enviara el NRF
  18. Mirf.channel = 90; //Seleccion de canal
  19. Mirf.config();
  20. Mirf.configRegister(RF_SETUP,0x06); // 1MHz
  21.  
  22. Mirf.setTADDR((byte *)"TX_01"); // Seleccion de Direccion
  23. Serial.begin(57600); //Inicializa Serial a 57600 baudios
  24. Serial.println("Iniciando ...");
  25.  
  26. }
  27.  
  28. // ENVIO DE CADENA
  29. void transmit(const char *string)
  30. {
  31. byte c;
  32. for( int i=0 ; cadena[i]!=0x00 ; i++ ){
  33. c = cadena[i];
  34. Mirf.send(&c);
  35. while( Mirf.isSending() ) ;
  36. }
  37.  
  38. }
  39. // ENVIO DE CR/LF
  40. void transmitlf(void)
  41. {
  42. byte c;
  43. c = '\r';
  44. Mirf.send(&c);
  45. while( Mirf.isSending() ) ;
  46.  
  47. c = '\n';
  48. Mirf.send(&c);
  49. while( Mirf.isSending() ) ;
  50. }
  51.  
  52. //Recepcion de caracteres desde serial
  53. void serialEvent() {
  54. char inchar = (char)Serial.read();
  55. // Concatena caracter ingresado
  56. inputstring += inchar;
  57. // Fin de la cadena, recibido <CR>
  58. if(inchar == '\r') {input_stringcomplete = true;}
  59. }
  60.  
  61. void loop()
  62. {
  63. // Condicion para enviar datos
  64. if (input_stringcomplete) {
  65. inputstring.toCharArray(cadena, 10); //Conversion de String a arreglo de caracteres
  66. transmit(cadena); //Transmite cadena ingresada
  67. transmitlf(); //Transmite CR/LF
  68.  
  69. Serial.println("YO: ");
  70. Serial.println(inputstring);
  71. input_stringcomplete = false;
  72. inputstring = "";
  73. }
  74.  
  75. byte c;
  76. int ascii;
  77. //Condicion de Recepcion de datos
  78. if( Mirf.dataReady() )
  79. {
  80. Mirf.getData(&c); //Funcion de libreria MIRF que recibe Byte
  81. ascii=c; //
  82. char caracter= (char)ascii; //Casting de char para convertir de int a char
  83. Serial.print(caracter);
  84. }
  85.  
  86. }
Add Comment
Please, Sign In to add comment