Изменение скетча написанного под nrf24l01 на передатчик FS1000A и приёмник MX-RM-5V

Тема в разделе "Arduino & Shields", создана пользователем North_Wind, 14 ноя 2018.

  1. North_Wind

    North_Wind Нуб

    Здравствуйте есть готовые, скетчи написанные для для радиомодуля nrf24l01 их нужно переписать для передатчика FS1000A и приёмник MX-RM-5V
    1 это для приёмника
    Код (C++):
    // Необходимо установить библиотеку для радиомодуля nRF24
    #include <Servo.h>
    #include <SPI.h>
    #include "RF24.h"
    Servo servo1;
    Servo servo2;

    RF24 radio(9,10);
    const uint64_t pipe = 0xE8E8F0F0E1LL;
    int msg[1];
    int data;
    int pos;
    int fspeed;           // движение в перед
    int bspeed;           // движение назад
    const int in1 = 2;    // управление двигателем 1
    const int in2 = 4;    // управление двигателем 1
    const int ena = 5;    // ШИМ для пропорциональной скорости машинки

    void setup()
    {
     
      pinMode(in1, OUTPUT);      // подключаем к L298n
      pinMode(in2, OUTPUT);      // подключаем к L298n
      pinMode(ena, OUTPUT);      // подключаем к L298n
     
    servo1.attach(6);
    servo2.attach(3);

    delay(50);
    radio.begin();
    radio.openReadingPipe(1,pipe);
    radio.startListening();

    }

    void loop()
    {
      if (radio.available())radio.read(msg, 1);
      if (msg[0] <63 && msg[0] >-1)data = msg[0], pos = map(data, 0, 62, 10, 50),servo1.write(pos);
      if (msg[0] <=127 && msg[0] >=64)data = msg[0], pos = map(data, 64, 127, 0, 80),servo2.write(pos);
     
      if (msg[0] >=128 && msg[0] <=189)data = msg[0], bspeed = map(data, 255, 201, 0, 255), backward(bspeed);
      if (msg[0] >=201 && msg[0] <=255)data = msg[0], fspeed = map(data, 189, 128, 0, 255), forward(fspeed);
      if (msg[0] >190 && msg[0] <200)data = msg[0], stop();
    }

    void stop()
    {
     
      analogWrite(ena, 0);
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
    }

    void forward(int fspeed)
    {
     
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);
      analogWrite(ena, fspeed);
    }

    void backward(int bspeed)
    {
     
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);
      analogWrite(ena, bspeed);
    }
    2 это для передатчика
    Код (C++):
    #include <SPI.h>
    #include <iarduino_RF433_Transmitter.h>
    RF24 radio(9,10);
    const uint64_t pipe = 0xE8E8F0F0E1LL;
    int msg[1];
    int potpin_1 = A0; // сервопривод поворотов
    int val_1;
    int potpin_2 = A1; // двигатель
    int val_2;

    int val_3;
    int potpin_3 = A3; // сервопривод подьемника

    void setup(void){
    radio.begin();
    radio.openWritingPipe(pipe);

    }
    void loop() {
    val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 63),msg[0] = val_1,radio.write(msg, 1);
    val_3 = analogRead(potpin_3),val_3 = map(val_3, 0, 1023, 64, 127),msg[0] = val_3,radio.write(msg, 1);

    val_2 = analogRead(potpin_2),val_2 = map(val_2, 0, 1023, 128, 255),msg[0] = val_2,radio.write(msg, 1);

     
    }
     
     
  2. parovoZZ

    parovoZZ Гуру

    у nrf24l01 аппаратная проверка на достоверность пакета и подтверждение приема, а у FS1000A этого нет. Соответственно, весь код надо переписывать.
     
  3. b707

    b707 Гуру

    Звучит как заказ . Если это так - пишите в платном разделе.
     
    Daniil нравится это.