Настройка модулей RF433

Тема в разделе "Проводная и беспроводная связь", создана пользователем AlexAxel, 1 сен 2018.

  1. AlexAxel

    AlexAxel Нерд

    Добрый день. Имеются дешевые модули 433 МГц. Подключаю как на картинке
    szkic.jpg


    Библиотека Virtual Wire, типовые примеры работают нормально

    Приемник:
    Код (C++):
    #include <VirtualWire.h>
    byte message[VW_MAX_MESSAGE_LEN]; // Буфер для хранения принимаемых данных
    byte messageLength = VW_MAX_MESSAGE_LEN; // Размер
    void setup()
    {
      Serial.begin(9600);    // Debugging only
      Serial.println("setup");
      vw_set_ptt_inverted(true); // Required for DR3100
      vw_setup(2000);     // Bits per sec
      vw_rx_start();       // Start the receiver PLL running
    }
    void loop()
    {
      int id;
      int i;
      if (vw_get_message(message, &messageLength)) // Если есть данные..
      {
        digitalWrite(13, HIGH); // Зажигаем светодиод в начале приема пакета
        for (i = 0; i < messageLength; i++)
        {
          Serial.write(message[i]); // выводим их в одной строке
        }
        i = 0;
        while (message[i] != ' ')
        {
          id *= 10;
          id += message[i] - '0';
          i++;
        }
        Serial.println(id);
        Serial.println();
        digitalWrite(13, LOW); // Гасим светодиод в конце
      }
    }
    Передатчик:
    Код (C++):
    #include <VirtualWire.h>
    void setup()
    {
        Serial.begin(9600);      // Debugging only
        Serial.println("setup");
        vw_set_ptt_inverted(true); // Required for DR3100
        vw_setup(2000);     // Bits per sec
    }
    void loop()
    {
        const char *msg = "hello";
        digitalWrite(13, true); // Flash a light to show transmitting
        vw_send((uint8_t *)msg, strlen(msg));
        vw_wait_tx(); // Wait until the whole message is gone
        digitalWrite(13, false);
        delay(200);
    }
    В случае необходимости использования другого пина для приемника используется команда
    vw_set_rx_pin(<номер порта>);

    Если в качестве номера порта указывать порты со 2 по 19 (все цифровые и шесть аналоговых, с А0 по А5) - и соответственно разъем DATA приемника подключить к указанному порту - проблем нет.

    Но если указать в качестве параметра 20 (подразумевая использовать аналоговый разъем А6) - то не работает. То же самое если в VirtualWire.cpp в строке static uint8_t vw_rx_pin = 11; указать номера портов с 2 по 19 - все работатет корректно, но 20 уже не отрабатывает. Подскажите пожалуйста куда ткнуть чтобы заработало с использованием А6

    Плата Arduino Nano.
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Написать А6 в параметр?
     
  3. AlexAxel

    AlexAxel Нерд

    не, там значение типа uint8_t должно быть

    хотя нет, хавает и А5, и А6 в параметр, но один фиг - А5 работает, А6 уже нет
     
  4. Mitrandir

    Mitrandir Гуру

    А6 это макрос с номером пина
     
  5. ZAZ-965

    ZAZ-965 Гуру

    У atmega328 A6 и A7 работают только как аналоговый вход. Вот же вы допытливый человек, а если Мегу купите - все 54 пина проверять будете? ;)
     
    Последнее редактирование: 1 сен 2018
    AlexAxel и NikitOS нравится это.
  6. AlexAxel

    AlexAxel Нерд

    да не, кроссплату заказал в кетае, при разводке промахнулся и дорожку от DATA подвел на А6 вместо А5. :mad:партия пришла, и вылез этот косяк. сначала думал что хрен с ним, какая ему разница - 19 порт или 20, а тут вот какая мазафака

    А приемнику не пофигу ли? ему же порт судя по библиотеке нужен именно в режиме входа работающий
     
    Последнее редактирование: 1 сен 2018
  7. ZAZ-965

    ZAZ-965 Гуру

    Нужен цифровой, а наличествует аналоговый.
     
  8. AlexAxel

    AlexAxel Нерд

    ну да, порты А0-А5 тоже аналоговые, но с них спокойно работает
     
  9. b707

    b707 Гуру

    порты А0-А5 - можно использовать и как цифру. и как аналог. А вот порты А6-А7 - только как аналоговые входы.
    Если нет проблемы с количеством портов - просто поставьте перемычку между А5 и А6
     
    AlexAxel и Mitrandir нравится это.
  10. parovoZZ

    parovoZZ Гуру

    а это где такие? У меня на A5 заканчиваются.
     
  11. Mitrandir

    Mitrandir Гуру

     
  12. AlexAxel

    AlexAxel Нерд

    Так и пришлось делать ((
     
  13. AlexAxel

    AlexAxel Нерд

    Еще раз здравствуйте. возник вот такой вопрос: используя модуль передатчика, указанный в стартпосте, можно ли выдать стабильный (по содержанию) информативный сигнал, не используя МК, а только радиорассыпуху? Транзисторы, конденсаторы, диоды и т.п.? Ну грубо говоря, чтобы с какой-от периодичностью вылетал сигнал, который бы принял уже передатчик, подключенный к ардуинке, и его интерпретировать в виде набора символов постоянного содержания, с которым дальше можно было бы работать? Нам бы схемку аль чертеж...

    Что-то аналогично этому, которое справа.
    433mhz-experiment.jpg

    Принцип сборки вроде понятен, но нет характеристик конденсатора и транзюка. К тому же хотелось бы еще как-то регулировать содержимое сигнала.

    Конечная задача состоит в изготовлении условного радиомаяка, при нахождении в зоне действия которого прибор на базе ардуинки при получении определенных сигналов выполнял определенные действия. С помощью ардуинки решается на раз-два, но хотелось бы минимизировать стоимость всего этого дела - маячков нужно несколько десятков
     
  14. parovoZZ

    parovoZZ Гуру

    Аттини 9 дешевле батарейки выйдет в радиомаяке. На чем экономим?
     
    b707 нравится это.
  15. AlexAxel

    AlexAxel Нерд

    В основном на времени. Специализированного магазина в городе нет, лететь на аттинями на масолете тоже не вариант )) Посылки с алишки могут и 4 месяца ехать. Вот и приходится изворачиваться по всякому
     
  16. b707

    b707 Гуру

    при таком удалении от цивилизации аттини и прочие мелкие МК про запас надо иметь...
    По сути не подскажу - без учета доступности деталей поставить 1 МК на порядок проще, чем глолдить схему из рассыпухи, поэтому никогда в такое не вникал
     
  17. parovoZZ

    parovoZZ Гуру

    Закажи из терры почтой - там сейчас attiny841 по 30 рублей лежат. Дешевле только даром.
     
  18. AlexAxel

    AlexAxel Нерд

    Вот как раз к элементам доступ есть

    Ну кто ж знал... К тому же Как Аттини заставить транслировать определенный сигнал с определенной периодичностью - тоже вникнуть надо )) Раньше не касался
     
  19. b707

    b707 Гуру

    109 рублей за шт
     
  20. AlexAxel

    AlexAxel Нерд

    Посмотрел. Доставка от 750 рублей )) Имеет смысл при вообще аховом количестве