1
nRF24L01 (8 PIN) - (ID:236)
Написано
admin
,
16 May 2015
·
2012 Просмотров
Радиомодуль NRF24L01+ способен передать информацию со скоростью передачи до 2 Mbps на расстояние до 100 метров.
Его можно использовать для беспроводной передачи информации с одной платы Arduino на другую. Данная версия платы радиомодуля имеет восьми контактный разъем.
Обозначение выводов :
GND - подключение к общему проводу.
VCC - подключение к выводу +3,3 Вольт.
CE - подключение к выводу 8 Arduino.
CSN - подключение к выводу 7 Arduino.
MISO - подключение к выводу 12 Arduino.
MOSI - подключение к выводу 11 Arduino.
SCK - подключение к выводу 13 Arduino.
Вывод IRQ использоваться не будет.
После скачивания файла архива Mirf.zip, поместите содержимое архива в папку libraries, которая находится в папке с программой Arduino.
Для работы нам понадобится две платы Arduino.
Попробуем с помощью радиомодуля передать информацию с одной платы Arduino на другую.
Примерный скетч передатчика - сервера выглядит следующим образом:
Подключаем приемник к другой плате Arduino, включаем монитор порта и видим каждую секунду изменяющиеся цифры . Теперь можно поэкспериментировать. Проверьте, как положение приемника и передатчика влияет на дальность связи, какая максимальная дальность связи.
Ссылка на витрину магазина http://dvrobot.ru/238/299/428.html.
Его можно использовать для беспроводной передачи информации с одной платы Arduino на другую. Данная версия платы радиомодуля имеет восьми контактный разъем.
Обозначение выводов :
GND - подключение к общему проводу.
VCC - подключение к выводу +3,3 Вольт.
CE - подключение к выводу 8 Arduino.
CSN - подключение к выводу 7 Arduino.
MISO - подключение к выводу 12 Arduino.
MOSI - подключение к выводу 11 Arduino.
SCK - подключение к выводу 13 Arduino.
Вывод IRQ использоваться не будет.
Библиотека: Радиомодуль nRF24L01 (ID:460)
Последние обновленные 28 Oct 2022 01:13
После скачивания файла архива Mirf.zip, поместите содержимое архива в папку libraries, которая находится в папке с программой Arduino.
Для работы нам понадобится две платы Arduino.
Попробуем с помощью радиомодуля передать информацию с одной платы Arduino на другую.
Примерный скетч передатчика - сервера выглядит следующим образом:
/** * An Mirf example which copies back the data it recives. * * Pins: * Hardware SPI: * MISO -> 12 * MOSI -> 11 * SCK -> 13 * * Configurable: * CE -> 8 * CSN -> 7 * */ #include <SPI.h> #include <Mirf.h> #include <nRF24L01.h> #include <MirfHardwareSpiDriver.h> void setup(){ Serial.begin(9600); /* * Set the SPI Driver. */ Mirf.spi = &MirfHardwareSpi; /* * Setup pins / SPI. */ Mirf.init(); /* * Configure reciving address. */ Mirf.setRADDR((byte *)"serv1"); /* * Set the payload length to sizeof(unsigned long) the * return type of millis(). * * NB: payload on client and server must be the same. */ Mirf.payload = sizeof(unsigned long); /* * Write channel and payload config then power up reciver. */ Mirf.config(); Serial.println("Listening..."); } void loop(){ /* * A buffer to store the data. */ byte data[Mirf.payload]; /* * If a packet has been recived. * * isSending also restores listening mode when it * transitions from true to false. */ if(!Mirf.isSending() && Mirf.dataReady()){ Serial.println("Got packet"); /* * Get load the packet into the buffer. */ Mirf.getData(data); /* * Set the send address. */ Mirf.setTADDR((byte *)"clie1"); /* * Send the data back to the client. */ Mirf.send(data); /* * Wait untill sending has finished * * NB: isSending returns the chip to receving after returning true. */ Serial.println("Reply sent."); } }Примерный скетч приемника - клиента выглядит следующим образом:
/** * A Mirf example to test the latency between two Ardunio. * * Pins: * Hardware SPI: * MISO -> 12 * MOSI -> 11 * SCK -> 13 * * Configurable: * CE -> 8 * CSN -> 7 * * Note: To see best case latency comment out all Serial.println * statements not displaying the result and load * 'ping_server_interupt' on the server. */ #include <SPI.h> #include <Mirf.h> #include <nRF24L01.h> #include <MirfHardwareSpiDriver.h> void setup(){ Serial.begin(9600); /* * Setup pins / SPI. */ /* To change CE / CSN Pins: * * Mirf.csnPin = 9; * Mirf.cePin = 7; */ /* Mirf.cePin = 7; Mirf.csnPin = 8; */ Mirf.spi = &MirfHardwareSpi; Mirf.init(); /* * Configure reciving address. */ Mirf.setRADDR((byte *)"clie1"); /* * Set the payload length to sizeof(unsigned long) the * return type of millis(). * * NB: payload on client and server must be the same. */ Mirf.payload = sizeof(unsigned long); /* * Write channel and payload config then power up reciver. */ /* * To change channel: * * Mirf.channel = 10; * * NB: Make sure channel is legal in your area. */ Mirf.config(); Serial.println("Beginning ... "); } void loop(){ unsigned long time = millis(); Mirf.setTADDR((byte *)"serv1"); Mirf.send((byte *)&time); while(Mirf.isSending()){ } Serial.println("Finished sending"); delay(10); while(!Mirf.dataReady()){ //Serial.println("Waiting"); if ( ( millis() - time ) > 1000 ) { Serial.println("Timeout on response from server!"); return; } } Mirf.getData((byte *) &time); Serial.print("Ping: "); Serial.println((millis() - time)); delay(1000); }Подключаем передатчик к одной плате Arduino, относим его на некоторое расстояние.
Подключаем приемник к другой плате Arduino, включаем монитор порта и видим каждую секунду изменяющиеся цифры . Теперь можно поэкспериментировать. Проверьте, как положение приемника и передатчика влияет на дальность связи, какая максимальная дальность связи.
Ссылка на витрину магазина http://dvrobot.ru/238/299/428.html.