Двунаправленное дистанционное управление

Устройство дистанционной связи представляет собой два одинаково выполненных по конструкции приёмопередатчика на базе трансивера RF1100SE и управлением Arduino Pro Mini. Имеет три кнопки управления [A0, A1, A2] и выводы от трёх оптопар для подачи на дальнейшие исполнительные цепи [7, 8, 9]. Проведённые испытания в полевых условиях показали дальность действия около 300-350 метров на открытой местности. Работа от полностью заряженных noname китайских малогабаритных аккумуляторов составляет более 3 часов.

RF1100SE_arduino_pro_mini_433MHz

#include <RadioLib.h>
CC1101 radio = new Module(10, 2, RADIOLIB_NC, 3);


int i = 0;
int t = 0;
int tt = 0;

void setup() {
  Serial.begin(9600);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  int state = radio.begin(436.5);
  if (state == RADIOLIB_ERR_NONE) {
    Serial.println(F("Init success!"));
  } else {
    Serial.print(F("Init failed, code: "));
    Serial.println(state);
    while (true);
  }
}

void loop() {
  String rx = "000";
  String tx = "000";

  if(digitalRead(A0)==LOW) tx[0] = '1';
  if(digitalRead(A1)==LOW) tx[1] = '1';
  if(digitalRead(A2)==LOW) tx[2] = '1';
  radio.transmit(tx);

  if (radio.receive(rx) == RADIOLIB_ERR_NONE) {
    digitalWrite(7, (rx[2]=='1' ? HIGH : LOW));
    digitalWrite(8, (rx[1]=='1' ? HIGH : LOW));
    digitalWrite(9, (rx[0]=='1' ? HIGH : LOW));
    digitalWrite(6, HIGH);
    i=3;

    t = millis()/1000;
    if(t != tt){
      Serial.print(radio.getRSSI());
      Serial.println(" dBm; RX:" + rx + "; TX:" + tx);
      tt = t;
    }
    
  }

  if(i>0){
    i--;
  }else if(i==0){
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
  }
}

Проект корпуса для 3д печати в STL-формате.

Видео работы https://youtu.be/75P1ydtKNb0

Запись опубликована в рубрике «Начинающим», C++, Автоматика, Программирование, Радиолюбитель с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий