Такая проблема сложилась, что я не могу найти описание библиотеки RCSwitch. Из-за этого никак не могу понять и разобраться, можно ли передать несколько переменных и принять по отдельности? Использую радиомодуль 433мгц
У меня стоит джойстик. С пинов А0(у) и А2(х) считываются показания и заносятся в переменные xPos и yPos. И вот эти две переменные мне нужно передать. Передам я их таким образом: mySwitch.send(xPos,20); mySwitch.send(yPos,20); Вот так я их передам, ладно. А как мне каждую принять по отдельности. Так как я не знаю команд библиотеки, то принимаю их вот так: if (mySwitch.available()){ a = mySwitch.getReceivedValue(); } И я не понимаю, как можно вытащить нужную мне переменную...
Там 10 бит. а не 20. Библиотека нормально задокументирована и возвращается по первому же запросу в гугле https://github.com/sui77/rc-switch/blob/master/RCSwitch.cpp
Десятеричная система - 10 бит, так? Извиняюсь, если спрашиваю какие-то глупости. Не могу уже разобраться с работой этой библиотеки неделю. Такая каша в голове... Вот с VirtualWire разобрался, всё было прекрасно, но вот досада - она не работает с сервоприводом. Эх.
Нет. 1 бит это 1 бит. С аналоговых пинов получают 10 значимых бит информации, значит остальные нули можно не передавать.
И мне нужно ставить 10 или я могу тогда 4 поставить, раз у меня самое большое число - четырёхзначное?
Здравствуйте. Чтобы не плодить темы, спрошу здесь. Мне необходимо передать с пульта на модель по 433 МГц либо значения 2 переменных типа byte, либо 1 переменной типа int(лучше, если одной int). 1) Можно ли передать int такой командой? Вообще позволяет ли библиотека работать с такими типами: #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { mySwitch.enableTransmit(2); int rccomm1 = 12345678; //переменная для передачи } void loop() { mySwitch.send(rccomm1, 8); // непонятно по поводу 2 аргумента функции. Что за "размер" он означает. delay (200); } 2) Если отправлять переменные int нельзя, тогда можно отправить так: .//......... byte rccomm1 = 11110000; byte rccomm2 = 00001111; void loop() { mySwitch.send(rccomm1, 8); mySwitch.send(rccomm2, 8); delay (200); } Таким образом пульт передает примерно 5 раз в секунду сообщения из 2 байтов. Как приемнику определить где rccomm1, а где rccomm2 ? P.S. Брал отсюда http://robotclass.ru/tutorials/arduino-radio-433mhz/ .