La carte Arduino UNO Rev 3 A000066 est très certainement le plus modèle le plus populaire et le plus utilisé de la gamme Arduino. Conçue sur la base d'un microcontrôleur ATmega328 avec bootloader intégré, cette version est le modèle officiel fabriqué en Italie.
Transceiver radiofréquence MRF24J40 bande 2,4 GHz
Conçu pour être piloté par un arduino, ce module Pmod intègre un tranceiver radiofréquence 2,4 GHz IEEE 802.15.4™ MRF24J40 Microchip® permettant le développement d'applications sans fil compatible ZigBee®, MiWi™, MiWi P2P et autres protocoles sans fils propriétaires.

![]()

Doté d'un connecteur mâle 2 x 6 broches, ce module pourra être déporté via des cordons optionnels (voir modèles en bas de page).
Ce module est soumis au contrôle de la réglementation américaine relative à l’exportation (15 CFR Part 730 et. seq.).
Exemple d'application avec 2 arduino™ (le programme consiste en un échange de données entre 2 arduino équiqés chacun d'un module PmodRF2).

La note d'application décrite ci-dessous nécessite le téléchargement préalable de librairies(s) additionnelle(s) dont les liens (github) sont indiqués en entête de programme ci-dessous. Une fois téléchargée(s), suivez les instructions pour installer des librairies sur l'Arduino
Programme Arduino : Programme N°1
/************************************************************************
*
* Test du module Pmod transmetteur 2.4 GHz
*
*************************************************************************
* Description: Pmod_RF2
* Les données échangées entre deux modules RF2 sont affichés
* dans le moniteur série (basé sur l'exemple de la bibliothèque).
*
* Matériel
* 1. Arduino Uno
* 2. Module Pmod RF2 (télécharger la bibliothèque
* https://github.com/karlp/Mrf24j40-arduino-library)
*
* Schéma publié sous licence CC Attribution-ShareALike (réalisé avec Fritzing)
*
* N'importez pas le programme par un copier/coller dans l'IDE de l'arduino.
* Utilisez le lien ci-dessous pour télécharger le code source.
*
* Code source téléchargeable ici:
************************************************************************/
// Appel des bibliothèques
#include <SPI.h>
#include <mrf24j.h>
#define Reset 6 // affectation des broches
#define CS 10
#define Interruption 2
Mrf24j mrf(Reset, CS, Interruption); // création de l'objet mrf
long last_time;
long tx_interval = 1000;
unsigned long current_time;
void setup(void)
{
Serial.begin(9600); // initialisation de la liaison série
mrf.reset();
mrf.init();
mrf.set_pan(0x0000); // adresse du canal
mrf.address16_write(0x0001); // adresse du module N°1
attachInterrupt(0, interrupt_routine, CHANGE);
last_time = millis();
interrupts();
}
void interrupt_routine()
{
mrf.interrupt_handler(); // création de l'objet mrf.interrupt
}
void loop()
{
mrf.check_flags(&handle_rx, &handle_tx);
current_time = millis();
if (current_time - last_time > tx_interval)
{
last_time = current_time;
Serial.println("Envoi de la chaine ");
mrf.send16(0x0002, "Bonjour"); // envoi de la chaine au module N°2
}
}
void handle_rx()
{
Serial.print("Reception de la chaine ");
Serial.print(mrf.get_rxinfo()->frame_length, DEC);
Serial.println(" octets");
if(mrf.get_bufferPHY())
{
Serial.println("Packet data (PHY Payload):");
for (int i = 0; i < mrf.get_rxinfo()->frame_length; i++)
{
Serial.print(mrf.get_rxbuf()[i]);
}
}
Serial.println("rnASCII data :");
for (int i = 0; i < mrf.rx_datalength(); i++)
{
Serial.write(mrf.get_rxinfo()->rx_data[i]);
}
Serial.print("rnLQI/RSSI=");
Serial.print(mrf.get_rxinfo()->lqi, DEC);
Serial.print("/");
Serial.println(mrf.get_rxinfo()->rssi, DEC);
}
void handle_tx()
{
if (mrf.get_txinfo()->tx_ok)
{
Serial.println("Transmission OK");
}
else
{
Serial.print("Echec transmission ");
Serial.print(mrf.get_txinfo()->retries);
Serial.println(" essaisn");
}
}
Programme Arduino : Programme N°2
/************************************************************************
*
* Test du module Pmod transmetteur 2.4 GHz
*
*************************************************************************
* Description: Pmod_RF2
* Les données échangées entre deux modules RF2 sont affichés
* dans le moniteur série (basé sur l'exemple de la bibliothèque).
*
* Matériel
* 1. Arduino Uno
* 2. Module Pmod RF2 (télécharger la bibliothèque
* https://github.com/karlp/Mrf24j40-arduino-library)
*
* N'importez pas le programme par un copier/coller dans l'IDE de l'arduino.
* Utilisez le lien ci-dessous pour télécharger le code source.
*
************************************************************************/
// Appel des bibliothèques
#include <SPI.h>
#include <mrf24j.h>
#define Reset 6 // affectation des broches
#define CS 10
#define Interruption 2
Mrf24j mrf(Reset, CS, Interruption); // création de l'objet mrf
long last_time;
long tx_interval = 1000;
unsigned long current_time;
void setup(void)
{
Serial.begin(9600); // initialisation de la liaison série
mrf.reset();
mrf.init();
mrf.set_pan(0x0000); // adresse du canal
mrf.address16_write(0x0002); // adresse du module N°2
attachInterrupt(0, interrupt_routine, CHANGE);
last_time = millis();
interrupts();
}
void interrupt_routine()
{
mrf.interrupt_handler(); // création de l'objet mrf.interrupt
}
void loop()
{
mrf.check_flags(&handle_rx, &handle_tx);
current_time = millis();
if (current_time - last_time > tx_interval)
{
last_time = current_time;
Serial.println("Envoi de la chaine ");
mrf.send16(0x0001, "Lextronic"); // envoi de la chaine au module N°1
}
}
void handle_rx()
{
Serial.print("Reception de la chaine ");
Serial.print(mrf.get_rxinfo()->frame_length, DEC);
Serial.println(" octets");
if(mrf.get_bufferPHY())
{
Serial.println("Packet data (PHY Payload):");
for (int i = 0; i < mrf.get_rxinfo()->frame_length; i++)
{
Serial.print(mrf.get_rxbuf()[i]);
}
}
Serial.println("rnASCII data :");
for (int i = 0; i < mrf.rx_datalength(); i++)
{
Serial.write(mrf.get_rxinfo()->rx_data[i]);
}
Serial.print("rnLQI/RSSI=");
Serial.print(mrf.get_rxinfo()->lqi, DEC);
Serial.print("/");
Serial.println(mrf.get_rxinfo()->rssi, DEC);
}
void handle_tx()
{
if (mrf.get_txinfo()->tx_ok)
{
Serial.println("Transmission OK");
}
else
{
Serial.print("Echec transmission ");
Serial.print(mrf.get_txinfo()->retries);
Serial.println(" essaisn");
}
}
La note d'application ci-dessus a retenu votre attention ? Téléchargez toutes les autres notes d'applications concernant l'utilisation des modules Pmod™ avec un arduino™ Uno.
-
Site du fabricantTélécharger
-
Datasheet du moduleTélécharger