Совместимость модулей 433 мГц WL101-341 (WL102-341) и LED панелей
- Войдите на сайт для отправки комментариев
Чт, 06/09/2018 - 11:01
Добрый день.
Использую для передачи модули 433 мГц WL101-341 (WL102-341) с библитекой RadioHead. Все работает прекрасно.
Пытаюсь подключить ЛЕД панель https://www.freetronics.com.au/collections/display/products/dot-matrix-display-32x16-red#.W5DQKMAVTDf
с библиотекой DM2 и радисигнал прекращает приниматься.
DM2 использует интерфейс SPI, в библиотеке RadioHead он тоже вроде как использовался но написано
#include <SPI.h> // Not actualy used but needed to compile
Подскажите где копать?
Ссылки на библиотеки дадите? Или предлагаете самим догадаться что там у Вас стоит?
А заодно, даже стесняюсь спросить, Ваш скетч то серкретный или его Вы тоже можете показать?
https://github.com/freetronics/DMD2
http://www.airspayce.com/mikem/arduino/RadioHead/classRH__ASK.html
Значит, vlforum,
слушайте внимаетльно.
А. Текст Вашего скетча Вы не дали
Б. Что именно за ардуина у Вас, Вы тоже не написали
Потому ответ на Ваш вопрос только таков:
1.
Эти библиотеки, если они работают с AVR (что, на самом деле, не очевидно, см. п. Б выше), по умолчанию, используют один и тот же таймер (timer 1) и потому не совместимы между собой.
2. Но то по умолчанию! Их (а точнее RadioHead) можно переконфигурировать на использование другого таймера (второго) в скетче (как это сделать написано в строках 25-29 файла RH_ASK.cpp). Как она у Вас сконфигурирована сейчас - ХЗ, т.к. см. п. А выше.
Ну, в общем, как-то так. Вы сами себе злобный буратино - объяснили бы что у Вас за контроллер и выложили бы код - ответ был бы намного полнее и однозначнее.
Arduino Nano, Mini.
Скетча нет на данный момент - потер и разнес управление ЛЕД и прием данных на разные ардуины. Так работает :)
Спасибо большое, понял где копать. Отпишусь по результату и выложу скетч.
Вот код
Если закоментировать dmd.begin(), прием работает.
Пробовал включить таймер 2. Не помогает.
Не пинайте за использование переменных, знаю :)
Как пробовал? Что пробовал? ХЗ! Хрустальные шары здесь запрещены, так что разбирайтесь.
Раскоментировал строку #define RH_ASK_ARDUINO_USE_TIMER2 (RH_ASK.cpp) чтобы использовать таймер 2. Не помогло.
А должно было помочь? Таки нет - не должно.
Вы читали что там рядом написано? Там ведь прямо написано что константу нужно определять во включаемом файле. Читайте!
Константа RH_ASK_ARDUINO_USE_TIMER2 используется в целом ряде .cpp файлов и раскомментировать (или добавлять) её нужно в каком-нибудь .h файле, который включается во все эти .cpp файлы.
Т.е. сначала определите все файлы в которых она исполуется, потом найдите такой файл, который в них всех включается и уж в нём раскомментируйте (или определите) эту константу.
Нет, неверно, посмотрел - там действительно всё в одном файле, так что должно было помочь.
Значит, что-то сделали неправильно. Хрустальных шаров нет и что Вы там как делали никто не знает.
Ну как не правильно? Раскоментирова строчку в срр файле, заново залил. Эффекта "0".
Посмотрел на форуме про библиотеки DMD DMD2, там разработчики тоже советуют использовать отдельный МК для управления панелями, а всю остальную логику выносить на другие МК. В любом случае спасибо.
Ну, не знаю, дело Ваше. Я то не знаю, что Вы там делаете.
Хочу сказать Вам спасибо. Действительно смена таймера заработала, но только для класа SPIDMD. Для SoftDMD не получается.