Как пользоваться радио модулями RF433 и подобными на WeMos D1 (Библиотека VirtualWire не работает на этой модели)?
- Войдите на сайт для отправки комментариев
Вс, 08/01/2017 - 01:07
Доброго времени суток. Подскажите как подружить радиомодуль RF433 (и подобные в виде 2 платок, передатчик и приемник) с платой WeMos D1 (чтото типо Arduino UNO со встроеным WiFi). При использовании библиотеки VirtualWire (чтобы на человеческом языке общатся с радио модулями) во время заливания кода (стандартый пример из библиотеки) на WeMos выскакивает ошибка (см. ниже, похоже что чтото в библиотеке не поддерживается WeMos) при этом тот же пример на Arduino Mega заливается без проблем
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp: In function 'void vw_setup(uint16_t)':
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:390:5: error: 'TCCR1A' was not declared in this scope
TCCR1A = 0; // Output Compare pins disconnected
^
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:391:5: error: 'TCCR1B' was not declared in this scope
TCCR1B = _BV(WGM12); // Turn on CTC mode
^
In file included from C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.h:146:0,
from C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:31:
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:391:18: error: 'WGM12' was not declared in this scope
TCCR1B = _BV(WGM12); // Turn on CTC mode
^
C:\Users\ERAV\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/Arduino.h:184:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:398:5: error: 'OCR1A' was not declared in this scope
OCR1A = nticks;
^
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:405:5: error: 'TIMSK' was not declared in this scope
TIMSK |= _BV(OCIE1A);
^
In file included from C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.h:146:0,
from C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:31:
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:405:18: error: 'OCIE1A' was not declared in this scope
TIMSK |= _BV(OCIE1A);
^
C:\Users\ERAV\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/Arduino.h:184:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp: At global scope:
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:588:7: error: expected constructor, destructor, or type conversion before '(' token
SIGNAL(TIMER1_COMPA_vect)
^
C:\Users\ERAV\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:668:1: error: expected '}' at end of input
}
^
exit status 1
Ошибка компиляции для платы WeMos D1 R2 & mini.
А у вас точно эта плата - я выбираю просто D1 ( у них распиновки разные)
Я обычто на (WeMos D1 R2) другие коды заливал (диодом помигать, и прочее) Даже умудрился передатчики RF433 подключить как датчики (правда приемник пришлось к аналоговому входу подключить и резистр на 300Ом паралельно на землю бросить) вроде работает почти стабильно, но протокол обмена данных мне не под силу написать.
Только что попробывал Wemos D1(Retired) ничего не изменилось