Помогите ввести в проект второй передатчик 433

Тема в разделе "Arduino & Shields", создана пользователем ToxaRU, 28 сен 2015.

  1. ToxaRU

    ToxaRU Гик

    У меня изготовлен пульт управления который передает две переменные на частоте 433
    Код (C++):
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x27,16,2);
    #include <VirtualWire.h>
    #include <EasyTransferVirtualWire.h>

    int q;
    int z;
    int q1; //переменная для конвертации

    EasyTransferVirtualWire ET;

    struct SEND_DATA_STRUCTURE{
      //put your variable definitions here for the data you want to send
      //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
      //Struct can'e be bigger then 26 bytes for VirtualWire version
      byte ID;
      int q;
      int z;
    };

    //give a name to the group of data
    SEND_DATA_STRUCTURE mydata;

    void setup()
    {
      lcd.init();
      lcd.backlight();
      Serial.begin(9600);
      lcd.setCursor(0, 0);                   // Устанавливаем курсор в начало 2 строки
      lcd.print("S");  // Выводим текст
      delay(100);
      lcd.print("T");    // Выводим текст
      delay(100);
      lcd.print("A");   // Выводим текст
      delay(100);
      lcd.print("R");              // Выводим текст
       delay(100);
       lcd.print("T");            // Выводим текст
       delay(100);
      lcd.print(" ");              // Выводим текст
       delay(100);
       lcd.print("A");    // Выводим текст
       delay(100);
      lcd.print("R");              // Выводим текст
       delay(100);          // Выводим текст
    lcd.print("D"); // Выводим текст
    delay(100);
      lcd.print("U");              // Выводим текст
      delay(100);  
      lcd.print("I");              // Выводим текст
       delay(100);
       lcd.print("N");            // Выводим текст
       delay(100);
      lcd.print("O");              // Выводим текст
       delay(500);
     
       //start the library, pass in the data details
      ET.begin(details(mydata));
      mydata.ID = 1;
      // Initialise the IO and ISR
      vw_set_ptt_inverted(true); // Required for DR3100
      vw_set_tx_pin(8);
      vw_setup(2000);  // Bits per sec
     
      pinMode(13, OUTPUT);
     
      randomSeed(analogRead(0));
     
    }


    void loop()
    {
      delay(50); // Защита от скачков напряжения тока.
      int q = analogRead(A0); // Чтоб не засорять радио эфир, отправим данные только, если обнаружим изменения на PIN (A0).
      int z = analogRead(A1); // Чтоб не засорять радио эфир, отправим данные только, если обнаружим изменения на PIN (A1).
     
    q = map(q, 0, 1023, 0, 180); // Конвертируем значения
    z = map(z, 0, 1023, 0, 180); // Конвертируем значения
    q1 = map(q, 0, 180, 0, 360); // Конвертируем значения для вывода в монитор и на экран
    lcd.clear();
    lcd.print("Horizont -- ");
      lcd.print(q1);            // Выводим текст
      lcd.setCursor(0, 1);   // Устанавливаем курсор в начало 2 строки
      lcd.print("Vertical -- ");
      lcd.print(z);              // Выводим текст
       Serial.print(q);
       Serial.print(q1);
       Serial.print(z);
     
       digitalWrite(13, HIGH);
       mydata.q = q;
       mydata.z = z;
      ET.sendData();
      digitalWrite(13, LOW);
    delay (25);
     
      //delay(random(100, 1000));
    }
     
    Идея повесить на другой пин еще один передатчик(другого модели для сравнения) и передавать поочередно то с одного то с другого передатчика... Получится во первых дублирование передатчика(на случай если вылетит) а во вторых хочется сравнить оба передатчика... Помогите плиз)))
     
  2. DrProg

    DrProg Вечный нерд

    Увидел как выводите текст по одной букве и стало мне нехорошо..
     
  3. ToxaRU

    ToxaRU Гик

    А как надо))))))))))))))? Ну не научился я пока еще)))) Опыта побольше будет исправлюсь))) Зато красиво))))
     
  4. Unixon

    Unixon Оракул Модератор

    Код (C++):

    String s = "Hello World !";
    for (int i = 0; i < s.length(); i++) { Serial.print(s[i]); delay(100); }
     
     
    ToxaRU и Tomasina нравится это.
  5. ToxaRU

    ToxaRU Гик

    Спасибо))) как до дома доберусь исправлюсь))))
     
  6. ToxaRU

    ToxaRU Гик

    А по поводу второго передатчика ничего не подскажете?))))
     
  7. ToxaRU

    ToxaRU Гик

    Спасибо все работает, но только не { Serial.print(s); delay(100); } а { Lcd.print(s); delay(100); } )))) ну это я уже допетрил))))