Каталог
|
Вот мой вариант подключения и программирования радиомодуля NRF24L01+PA+LNA2016-04-22 Все статьи →Петр Первый радиомодуль находится в пульте управления в паре с ардуино нано и подключается так (модуль держать ножками-контактами к себе):
Код для NANO #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба" RF24 radio(3, 10); // указываем пины CE и CSN void setup(){ radio.begin(); delay(2); radio.setChannel(95); // выбираем канал от 0 до 126 – они имеют разную частоту radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openWritingPipe(pipe); // открываем трубу на передачу. } void loop() { int Val[2]; //массив для передачи данных Val[0] = analogRead(4); //считываем значение с джойстиков в масив Val[1] = analogRead(3); radio.write(&Val, sizeof(Val)); // отправляем масив и указываем сколько байт пакет }
Второй модуль находится в паре с ардуино мега 2560 и подключается так (модуль держать ножками-контактами к себе):
Код для MEGA 2560 int y = 0; int x = 0; #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба" RF24 radio(3, 10); // указываем пины CE и CSN void setup(){ // TCCR3B = TCCR1B & 0b11111000 | 0x02; //поднимаем частоту шим, если надо // TCCR4B = TCCR1B & 0b11111000 | 0x02; radio.begin(); delay(2); radio.setChannel(95); // выбираем канал от 0 до 126 – они имеют разную частоту radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1,pipe); // открываем первую трубу с идентификатором "pipe" radio.startListening(); // включаем приемник, начинаем слушать трубу } void loop() { int Val[2]; //масив значений для приема if (radio.available()){ // проверяем не пришло ли что в буфер. radio.read(&Val, sizeof(Val)); // читаем данные, указываем сколько байт читать if (Val[0] < 1023 && Val[0] > 524) //обработка значений и запуск моторов { y = map (Val[0],524,1023,0,255); digitalWrite(8, LOW); digitalWrite(7, HIGH); analogWrite(5, y); } if (Val[1] < 1023 && Val[1] > 524) { x = map (Val[1],524,1023,0,255); digitalWrite(9, HIGH); digitalWrite(4, LOW); analogWrite(6, x); } if (Val[0] < 500 && Val[0] > 0) { y = map (Val[0],500,0,0,255); digitalWrite(7, LOW); digitalWrite(8, HIGH); analogWrite(5, y); } if (Val[1] < 500 && Val[1] > 0) { x = map (Val[1],500,0,0,255); digitalWrite(4, HIGH); digitalWrite(9, LOW); analogWrite(6, x); } } } Работа радио модулей:
Если есть надобность в пояснении алгоритма обработки значений и запуск моторов, то можете посмотреть мою предыдущую статью по подключению и программировании монстр мотто шилд.
Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Пока нет отзывов на эту статью.
|