Передача данных на 433 МГц

Тема в разделе "Проводная и беспроводная связь", создана пользователем alex-prog, 21 сен 2016.

  1. alex-prog

    alex-prog Гик

    Про модули 433 МГц тут тем много, но все почему-то используют библиотеки...

    Стало интересно как правильно передавать данные через модули, только по битам, или через ШИМ сигнал тоже возможно?
     
  2. alex-prog

    alex-prog Гик

    Что так скучно? Неужели все только библиотекой пользуются?
     
  3. ИгорьК

    ИгорьК Гуру

    О каких конкретно модулях идет речь? Вы представляете принцип их работы?
     
    alex-prog нравится это.
  4. alex-prog

    alex-prog Гик

    ИгорьК, модули те же:

    [​IMG]

    Антенну я приделал, как Вы предлагали, стало лучше. Теперь хочу организовать непосредственно передачу данных с их помощью. Для начала хочу разобраться в их принципе устройства, то есть, как можно передавать данные.

    Вижу у всех библиотеки стоят, разве не лучше сделать передачу самому, с нуля? :)
     
  5. ИгорьК

    ИгорьК Гуру

    Конечно сделайте, в чем проблема :)
     
  6. ИгорьК

    ИгорьК Гуру

    ... а вообще, это выброшенное время и деньги. Как датчики DHT. Вроде работают. А работой назвать язык не поворачивается.
     
  7. ZAZ-965

    ZAZ-965 Гуру

    433TX_module.gif
    У передатчика этих модулей примитивная схема - однотранзисторный генератор, стабилизированный по частоте фильтром на ПАВ и транзисторный ключ, подающий питание на генератор. Поэтому все что умеет этот передатчик - это выдавать или не выдавать несущую в эфир.
    Библиотека VirtualWire реализует поверх этого безобразия свой протокол со стартовым заголовком, проверкой CRC и т.д. Модуль не интересный чтоб тратить время на написание своей библиотеки.
     
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    1144667.jpg
     
  9. ZAZ-965

    ZAZ-965 Гуру

    @ИгорьК, индуктивность (фильтр по питанию). Наверное схему рисовали в Paint :)
     
    BAR__MEN и ИгорьК нравится это.
  10. alex-prog

    alex-prog Гик

    Да, модуль не супер. Но, поиграться можно. Только вопрос в том, как правильно передавать данные без библиотеки?

    Код (C++):


    //
    #define dataPin 9

    void setup()
    {
    //
    char msg[] = "Hello";
    }

    void loop()
    {
    //
    int i;
    //
    for (i = 0; i < 5; i ++) {
    //
    unsigned char letter = msg[i];
    //
    unsigned char outputLevel = (letter >> i) & 1;
    //
    if (outputLevel == 0) digitalWrite(dataPin, LOW);
    //
    else digitalWrite(dataPin, HIGH);
    //
    delay(интервал);
    }
    }
     
    Так?
     
    Последнее редактирование: 23 сен 2016
  11. ИгорьК

    ИгорьК Гуру

    А что на другом конце провода? :)
     
  12. alex-prog

    alex-prog Гик

    Пушной звер, так там всё на библиотеках строится. Я вот думаю, можно ведь заменить на чистый код?

    ИгорьК, по идее, сччитывание на приемнике идет в обратном порядке. Единственное, нужно синхронизировать передачу, что приёмник знал, где начало, а где конец пакета. Вот думаю, как это организовать правильно.

    Так же, интересует какой интервал в delay нужно выставлять?
     
  13. библиотека это грязный код?
    откройте библиотеку, скопируйте функции в свой чистый код, если очень нужно.
     
  14. alex-prog

    alex-prog Гик

    Пушной звер. грубо ;) Я не говорил про грязный код. Чистый в кавычках, разумеется.

    По теме, я просто хочу найти ответ, как правильно вести передачу на этом модуле. Код, который я привёл выше имеет смысл, или нет?
     
  15. примерно также как азбукой морзе
     
  16. ИгорьК

    ИгорьК Гуру

    Так Вы понимаете как он работает или нет? Если бы понимали суть - не были бы так оптимистичны и время свое пожалели бы.
    Звер прав.
     
  17. alex-prog

    alex-prog Гик

    ИгорьК, Вы про шум намекаете?
     
  18. ostrov

    ostrov Гуру

    Очередная революция? )
     
    rff-ei нравится это.
  19. еще один новый велосипед.