1
Радиомодуль NRF905 (ID:165)
Написано
admin
,
11 May 2015
·
6196 Просмотров
Радиомодуль NRF905 способен передать информацию со скоростью передачи до 50 Kbps на расстояние до 400 метров. Его можно использовать для беспроводной передачи информации с одной платы Arduino на другую. Плата радиомодуля имеет четырнадцати контактный разъем и отдельный разъем для подключения антенны.
Обозначение выводов :
GND - подключение к общему проводу.
VCC - подключение к выводу +3,3 Вольт.
CE - подключение к выводу 7 Arduino.
PWR - подключение к выводу 8 Arduino.
TxEN - подключение к выводу 9 Arduino.
CD - подключение к выводу 2 Arduino.
DR - подключение к выводу 3 Arduino.
CSN - подключение к выводу 10 Arduino.
MISO - подключение к выводу 12 Arduino.
MOSI - подключение к выводу 11 Arduino.
SCK - подключение к выводу 13 Arduino.
Остальные выводы использоваться не будут.
После скачивания файла архива nrf905.zip, поместите содержимое архива в папку libraries, которая находится в папке с программой Arduino.
Для работы нам понадобится две платы Arduino.
Попробуем с помощью радиомодуля передать информацию с одной платы Arduino на другую.
Примерный скетч передатчика - сервера выглядит следующим образом:
Подключаем приемник - клиент к другой плате Arduino, включаем монитор порта и видим каждую секунду изменяющиеся цифры . Теперь можно поэкспериментировать. Проверьте, как положение антенн влияет на дальность связи, какая максимальная дальность связи.
Ссылка на витрину магазина http://dvrobot.ru/238/431.html
Обозначение выводов :
GND - подключение к общему проводу.
VCC - подключение к выводу +3,3 Вольт.
CE - подключение к выводу 7 Arduino.
PWR - подключение к выводу 8 Arduino.
TxEN - подключение к выводу 9 Arduino.
CD - подключение к выводу 2 Arduino.
DR - подключение к выводу 3 Arduino.
CSN - подключение к выводу 10 Arduino.
MISO - подключение к выводу 12 Arduino.
MOSI - подключение к выводу 11 Arduino.
SCK - подключение к выводу 13 Arduino.
Остальные выводы использоваться не будут.
Библиотека: Радиомодуль NRF905 (ID:165)
Последние обновленные 28 Oct 2022 01:18
После скачивания файла архива nrf905.zip, поместите содержимое архива в папку libraries, которая находится в папке с программой Arduino.
Для работы нам понадобится две платы Arduino.
Попробуем с помощью радиомодуля передать информацию с одной платы Arduino на другую.
Примерный скетч передатчика - сервера выглядит следующим образом:
/* * Wait for data and reply. * * 7 -> CE * 8 -> PWR * 9 -> TXE * 2 -> CD * 3 -> DR * 10 -> CSN * 12 -> SO * 11 -> SI * 13 -> SCK */ #include <nRF905.h> #include <SPI.h> #define RXADDR 0x586F2E10 // Address of this device (4 bytes / long data type) #define TXADDR 0xFE4CA6E5 // Address of device to send to (4 bytes / long data type) void setup() { // Start up nRF905_init(); // Set address of this device nRF905_setRXAddress(RXADDR); // Put into receive mode nRF905_receive(); Serial.begin(9600); Serial.println("Server started"); } void loop() { Serial.println("Waiting for ping..."); // Make buffer for data byte buffer[NRF905_MAX_PAYLOAD]; // Wait for data while(!nRF905_getData(buffer, sizeof(buffer))); // Set address of device to send to nRF905_setTXAddress(TXADDR); // Set payload data (reply with data received) nRF905_setData(buffer, sizeof(buffer)); // Send payload (send fails if other transmissions are going on, keep trying until success) while(!nRF905_send()); // Put back into receive mode nRF905_receive(); Serial.println("Got ping"); }Примерный скетч приемника - клиента выглядит следующим образом:
/* * Time how long it takes to send some data and get a reply * Should be around 14-16ms with default settings. * * 7 -> CE * 8 -> PWR * 9 -> TXE * 2 -> CD * 3 -> DR * 10 -> CSN * 12 -> SO * 11 -> SI * 13 -> SCK */ #include <nRF905.h> #include <SPI.h> #define RXADDR 0xFE4CA6E5 // Address of this device (4 bytes / long data type) #define TXADDR 0x586F2E10 // Address of device to send to (4 bytes / long data type) #define TIMEOUT 1000 // 1 second ping timeout // Just some random data to send byte data[NRF905_MAX_PAYLOAD] = { 0x0A, 0x68, 0x45, 0xFA }; void setup() { // Start up nRF905_init(); // Set address of this device nRF905_setRXAddress(RXADDR); // Put into receive mode nRF905_receive(); Serial.begin(9600); Serial.println("Client started"); } void loop() { unsigned long startTime = millis(); // Set address of device to send to nRF905_setTXAddress(TXADDR); // Set payload data nRF905_setData(data, sizeof(data)); // Send payload (send fails if other transmissions are going on, keep trying until success) while(!nRF905_send()); // Put into receive mode nRF905_receive(); // Make buffer for reply byte buffer[NRF905_MAX_PAYLOAD]; bool success; // Wait for reply with timeout unsigned long sendStartTime = millis(); while(!(success = nRF905_getData(buffer, sizeof(buffer))) && millis() - sendStartTime < TIMEOUT); if(success) { unsigned int totalTime = millis() - startTime; Serial.print("Ping time: "); Serial.print(totalTime); Serial.println("ms"); } else Serial.println("Ping timed out"); delay(1000); }Подключаем передатчик- сервер к одной плате Arduino, относим его на некоторое расстояние.
Подключаем приемник - клиент к другой плате Arduino, включаем монитор порта и видим каждую секунду изменяющиеся цифры . Теперь можно поэкспериментировать. Проверьте, как положение антенн влияет на дальность связи, какая максимальная дальность связи.
Ссылка на витрину магазина http://dvrobot.ru/238/431.html