Classe+RF24control

Home > Robótica > Bibliotecas **Recursos** > RunTimer > Timer2 > CircularBuffer > SerialLog > ActionPlan **Dispositivos** > Ultrassom > Array de sensores > NRF24L01 > Wireless log > **RF24Control** **Movimento** > StepperMotor > StepperMotorTm > DoubleStepper > DoubleStepperTm

A classe //RF24control// é responsável por controlar a comunicação entre dois arduinos utilizando o módulo de RF //NRF24L01//. Ainda está no início de seu desenvolvimento, mas já pode ser utilizada para transmitir e receber strings longas. Usa como base a biblioteca //RF24// criada por J. Coliz (ManiacBug). Essa biblioteca pode ser baixada em @https://github.com/tmrh20/RF24 .No futuro a intenção é que esta classe implemente um protocolo de comunicação mais completo prevendo inclusive vários nós de comunicação. No momento está sendo utilizada para receber as strings enviadas pela função //printfs// explicada nas páginas //SerialLog// e //Wireless log//, mas a classe também tem capacidade de transmissão de strings. Os pontos positivos que justificam o uso da classe é a facilidade de uso, já que a encapsula os detalhes de operação do //NRF24// e a capacidade de enviar receber strings longas de forma transparente para o usuário. Lembrando que a biblioteca //RF24// trabalha com payloads de no máximo 32 bytes, então strings maiores precisam de algum processamento para serem enviadas/recebidas. Para usuários mais avançados, todos os recursos oferecidos pela classe //RF24// continuam presentes, já que a classe //RF24control// é descendente de //RF24//. Abaixo a declaração pública da classe definida no arquivo radioClass.h:

code format="java5" class RF24control: public RF24 { public: RF24control(int cePin, int csPin);

void init(uint8_t *pipe); void txModeOn; void rxModeOn; boolean readStr(char* str, int maxSize); void sendStr(char* str); }; code

E aqui o programa que é usado para receber as strings enviadas pelo robô usando a função //printfs//:

code format="java5"
 * 1) include "radioClass.h"

uint8_t pipe[6]= "0Ying";

RF24control radio(9,10);

void setup { Serial.begin(57600); Serial.println("\nIniciando");

radio.init(pipe); radio.rxModeOn;

Serial.println("Pronto para receber."); }

char st[128];

void loop { if(radio.readStr(st, 128)) {   Serial.println(st); } } code