Wireless+log

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

Na página **SerialLog **é apresentada a função //printfs// que substitui com vantagens os métodos //print// e //println// da classe //Serial//. A função imprime no monitor serial exatamente como os métodos citados, mas dá recursos de formatação e permite um código mais enxuto. Mas a função vai além e, caso o arduino tenha um módulo NRF24L01 instalado, é possível direcionar a impressão para o rádio e transmitir para outro arduino que também tenha o módulo instalado. Isso é especialmente útil para logar o programa que está rodando em um robô móvel, como é o objetivo deste projeto. Note que o objetivo desta função é dar recursos para log e debug e não de estabelecer a comunicação entre dois arduinos. A função só transmite, não tem capacidade de receber transmissões. A ideia é enviar o log do programa para outro arduino que esteja conectado ao computador e este segundo arduino imprime o log no monitor serial. Para a comunicação entre dois arduinos, o que também é um objetivo deste projeto, está em desenvolvimento uma classe cujo primeiro esboço é apresentado na próxima página.

Como usar
A fim de não entulhar o programa com código sem uso, todo o código relacionado à transmissão via rádio está dentro de clausulas //#ifdef//. Então o //#define _RADIO_ON_// precisa estar ativo, ou seja, fora de comentários. Esse define pode ser encontrado no arquivo //serialLog.h//. Na função //setup// chame a função //initTxRadio// informando o pino //CE//, o pino //CS// e o pipe para a comunicação. O pipe pode ser uma string com 5 caracteres. Tem que ser o mesmo nos dois lados da comunicação. Feito isso basta chamar a função //radioOn//. Sempre que usar a função //printfs//, em vez de imprimir na serial, a string será enviada pelo rádio. Se quiser desativar o envio de strings pelo rádio chame a função //radioOff//.

O arduino do outro lado que vai receber as strings enviadas deve usar uma instância da classe RF24control que é explicada na próxima página. Abaixo um código para testar o envio de strings.

code format="java5"
 * 1) include 

uint8_t pipe[6] = "0Ying";


 * 1) define cePin 9
 * 2) define csPin 53 // valor para o Mega, para o Uno ou Nano usar pino 10

void setup { pinMode(statusLed, OUTPUT); // Led de status Serial.begin(57600);

printfs("\nIniciando"); initTxRadio(cePin, csPin, pipe); printfs("Pronto para enviar."); radioOn; }

char st[128]="0123456789012345678901234567890123456789012345678901234567890"; char* s; int count=0;

void loop { delay(50); s=&st[count]; printfs(s); count= (count+1) % 40; } code