111-Com sans fil Launchpad Arduino
Communication sans fil entre Launchpad et Arduino
Voici un montage permettant de faire communiquer un LaunchPad et un Arduino avec un nrf24l01+.
Le nRF24L01+:
Le Nordic nRF24L01 + est un émetteur-récepteur 2Mbps RF IC de l'ISM 2,4 GHz à faible consommation. Le Nordic nRF24L01 + intègre un émetteur-récepteur RF 2.4GHz complet, synthétiseur RFet une antenne. Spécification du produit ici
Raccordement:
Raccordement sur Arduino UNO:
NRF24 Arduino
1 GND-> GND
2 VCC-> 3.3V
3 CE -> 7
4 CSN-> 6
5 SCK -> 13
6 MOSI -> 11
7 MISO -> 12
8 IRQ-> 2
Raccordement sur le Launchpad:
NRF24 LaunchPad
1 GND-> GND
2 VCC-> 3.3V
3 CE -> P2.0
4 CSN-> P2.1
5 SCK -> P1.5
6 MOSI -> P1.7
7 MISO -> P1.6
8 IRQ-> P2.2
Télécharger la librairie Enrf24.zip qui fonctionne pour l'Arduino et le LaunchPad ici ou sur le site https://github.com/spirilis/Enrf24
Installer la bibliothèque pour le LaunchPad et pour l'arduino.
Programme de réception sur l'Arduino:
#include <Enrf24.h>
#include <nRF24L01.h>
#include <string.h>
#include <SPI.h>
Enrf24 radio(7, 6, 2);
const uint8_t rxaddr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0x01 };
void dump_radio_status_to_serialport(uint8_t);
void setup() {
Serial.begin(9600);
SPI.begin();
SPI.setDataMode(SPI_MODE0);
SPI.setBitOrder(1); // MSB-first
radio.begin(); // Defaults 1Mbps, channel 0, max TX power
dump_radio_status_to_serialport(radio.radioState());
radio.setRXaddress((void*)rxaddr);
radio.enableRX(); // Start listening
}
void loop() {
char inbuf[33];
dump_radio_status_to_serialport(radio.radioState()); // Should show Receive Mode
while (!radio.available(true))
;
if (radio.read(inbuf)) {
Serial.print("Received packet: ");
Serial.println(inbuf);
}
}
void dump_radio_status_to_serialport(uint8_t status)
{
Serial.print("Enrf24 radio transceiver status: ");
switch (status) {
case ENRF24_STATE_NOTPRESENT:
Serial.println("NO TRANSCEIVER PRESENT");
break;
case ENRF24_STATE_DEEPSLEEP:
Serial.println("DEEP SLEEP <1uA power consumption");
break;
case ENRF24_STATE_IDLE:
Serial.println("IDLE module powered up w/ oscillators running");
break;
case ENRF24_STATE_PTX:
Serial.println("Actively Transmitting");
break;
case ENRF24_STATE_PRX:
Serial.println("Receive Mode");
break;
default:
Serial.println("UNKNOWN STATUS CODE");
}
}
Téléchargement du code ici
Programme d'émission sur LaunchPad:
#include <Enrf24.h>
#include <nRF24L01.h>
#include <string.h>
#include <SPI.h>
Enrf24 radio(P2_0, P2_1, P2_2); // P2.0=CE, P2.1=CSN, P2.2=IRQ
const uint8_t txaddr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0x01 };
const char *str_on = "ON"; // Message que l on envois
const char *str_off = "OFF"; // Message que l on envois
void dump_radio_status_to_serialport(uint8_t);
void setup() {
Serial.begin(9600);
SPI.begin();
SPI.setDataMode(SPI_MODE0);
SPI.setBitOrder(1); // MSB-first
radio.begin(); // Defaults 1Mbps, channel 0, max TX power
dump_radio_status_to_serialport(radio.radioState());
radio.setTXaddress((void*)txaddr);
}
void loop() {
Serial.print("Sending packet: ");
Serial.println(str_on);
radio.print(str_on);
radio.flush(); // Force transmit (don't wait for any more data)
dump_radio_status_to_serialport(radio.radioState()); // Should report IDLE
delay(1000);
Serial.print("Sending packet: ");
Serial.println(str_off);
radio.print(str_off);
radio.flush(); //
dump_radio_status_to_serialport(radio.radioState()); // Should report IDLE
delay(1000);
}
void dump_radio_status_to_serialport(uint8_t status)
{
Serial.print("Enrf24 radio transceiver status: ");
switch (status) {
case ENRF24_STATE_NOTPRESENT:
Serial.println("NO TRANSCEIVER PRESENT");
break;
case ENRF24_STATE_DEEPSLEEP:
Serial.println("DEEP SLEEP <1uA power consumption");
break;
case ENRF24_STATE_IDLE:
Serial.println("IDLE module powered up w/ oscillators running");
break;
case ENRF24_STATE_PTX:
Serial.println("Actively Transmitting");
break;
case ENRF24_STATE_PRX:
Serial.println("Receive Mode");
break;
default:
Serial.println("UNKNOWN STATUS CODE");
}
}
Téléchargement du code ici
Une fois le transfert fait vers vos cartes, voici le résultat:
Mise à jour 27/10/2013
Créé avec HelpNDoc Personal Edition: Avantages d'un outil de création d'aide