Как пользоваться радио модулями RF433 и подобными на WeMos D1 (Библиотека VirtualWire не работает на этой модели)?

erav
Offline
Зарегистрирован: 28.12.2016
Доброго времени суток. Подскажите как подружить радиомодуль 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.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

А у вас точно эта плата - я выбираю просто D1 ( у них распиновки разные)

erav
Offline
Зарегистрирован: 28.12.2016

Я обычто на (WeMos D1 R2) другие коды заливал (диодом помигать, и прочее) Даже умудрился передатчики RF433 подключить как датчики (правда приемник пришлось к аналоговому входу подключить и резистр на 300Ом паралельно на землю бросить) вроде работает почти стабильно, но протокол обмена данных мне не под силу написать.

Только что попробывал Wemos D1(Retired) ничего не изменилось