Ciao a tutti! Sono da poco entrato nel "mondo" Arduino.
Ho iniziato cercando di realizzare una rete di sensori wireless, collegando alcuni sensori a due board Arduino e cercando di inviare i dati acquisiti ad un PC tramite il protocollo ANT utilizzando dei transceiver Nordic nRF24AP1... e questo è il problema...
I transceiver hanno un interfaccia seriale, li ho collegati quindi alle porte 0 e 1 dell' Arduino, e l' RTS alla porta 2.
Ora, iniziando una semplice configurazione di prova...il transceiver non mi dà nessun feedback ai comandi che invio... :-/
In pratica dovrebbe darmi un "ok" se i messaggi di configurazione vanno a buon fine...
int rts = 2;
int reply = 0;
void setup()
{
Serial.begin(4800); //inizializzo la seriale a 4800
pinMode(rts, INPUT); //uso la porta 2 come RTS dell' ANT
delay(1000);
rts=digitalRead(2);
//reset
if ( rts==LOW ) //controllo il PIN rts
{
Serial.print(0xa4,HEX); // SYNC Byte
Serial.print(0x01,HEX); // LENGTH Byte
Serial.print(0x4a,HEX); // Message ID Byte ( ANT_ResetSystem() )
Serial.print(0x00,HEX); // Data Byte N (N=LENGTH)
Serial.print(0xef,HEX); // Checksum
}
delay(1000);
rts=digitalRead(2);
//assignch()
if ( rts==LOW ) //controllo il PIN rts
{
Serial.print(0xa4,HEX); // SYNC Byte
Serial.print(0x03,HEX); // LENGTH Byte
Serial.print(0x42,HEX); // Message ID Byte ( ANT_AssignChannel() )
Serial.print(0x00,HEX); // Channel no. 0
Serial.print(0x10,HEX); // Channel type (TX)
Serial.print(0x00,HEX); // Network no. 0
Serial.print(0xf5,HEX); // Checksum
}
delay(1000);
if (Serial.available() > 0) {
reply = Serial.read();
Serial.println(reply, DEC);
}else { Serial.println ("nessuna risposta");}
...ho postato solo l'inizio del codice, ma dovrei già ottenere risposta dopo l' assign channel...
I miei dubbi sono questi:
1- Sbaglio ad inviare i dati sulla seriale?
(li dovrei scrivere come stringhe, byte, bit...ecc...non so'...sul manuale del protocollo ANT sono scritti in esadecimale)
2- Sbaglio nel leggere la risposta del transceiver?
Qualunque consiglio è gradito!