[DUVIDA] Como colocar um receptor e 5 transmissores com nRF24L01

Olá amigos,

     Chegaram meus modulos nRF24L01 e achei eles incriveis, primeiro exemplo que peguei eles já sairam funcionando( o codigo tá logo abaixo).

     Como a pinagem deles não encaixa na protoboard, eu desenhei um shield que encaixa perfeitamente sobre o arduino UNO e é só meter o codigo,  caso vocês queiram eu posto ele aqui.

   Bem, nos exemplos que tive acesso, sempre rola uma comunicação ponto a ponto, ou seja, um emissor e um transmissor.

   Dei uma catada na net e não vi nenhum codigo explicando como colocar um receptor e alguns transmissores,  tipo 4 transmissores tendo um sensor em cada um transmitindo e um só recebendo.

   Alguem poderia por favor me ensinar e me passar o codigo para a montagem de um receptor e quatro trasmissores ?  OBRIGADO.

________________________________________________________________________________

  O codigo que testei para ponto a ponto foi esse aqui:

** TRANSMISSOR **
/*
Este programa envia duas variáveis inteiras, recebidas em duas entradas analógicas,
via rádio usando um módulo nRF24L01
*/
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int joystick[2];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{ Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
}
void loop(void)
{
  joystick[0] = analogRead(A0);
  joystick[1] = analogRead(A1);
  
  radio.write( joystick, sizeof(joystick) );
}

___________________________________________________________________
** RECEPTOR**
/*
Este programa recebe duas variáveis inteiras, via rádio usando um módulo nRF24L01
 */
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int joystick[2];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();
}
void loop(void)
{
  if ( radio.available() )
  {
    bool done = false;
    while (!done)
    {
      done = radio.read( joystick, sizeof(joystick) );
      Serial.println(joystick[0]);
      Serial.println(joystick[1]);
    }
  }
  else
  {
    Serial.println("Rádio não disponível");
  }
  // Delay para facilitar a visualização das informações no serial monitor
  delay(1000);
}

Exibições: 699

Responder esta

Respostas a este tópico

Amigo este projeto seria para por exemplo pegar tempo por volta pt seja cada vez que passa na frente o sensor reconheceria o sinal?

Caro Fabio Wielewski,

    Cara, eu andei lendo sobre fazer mediçoes de voltas no pistao de um motor, e o equipamento que faz isso se chama TACOMETRO, se vocë digitar TACOMETRO ARDUINO no google ou no youtube vai achar um monte,  sinceramente o que mais gostei foi esse https://www.youtube.com/watch?v=intftlpvSFY

   Para mandar o resultado sem fio a coisa ao que entendi é mais legal você processar o sinal no proprio local e mandar o resultado já processado, visto que se você mandar pulsos, vai super ocupar a transmissáo,  transmissores sem fio depende de varios fatores como banda de transmissáo,  distancia, lags, etc. logo, mandar o valor simples de tempos em tempos é mais util que mandar pulsos.

   Sobre a forma de comunicar, usando arduino devem existir outros metodos, mas os mais legais que encontrei e ESTOU ESTUDANDO NO MOMENTO, sáo transmissáo usando os nRF24L01 e transmissáo usando os Xbee.

   Por enquanto não tenho muito como te ensinar como fazer, pois tambem tô aprendendo,  mas quando tiver mais informaçoes posto aqui.

ninguem pra me ajudar ?

Weider,

Troca para xbee e mate isso em 30s...hahaha :)

PS: Voltei a estuda-lo. Abraços.

Grande amigo e mestre Gustavão,

   Cara, eu dei um tempo nos Xbee justamente aguardando você,  dai pra não ficar parado me meti a estudar os nRF24L01 que a melhor definição que tive até agora é que eles são XBEEs CAPADOS ha ha ha.

   Assim que você puder voltar a ensinar sobre Xbee no modo API, pode ter certeza que serei o aluno mais atencioso do planeta ha ha ha.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço