Leer 2 o mas canales analogicos y transmitirlos mediante RF

Buenas noches estoy realizando pruebas para un proyecto de un mando a radiocontrol mediante los modulos CC1101.


La finalidad del proyecto es construir un control para aeromodelismo que sea de por lo menos 4 canales (salidas digitales PWM).

El modulo a probar es el mencionado anteriormente, la problematica es que no encuentro informacion o tutoriales sobre el uso del mismo.
Lo que logre hasta ahora es hacer que funcione con un solo canal, pero hasta ahi llegué, cual seria la manera correcta de leer 4 entradas analogicas en el emisor y escribirlas en el receptor. Admito que soy muy nuevo en esto de las conexiones por radiofrecuencia y no entiendo mucho.
Este es el codigo de lo logrado hasta ahora.

Emisor

#include <ELECHOUSE_CC1101.h>
#define size 1
int pot = A1;

byte TX_buffer[size]={0};
byte i;

void setup()
{
  pinMode(pot,INPUT);

  ELECHOUSE_cc1101.Init();
  
  for(i=0;i<size;i++)
  {
     TX_buffer[i]=i;
  }
}

void loop()
{
  int val = map(analogRead(pot),0,1024,0,255);
  TX_buffer[0] = val;
  ELECHOUSE_cc1101.SendData(TX_buffer,size);
  delay(1);
}

Receptor

#include <ELECHOUSE_CC1101.h>
int received_number = 0;
int LED = 5;

 void setup()
{
  pinMode(LED, OUTPUT);
  ELECHOUSE_cc1101.Init();
  ELECHOUSE_cc1101.SetReceive();
}

byte RX_buffer[11]={0};
byte size,i,flag;

void loop()
{
  if(ELECHOUSE_cc1101.CheckReceiveFlag())
  {
    size=ELECHOUSE_cc1101.ReceiveData(RX_buffer);
    for(i=0;i<size;i++)
    {
      received_number = RX_buffer[i];
    }
    analogWrite(LED,received_number);
    ELECHOUSE_cc1101.SetReceive();
  }
}

PD: Soy muy nuevo en esto de arduino asi que todo dato por muy obvio que parezca hagamelo saber.

¿Esta expresión es una broma verdad?

Solo poner "CC1101 arduino" en Google y encuentras unos cuantos tutoriales (y ni hablar de información) y encima en español.

No olvides, cuando usas librerías que no están en el administrador, poner el link a la misma.

Una corrección tonta pero significativa
Hacer

int x = map (valor, 0, 1023, 0, 255);

es lo mismo que

int x = valor / 4;

y mucho más rápido.

Y atento porque el máximo valor devuelto por el ADC es 1023, no 1024.

Saludos

Fue una mala manera de expresarme, me referia a que no hay nada parecido a lo que quiero hacer con ese modulo. Y se supone que si escribo aca es porque necesito ayuda, ya que en otros lugares no la encontre de la manera que la necesitaba.
Muchas gracias por la corrección "tonta pero significativa" no lo sabia.

Pero se supone que si encuentras un ejemplo para leer un potenciómetro ya tienes el puntapié para agregar otros 3.
Aprende y entiende como se maneja 1, luego avanzas.

Saludos

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.