третий день воюю .не магу понять как вставить в приемник nrf24 включение (реле ,диода) на оналоговом выходе

Ruslan soloduch
Offline
Зарегистрирован: 11.04.2019

добрый вечер ! помогите третий день воюю .не магу понять  как  вставить в приемник nrf24  включение (реле ,диода) на оналоговом выходе  . вот мой исходник  

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <Servo.h>
 
RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги
 
byte recieved_data[7]; // массив принятых данных
byte relay = 2; // реле на 2 цифровом
byte relay1= 4; // сервопривод на 3 цифровом
byte mosfet = 8; // мосфет на 5 цифровом (ТУТ ЕСТЬ ШИМ!!!)
byte relay2 = 11;
byte relay4 = 3;
byte relay3 = 7;
byte relay5 = 6;
byte relay6 = 5;
byte relay7 = 10;
byte relay8 = 9;
 
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
 
void setup() {
  Serial.begin(9600); //открываем порт для связи с ПК
 
  pinMode(relay, OUTPUT); // настроить пин реле как выход
  pinMode(mosfet, OUTPUT); // настроить пин мосфета как выход
   pinMode(relay1, OUTPUT);
    pinMode(relay2, OUTPUT);
     pinMode(relay3, OUTPUT);
      pinMode(relay4, OUTPUT);
       pinMode(relay5, OUTPUT);
        analogWrite(relay6, OUTPUT);
         pinMode(relay7, OUTPUT);
          pinMode(relay8, OUTPUT);
 
  radio.begin(); //активировать модуль
  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0, 15);    //(время между попыткой достучаться, число попыток)
  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(32);     //размер пакета, в байтах
 
  radio.openReadingPipe(1, address[0]);     //хотим слушать трубу 0
  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)
 
  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!
 
  radio.powerUp(); //начать работу
  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль
}
 
void loop() {
  byte pipeNo;
  while ( radio.available(&pipeNo)) {  // слушаем эфир со всех труб
    radio.read( &recieved_data, sizeof(recieved_data) );         // чиатем входящий сигнал
    analogWrite(relay, recieved_data[0]); //то бишь 0 или 1
    analogWrite(relay3, recieved_data[1]);
    analogWrite(mosfet, recieved_data[2]);  
    analogWrite(relay1, recieved_data[3]);
    analogWrite(relay4, recieved_data[5]);
    analogWrite(relay5, recieved_data[4]);
     analogWrite(relay6, recieved_data[6]);
      
  }
}
andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017
Ruslan soloduch
Offline
Зарегистрирован: 11.04.2019

[quote=Ruslan soloduch]

добрый вечер ! помогите третий день воюю .не магу понять  как  вставить в приемник nrf24  включение (реле ,диода) на оналоговом выходе  . вот мой исходник  

 
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <Servo.h>

RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги

byte recieved_data[7]; // массив принятых данных
byte relay = 2;
byte relay1= 4;
byte mosfet = 8; 
byte relay2 = 11;
byte relay4 = 3;
byte relay3 = 7;
byte relay5 = 6;
byte relay6 = 5;
byte relay7 = 10;
byte relay8 = 9;

byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

void setup() {
  Serial.begin(9600); //открываем порт для связи с ПК

  pinMode(relay, OUTPUT); 
  pinMode(mosfet, OUTPUT); 
   pinMode(relay1, OUTPUT);
    pinMode(relay2, OUTPUT);
     pinMode(relay3, OUTPUT);
      pinMode(relay4, OUTPUT);
       pinMode(relay5, OUTPUT);
        analogWrite(relay6, OUTPUT);
         pinMode(relay7, OUTPUT);
          pinMode(relay8, OUTPUT);

  radio.begin(); //активировать модуль
  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0, 15);    //(время между попыткой достучаться, число попыток)
  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(32);     //размер пакета, в байтах

  radio.openReadingPipe(1, address[0]);     //хотим слушать трубу 0
  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!

  radio.powerUp(); //начать работу
  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль
}

void loop() {
  byte pipeNo;
  while ( radio.available(&pipeNo)) {  
    radio.read( &recieved_data, sizeof(recieved_data) );      
    analogWrite(relay1, recieved_data[3]);
    analogWrite(relay4, recieved_data[5]);
    analogWrite(relay5, recieved_data[4]);
     analogWrite(relay6, recieved_data[6]);
      
  }
}

 

Ruslan soloduch
Offline
Зарегистрирован: 11.04.2019

тема закрыта разобрался