Autor Tema: APORTE - Arduino con RF433MHz y Librería RadioHead  (Leído 2641 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado humberto 02

  • PIC16
  • ***
  • Mensajes: 190
APORTE - Arduino con RF433MHz y Librería RadioHead
« en: 10 de Junio de 2021, 16:40:13 »
Buenas Tardes

Introducción:
Necesitaba enviar una señal inalámbrica y pensé en hacer dos interfaces para que me queden en futuras pruebas.

Además creí oportuno cambiar la librería Virtualwire.h por la RadioHead.h.

Todos los ejercicios (propuestos en la Web) tienen un pequeño error en el cual muchas personas expresaron que habían fracasado sus intentos con la librería de RadioHead.h .

Esto fue lo que me hizo intentar hacer el cambio de una librería por otra. Finalmente encontré el problema (y como siempre) quise dejar documentada la solución.

El problema radicaba en dos puntos.
1-   Declarar en el Sketch previamente las variables: uint8_t delaycounts; y char message;
2-   Remplazar la línea RH_ASK driver;   por RH_ASK driver(2000, 11, 12);   // 200bps, TX, RX

Conclusión:
Al compilar los Sketch’s existentes en la nube notaremos varios errores de compilación; pero si hacemos estos remplazos notaremos que la compilación será Exitosa; logrando Transmitir y Recibir sin ningún problema.

Link en los cuales obtener el material necesario para poder trabajar con la Librería RadioHead.

Apunte práctico de la librería:
https://www.gme.cz/data/attachments/dsh.772-146.1.pdf

Explicación detallada de la Librería:
https://www.airspayce.com/mikem/arduino/RadioHead/

Librería para Descargar:
https://electronoobs.com/eng_arduino_RadioHead.php

Resumen de los Sketch

EMISOR / TRANSMISOR
Código: [Seleccionar]
#include <RH_ASK.h>
#include <SPI.h> // No se usa pero es necesario compilarlo

uint8_t delaycounts;
char message;

//RH_ASK driver;
RH_ASK driver(200, 11, 12); // 200bps, TX en D3 (pin 2), RX en D4 (pin 3)

void setup() {
     Serial.begin(9600);

     pinMode(12,OUTPUT);
     pinMode(11,INPUT);

     pinMode(3,OUTPUT); digitalWrite(3,HIGH); // Activo nPn

     
     if (!driver.init())
     Serial.println("(init) Fallo la INICIALIZACION");
}

void loop() {
     const char *msg = "Hola Tito!";
     driver.send((uint8_t *)msg, strlen(msg));
     driver.waitPacketSent();
     Serial.println(msg);
     delay(2500);
}

RECEPTOR
Código: [Seleccionar]
#include <RH_ASK.h>
#include <SPI.h> // No se usa pero es necesario compilar

uint8_t delaycounts;
char message;
int k=0; // Contador de mensajes recibidos

//RH_ASK driver;
RH_ASK driver(200, 11, 12); // 200bps, TX en D3 (pin 2), RX en D4 (pin 3)

void setup(){
     Serial.begin(9600); // Solo depuracion
     pinMode(12,OUTPUT);
     pinMode(11,INPUT);
     if (!driver.init())
     Serial.println("(init) Fallo la INICIALIZACION");
     Serial.println("Comienzo Recepcion");
}

void loop() {
     uint8_t buf[12];
     uint8_t buflen = sizeof(buf);
     if (driver.recv(buf, &buflen)) {
         // Se recibe un mensaje con una buena suma de comprobacion, volcarlo.
         Serial.print("Mensaje: ");
         Serial.print((char*)buf);
         Serial.println(k++);
     }
}

Les deseo lo mejor y un cordial saludo desde Gualeguaychú.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #1 en: 06 de Abril de 2022, 09:16:59 »
Estoy empezando con Arduino y sus variantes. Me interesa sobretodo el tema de domotica, comunicación e interfaces de usuario.
Voy a jugar un poco con esa librería y ver de hacer algo practico.

¿Tu hiciste algo a nivel practico, que módulos de radio utilizaste?.

Saludos.

Desconectado humberto 02

  • PIC16
  • ***
  • Mensajes: 190
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #2 en: 09 de Abril de 2022, 17:15:30 »
Hola AcoranTf un gusto conocerte.

Si (las comunicaciones inalambricas) desde muy pequeño han despertado muchisima curiosidad. Desde que entró en casa el Primer Televisor Zenith Blanco y Negro con Control Remoto (año 1969). Mi pasión era comprender como lograba apretar una tecla y ver como giraba el selector de canales.

Pero volviendo a tu pregunta. He trabajado con excelentes resultados con todos los módulos disponibles en nuestro mercado. (bluetooth HC05, nRF24L01, RF433MHz y el RF315MHz (con C. Remoto).

Solo puedo decirte que todos los arriba mencionados me han dejado EXCELENTES experiencias. Cada uno de ellos; son módulos Robustos y de muy buenos resultados.

Pero eso si; es fundamental aclararte. Que para estar satisfechos con cada uno. Es necesario trabajar muchas horas encima y conocerlos muy bien. Todo lo que veas y te cuenten en la Web se limitan a pura zanata basada en ejemplos básicos. Pero no profundos para lograr sacarles LO MEJOR de cada uno.

*Es necesario tomar un protoboard con buenos cables de conexión donde anules ruidos y malas conexiones.
*Es necesario alimentarlos con la correspondiente Tensión y Corriente buscando una "armonia" en su alimentación y apoyado de un Condensador (como el caso del nRF24L01).
Y yo te doy mi palabra que descubriras en cada uno de ellos una SORPRENDENTE respuesta. Y así comprobarás que nada de lo que muestra la Web lo dicen o mencionan.

Y por sobre todas las cosas. Ese módulo de "dos pesos" que todos "subestiman por su costo" He logrado atravesar 7, (siete). Si como lees. (SIETE)  paredes de 0,30cm y 0,15cm de espesor recibiendo la trama de datos "PERFECTAMENTE" y sin perder señal. Me estoy refiriendo al RF433MHz. Los que dicen que no supera los 30cm entre emisor y receptor NO TIENEN idea alguna de como sacarle el mayor provecho al módulo.

Claro está; que cada uno de ellos, responderá de acuerdo a tus necesidades especificas. Pero si supiste interpretar mis comentarios verás que cada uno terminan siendo una maravilla.

En este momento estoy trabajando sobre una impresora "común" Tonner y un par de Bluetooth(s)

Aqui te dejo otros (por si te interesa) para que veas como hay que estudiarlos para sacarles todo lo mejor que tienen escondidos.

https://www.youtube.com/watch?v=l1GZb6zC_X4
https://www.youtube.com/watch?v=iyvw7YN6SuU
https://www.youtube.com/watch?v=iRSJMm3EgR4&t=6s
https://www.youtube.com/watch?v=CbpPXhU-4-A

Un cordial saludo y te deseo lo mejor con estos módulos.








« Última modificación: 09 de Abril de 2022, 17:19:17 por humberto 02 »

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #3 en: 10 de Abril de 2022, 07:24:08 »
Hola AcoranTf un gusto conocerte.

Si (las comunicaciones inalambricas) desde muy pequeño han despertado muchisima curiosidad. Desde que entró en casa el Primer Televisor Zenith Blanco y Negro con Control Remoto (año 1969). Mi pasión era comprender como lograba apretar una tecla y ver como giraba el selector de canales.

Ante todo gracias por tu detallada respuesta.
Me ocurre igual, soy curioso por naturaleza y no me basta poner en marcha algun cacharrito, porque lo describen en la web y ya. Necesito comprender que es lo que hice y porque y como funciona.

Citar
Pero volviendo a tu pregunta. He trabajado con excelentes resultados con todos los módulos disponibles en nuestro mercado. (bluetooth HC05, nRF24L01, RF433MHz y el RF315MHz (con C. Remoto).

Solo puedo decirte que todos los arriba mencionados me han dejado EXCELENTES experiencias. Cada uno de ellos; son módulos Robustos y de muy buenos resultados.

Totalmente de acuerdo, yo tambien he jugado con algunos y los resultados a poco que te esmeres, son muy alentadores.

Citar
Pero eso si; es fundamental aclararte. Que para estar satisfechos con cada uno. Es necesario trabajar muchas horas encima y conocerlos muy bien. Todo lo que veas y te cuenten en la Web se limitan a pura zanata basada en ejemplos básicos. Pero no profundos para lograr sacarles LO MEJOR de cada uno.

*Es necesario tomar un protoboard con buenos cables de conexión donde anules ruidos y malas conexiones.
*Es necesario alimentarlos con la correspondiente Tensión y Corriente buscando una "armonia" en su alimentación y apoyado de un Condensador (como el caso del nRF24L01).
Y yo te doy mi palabra que descubriras en cada uno de ellos una SORPRENDENTE respuesta. Y así comprobarás que nada de lo que muestra la Web lo dicen o mencionan.

Y por sobre todas las cosas. Ese módulo de "dos pesos" que todos "subestiman por su costo" He logrado atravesar 7, (siete). Si como lees. (SIETE)  paredes de 0,30cm y 0,15cm de espesor recibiendo la trama de datos "PERFECTAMENTE" y sin perder señal. Me estoy refiriendo al RF433MHz. Los que dicen que no supera los 30cm entre emisor y receptor NO TIENEN idea alguna de como sacarle el mayor provecho al módulo.

Claro está; que cada uno de ellos, responderá de acuerdo a tus necesidades especificas. Pero si supiste interpretar mis comentarios verás que cada uno terminan siendo una maravilla.

Yo solo he realizado algunas pruebas con el modulo receptor, extraido de una alarma vieja y varios emisores de alarmas, coche, etc.
El resultado es bueno y funciona perfectamente.
El modulo receptor de RF tiene dos salidas, una digital pero con el inconveniente de no tener "squelch" o silenciador cuando no esta recibiendo, por lo que siempre hay ruido en la salida y vuelve loco al Arduino. La otra salida es analogica, de las llamadas "raw", o sea en bruto y al igual que la digital no tiene squelch, pero dado que tiene un nivel de continua muy bajo y sobre ella la modulacion digital, le hice un adaptador de niveles con un 74HC132, que es una cuadruple puerta NAND con disparador Smith y quedo perfecto.

Citar
En este momento estoy trabajando sobre una impresora "común" Tonner y un par de Bluetooth(s)

Aqui te dejo otros (por si te interesa) para que veas como hay que estudiarlos para sacarles todo lo mejor que tienen escondidos.

Gracias, le echare un vistazo a esos enlaces.

Citar
https://www.youtube.com/watch?v=l1GZb6zC_X4
https://www.youtube.com/watch?v=iyvw7YN6SuU
https://www.youtube.com/watch?v=iRSJMm3EgR4&t=6s
https://www.youtube.com/watch?v=CbpPXhU-4-A

Un cordial saludo y te deseo lo mejor con estos módulos.

Saludos.
« Última modificación: 10 de Abril de 2022, 07:30:44 por AcoranTf »

Desconectado humberto 02

  • PIC16
  • ***
  • Mensajes: 190
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #4 en: 10 de Abril de 2022, 10:27:26 »
Buenos Días Aco

Citar
El modulo receptor de RF tiene dos salidas, una digital pero con el inconveniente de no tener "squelch" o silenciador cuando no esta recibiendo, por lo que siempre hay ruido en la salida y vuelve loco al Arduino

Hablar de “comunicaciones” inalámbricas. Requieren y necesitan tomar una clara postura (con estos módulos).

Porque si no está claro este punto. Tendrán razón todos aquellos que dicen: “Ha él modulito chino ese… si, si anda bien para hacer alguna cosilla”.

Luego de alcanzar la experiencia y “sabiduría” en nuestro protoboard; debemos darle paso a nuestro “merecido por cierto” Datasheet y Osciloscopio; logrando (de este modo) la perfección de esa señal. Buscando así el equilibrio justo por medio de un simple condensador o resistencia. Llegando a revivir toda la sabiduría que Kirchooff nos legara. Pero claro eso significa MUCHAS horas sobre el “modulito chino ese”.

En mi opinión personal veo tres pautas que has obviado; pero me voy por la más rápida. Tu INPUT DATA debe ir “directamente” al pin D2, D3 de Interrupción de tu Arduino con una acabada y clara función que reciba tu trama. De este modo podrás comprobar que tu Arduino no se enloquece.

Te deseo lo mejor y un cordial saludo.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #5 en: 10 de Abril de 2022, 16:03:12 »
Creo que no me entendiste.
Tengo osciloscopio y por tanto lo primero que hice fue analizar ambas salidas.
La salida digital, que supongo incluye un integrador, en ausencia de señal en antena, presenta pulsos aleatoriamente, con niveles TTL. Por tanto no puedo hacer nada para evitar que disparen permanentemente la interrupción del Arduino y lo vuelvan loco. Quizas discriminando por software secuencias de impulsos no válidas, pero no lo veo la mejor opción, ya que mantendria ocupado el microcontrolador un tiempo que seguro necesitaré para otras tareas.
Por contra, con el integrador externo, (74HC132),  solo se produce una interrupción cuando realmente se recibe un codigo y por tanto el funcionamiento es optimo.
Por cierto la entrada de datos a Arduino, está en el pin 2.

Saludos.

Desconectado humberto 02

  • PIC16
  • ***
  • Mensajes: 190
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #6 en: 11 de Abril de 2022, 07:44:12 »
B. Días Aco

Emm. En esta no tengo argumentos, jamás sometí a estos módulos al Osciloscopio. Todos mis comentarios y referencias estan basados en los resultados obtenidos (de mis propias experiencias y resultados).

Probablemente aparezca otro lector que pueda intervenir en el hilo e intercambiar resultados desde los aparatos de medición.

Cordial saludo, buena semana para todos.

Desconectado Miguel 55

  • PIC10
  • *
  • Mensajes: 4
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #7 en: 02 de Junio de 2023, 09:05:58 »
Hola buenas tardes a todos, un gusto de comunicarme con Uds.
No estoy seguro, por ser nuevo en el foro, si uso el camino correspondiente (si no es así disculpen) .
Soy nuevo en el tema de Arduino y todo su entorno,  agradezco que me aclaren dudas que tengo y si es posibles ejemplos.
Intento mandar una señal digital (de un pulsador) y una analógica (de un potenciómetro) desde un arduino Mega (que estará el emisor),  a un arduino Pro micro, (que estará el receptor)  usando módulo receptor inalámbrico RF de 433 MHz.  La distancia no superara los 6 metros.
Desde ya le agradezco.
Gracias.
Saludos.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #8 en: 02 de Junio de 2023, 09:50:38 »
Hola buenas tardes a todos, un gusto de comunicarme con Uds.
No estoy seguro, por ser nuevo en el foro, si uso el camino correspondiente (si no es así disculpen) .
Soy nuevo en el tema de Arduino y todo su entorno,  agradezco que me aclaren dudas que tengo y si es posibles ejemplos.
Intento mandar una señal digital (de un pulsador) y una analógica (de un potenciómetro) desde un arduino Mega (que estará el emisor),  a un arduino Pro micro, (que estará el receptor)  usando módulo receptor inalámbrico RF de 433 MHz.  La distancia no superara los 6 metros.
Desde ya le agradezco.
Gracias.
Saludos.

Que tal Miguel 55,

Bienvenido al foro. ¿cuál es tu duda? Solo mencionas lo que deseas hacer pero no eres puntual en la duda que tienes.
Me imagino que ya has resuelto la parte de la lectura del estado del botón y la conversión analógica-digital del potenciómetro. Si es así ya tienes una parte resuelta. O tienes alguna duda también para esto?
Si pudieras explicarnos un poco más los detalles de tu(s) duda(s), sería excelente.

Saludos,

elreypic.

Desconectado Miguel 55

  • PIC10
  • *
  • Mensajes: 4
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #9 en: 02 de Junio de 2023, 10:48:42 »
Hola elreypic2 , un gusto,  tengo duda de como hacer el sketch de arduino (si tuviera ej para hacerlo) para que se comunique con mis necesidades.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #10 en: 02 de Junio de 2023, 16:44:31 »
Miguel 55,

Hace ya algún tiempo expuseun tema para usar los módulos RF y cómo transmitir datos. Pero en ese caso estoy usando microcontroladores PIC y lenguaje C de CCS. Pero fácilmente puedes trasladarlo arduino.

http://www.todopic.com.ar/foros/index.php?topic=46977.msg393024#msg393024

Espero te sirva.

elreypic.

Desconectado Miguel 55

  • PIC10
  • *
  • Mensajes: 4
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #11 en: 03 de Junio de 2023, 14:03:11 »
Hola elreypic2, muchas gracias por la cooperación,  aclaraciones,  recuerda, que soy novato en todo esto (estoy aprendiendo) discúlpame si me equivoco. 
1º)  leí (Utilizando módulos RF de bajo costo) que me adjuntaste (es una exposición de un técnico nivel  alto la tuya) entiendo que para entenderla y razonarla totalmente mi nivel es muy bajo.  2º) Copie los códigos finales, para el transmisor (código C) en un sketch de arduino, y el código final, parte del receptor (código C) en otro sketch.    3º) La libreria que tengo que usar con RF433MHz es la que aparece en los código C, ??? si fuera así donde la descargo !!.
4º) No se como incluir en los sketch tanto la entrada, digital y analógica en el trasmisor (que ira con el Mega 2560) y las correspondiente en el receptor (que ira con el Pro micro).
 
Adjunto los archivos ino

Gracias.
Un Saludo.

TRANSMISOR.

#include <12F629.h>
 
#FUSES NOWDT                    //No Watch Dog Timer  Sin temporizador de vigilancia
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT  Oscilador RC interno, sin CLKOUT
#FUSES NOCPD                    //No EE protection
#FUSES NOPROTECT                //Code not protected from reading  Código no protegido contra lectura
#FUSES NOMCLR                   //Master Clear pin used for I/O   Clavija maestra utilizada para E/S
#FUSES PUT                      //Power Up Timer   Temporizador de encendido
#FUSES BROWNOUT                 //Reset when brownout detected   Reiniciar cuando se detecta una caída de tensión                   
#FUSES RESERVED                 //Used to set the reserved FUSE bits   Se utiliza para configurar los bits FUSIBLES reservados
 
#use delay(clock=4000000)
#use rs232(baud=2400,parity=N,xmit=PIN_A1,bits=8,invert,STREAM=RFPORT)
#use rs232(baud=9600,parity=N,xmit=PIN_A4,rcv=PIN_A2,bits=8,invert,STREAM=RS232)
 
#byte TMR0=0X01
#byte INTCON=0X0B
#bit  T0IF=INTCON.2
 
 
void SEND_DATA(BYTE txbyte)
{
    int i,j,b,me; 
    b = txbyte; 
    for (i=0; i<2; i++)
    {
        me = 0;         // manchester encoded txbyte
        for (j=0 ; j<4; j++)
        {
            me >>=2;
            if (bit_test(b,0))
                me |= 0b01000000; // 1->0
            else
                me |= 0b10000000; // 0->1
            b >>=1;
        }
        fputc(me,RFPORT);         
    }
}
 
 
void main()
{
   int8  i, data_tx[32], lenght;
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_bit);
   while (1)
   {
      lenght = 0;    //Inicializa la longitud del frame
      data_tx[lenght] = fgetc(RS232);     //Recibe el primer dato
      lenght++;   //Incrementa el valor de la longitud del frame
      T0IF = 0;
      TMR0 = 0;
      while (lenght<32 && !T0IF)
      {
         if (kbhit(RS232))
         {
            data_tx[lenght] = fgetc(RS232); 
            lenght++;
            T0IF=0;
            TMR0=0;
         }
      }
      for (i=0; i<16; i++)
      {
         fputc(0xF0,RFPORT);    //Envia 16 bytes de inicio
      }
      fputc(0xF8,RFPORT);  //Envia bytes de reconocimiento
      fputc(0xF8,RFPORT);
      fputc(0xFA,RFPORT);
      SEND_DATA(lenght);   //Envia la longitud de frame
      for (i=0; i<lenght; i++)
      {
         SEND_DATA(data_tx);  //Envia los datos
      }
         
   }
}


void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}


RESEPTOR.

#include <12F629.h>
 
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOCPD                    //No EE protection
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES PUT                      //Power Up Timer
#FUSES BROWNOUT                 //Reset when brownout detected         
#FUSES RESERVED                 //Used to set the reserved FUSE bits
 
#use delay(clock=4000000)
#use rs232(baud=2400,parity=N,rcv=PIN_A1,bits=8,STREAM=RFPORT,invert)
#use rs232(baud=9600,parity=N,xmit=PIN_A0,bits=8,STREAM=RS232,invert)
 
int8  nib[2], i, dec1, rx_data, lenght, data_rx[32];
 
BYTE DECODE_DATA(int8 encoded)  //decode function for manchester encoded data. This code is working fine. I checked it.
{
   int8 enc, dec, pattern, i;
   enc = encoded;
       
    dec = 0;   
    for (i=0; i<4; i++) {
   
        dec >>=1;
        pattern = enc & 0b11;       
        if (pattern == 0b01)        // 1
           bit_set(dec,3);
        else if (pattern == 0b10)
           bit_clear(dec,3);       // 0
        else
            return 0xff;            // illegal code
           
        enc >>=2; 
    }   
    return (dec);
}
 
 
void main()
{
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   fprintf(RS232,"RF Link\n\r"); //Envia el mensaje "RF Link"
   while (1)
   {
      do
      {
         do
         {
            do
            {
               rx_data = fgetc(RFPORT);   //Recibe el primer dato via RF
            } while (rx_data!=0xF8);   //Si el dato recibido no es 0XF8, continua recibiendo datos
            rx_data = fgetc(RFPORT);   //Recibe el segundo dato
         } while (rx_data!=0xF8);   //Si el dato recibido no es 0XF8, regresa al inicio y espera nuevo dato
         rx_data = fgetc(RFPORT);   //Recibe el tercer dato
      } while (rx_data!= 0xFA);     //Si el dato recibido no es 0XFA, regresa al inicio y espera nuevo dato
     
      nib[0] = fgetc(RFPORT);    //Recibe la primera parte baja de la longitud del frame a recibir
      dec1 = DECODE_DATA(nib[0]);   //Decodifica la parte baja de la longitud
      nib[1] = fgetc(RFPORT);    //Recibe la parte alta de la longitud
      lenght = DECODE_DATA(nib[1]); //Decodifica la parte alta de la longitud del frame
      lenght<<=4;    //Posiciona la parte alta de la longitud
      lenght |= dec1;   //Ensambla la longitud del frame
      for (i=0; i<lenght; i++)   //Prepara para recibir los datos via RF
      {
         nib[0]=fgetc(RFPORT);      //Recibe la parte baja del dato
         dec1=DECODE_DATA(nib[0]);  //Decodifica la parte baja del dato
         nib[1]=fgetc(RFPORT);      //Recibe la parte alta del dato
         data_rx=DECODE_DATA(nib[1]);  //Decodifica la parte alta del dato
         data_rx<<=4;   //Coloca el nible alto en su posicion correcta
         data_rx|=dec1;    //Ensambla el dato recibido
      }
      for (i=0;i<lenght;i++)     //Prepara para enviar los datos recibidos
      {
         fputc(data_rx,RS232);   //Envia el dato via RS232
      }
     
   } 
}

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}


Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #12 en: 03 de Junio de 2023, 19:32:55 »
Que tal Miguel 55,

Por lo que puedo ver lo que tú requieres es que alguien te proporcione el código a tu medida para el arduino.
Eso no va a pasar aquí en el foro.
Tú necesitas tener algo y apuntar a tu duda en específico.
Mencionas que no sabes ni siquiera leer una entrada digital, por lo que te recomiendo que comiences con eso. Para ello hay multitud de tutoriales y ejemplos, eso es lo básico para un novato como tú lo mencionas. Y por lo tanto querer brincar a una transmisión serial sin tener conocimientos básicos del lenguaje C o del entorno ARDUINO no tiene sentido.

Mi recomendación es que comiences realizando un código sencillo de encender un led cuando presionas un pulsador. Luego puedes hacer una transmisión serial simple, luego realizar la lectura de un potenciómetro usando el ADC y enviar el valor al puerto serial.
Una vez entendido eso, puedes aplicar la técnica que te he compartido. Ahora lo que te he compartido no puede simplemente copiarlo al entorno ARDUINO, porque lo que te compartí es para un microcontrolador PIC y NO para un AVR que es el microcontrolador en un ARDUINO MEGA.

Espero puedas comprender el punto y hagas un pequeño esfuerzo para aprender lo básico desde tu parte.

elreypic.

Desconectado Miguel 55

  • PIC10
  • *
  • Mensajes: 4
Re:APORTE - Arduino con RF433MHz y Librería RadioHead
« Respuesta #13 en: 04 de Junio de 2023, 04:47:39 »
Hola elreypic. comenzare por lo básico.
Gracias.
Saludos.