Подключение к ардуине
Arduino Nano, UNO
SCK — D13
MOSI — D11
MISO — D12
CSN — D10
CE/SS — D9
Arduino MEGA
SCK — D52
MOSI — D51
MISO — D50
CSN — D53
CE/SS — D49
Для СЕ и CSN можно использовать любые пины (меняется в скетче RF24 radio(9,10);).
Для улучшения качества связи, рекомендуется припаять конденсатор ~100мкф между плюсом и минусом модуля.
Пример №1
Итак, нам понадобится библиотека RF24, две ардуины, два модуля и один светодиод.
Первая ардуина будет по очереди отправлять два числа — 255 и 155:
Вторая ардуина будет принимать числа (255 и 155) и включать/выключать светодиод подключенный к D6:
Пример №2
Первая ардуина будет посылать значения температуры и влажности второй ардуине. Потребуется библиотека stDHT.
Отправка:
Приём:
Здесь показаны простые примеры, «чтоб заработало», а вот для вдумчивого изучения рекомендую обратится к примерам из библиотеки.
SCK — D13
MOSI — D11
MISO — D12
CSN — D10
CE/SS — D9
SCK — D52
MOSI — D51
MISO — D50
CSN — D53
CE/SS — D49
Для СЕ и CSN можно использовать любые пины (меняется в скетче RF24 radio(9,10);).
Для улучшения качества связи, рекомендуется припаять конденсатор ~100мкф между плюсом и минусом модуля.
Программирование
Пример №1
Итак, нам понадобится библиотека RF24, две ардуины, два модуля и один светодиод.
Первая ардуина будет по очереди отправлять два числа — 255 и 155:
#include
#include
RF24 radio(9, 10); // можно использовать любые
const uint32_t pipe = 123456789; // адрес
byte massiv[1];
void setup()
{
Serial.begin(57600);
radio.begin();
radio.setDataRate(RF24_250KBPS); // скорость обмена данными RF24_1MBPS или RF24_2MBPS
radio.openWritingPipe(pipe); // открыть канал на отправку
}
void loop() {
massiv[0] = 255;
radio.write(massiv, 1);
delay(500);
massiv[0] = 155;
radio.write(massiv, 1);
delay(500);
}
Вторая ардуина будет принимать числа (255 и 155) и включать/выключать светодиод подключенный к D6:
#include
#include
RF24 radio(9, 10);
const uint32_t pipe = 123456789;
byte massiv[4];
void setup() {
pinMode(6, OUTPUT);
Serial.begin(57600);
radio.begin();
radio.setDataRate(RF24_250KBPS); // RF24_1MBPS или RF24_2MBPS
radio.openReadingPipe(1,pipe); // открыть канал на приём
radio.startListening(); // приём
}
void loop() {
if(radio.available())
{
radio.read(massiv, 1);
if(massiv[0] == 255)
{
Serial.println(massiv[0]);
digitalWrite(6, HIGH);
}
if(massiv[0] == 155)
{
Serial.println(massiv[0]);
digitalWrite(6, LOW);
}
}
}
Пример №2
Первая ардуина будет посылать значения температуры и влажности второй ардуине. Потребуется библиотека stDHT.
Отправка:
#include
#include
RF24 radio(9, 10); #include "stDHT.h"
DHT sens(DHT22);
const uint32_t pipe = 123456789; byte massiv[2];
void setup()
{
Serial.begin(57600);
radio.begin();
radio.setDataRate(RF24_250KBPS);
radio.openWritingPipe(pipe);
}
void loop() {
int t = sens.readTemperature(2); // чтение датчика на пине 2
int h = sens.readHumidity(2);
massiv[0] = t;
massiv[1] = h;
radio.write(massiv, 2);
delay(2000);
}
Приём:
#include
#include
RF24 radio(9, 10);
const uint32_t pipe = 123456789;
byte massiv[2];
void setup() {
pinMode(6, OUTPUT);
Serial.begin(57600);
radio.begin();
radio.setDataRate(RF24_250KBPS);
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop() {
if(radio.available())
{
radio.read(massiv, 2);
int t = massiv[0];
int h = massiv[1];
Serial.println(t);
Serial.println(h);
}
}
Здесь показаны простые примеры, «чтоб заработало», а вот для вдумчивого изучения рекомендую обратится к примерам из библиотеки.
рекомендую обратится к примерам из библиотеки.
Комментариев нет:
Отправить комментарий
Создайте свой комментарий.