Платы arduino не работают с приемником 433МГц

multisu
Offline
Зарегистрирован: 20.10.2019

На плате с ESP8266(WiFi Kit 8) скетч и приемники(MX-RM-5v,RX470C - заказывал разные, т.к. вначале грешил на них) работает отлично. Но, попытки принимать сигнал с помощью китайских аналогов плат UNO/Nano/Micro Pro неудачны. В других задачах платы arduino ведут себя отлично, и давление считывают, и с SIM800 СМС принимают\отправляют, и как передатчик 433 работают. Проблема только с приемником 433. Вот пример скетча, который работает на ESP8266(WiFi Kit 8) и не работает на arduino(ничего не возвращает в serial).

 

 Moderator : пожалуйста, вставьте код правильно (новым сообщением в тему), как описано в http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

 

C VirtualWire.h ситуация аналогичная, разве что для esp8266 не компилируется, и проверить нет возможности.

multisu
Offline
Зарегистрирован: 20.10.2019

С чем может быть связанна проблема? Хочется удешевить приемник и обойтись без плат на esp8266.

b707
Offline
Зарегистрирован: 26.05.2017

и что, первая строчка действительно #include и все?

multisu
Offline
Зарегистрирован: 20.10.2019

Цитата:

 Moderator : пожалуйста, вставьте код правильно (новым сообщением в тему), как описано в http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii


@Moderator, у меня нет кнопок в редакторе сообщений, только окно для ввода, и при редактировании нет. Скриншот тоже приложить не могу.

@All, в работающем скетче используется библиотека RCSwitch.h, как в примере. Ресивер в ардуино вешается на 3-пин.

b707
Offline
Зарегистрирован: 26.05.2017

[quote=multisu@Moderator, у меня нет кнопок в редакторе сообщений, только окно для ввода,.[/quote]

зайдите с нормального компьютера, а не с телефона - и вставьте код правильно.

Пока вы это не сделаете - никто ничего обсуждать с вами не будет.

multisu
Offline
Зарегистрирован: 20.10.2019

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(3);  // Receiver on interrupt 0 => that is pin #2 -   Выводы использующие внешнее прерывание, arduino UNO/mini - 2,3, ESP - любой кроме 16
  delay(1000);
  Serial.print("Start receive");
}

void loop() {
  
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }

    mySwitch.resetAvailable();
  }
}

Вот тот скетч.

[quote=b707]

зайдите с нормального компьютера, а не с телефона 

[/quote]

В EDGE заработало, в Chrome с компа кнопки не отображаются.

 

b707
Offline
Зарегистрирован: 26.05.2017

в 7 строчке

mySwitch.enableReceive(3);

цифра в скобках - вовсе не номер пина, а номер прерывания.

multisu
Offline
Зарегистрирован: 20.10.2019

Я пробовал ко второму подключать. Esp вот на 12-м работает, именно вот так и прописывал - mySwitch.enableReceive(12);

multisu
Offline
Зарегистрирован: 20.10.2019

Кажется начинаю понимать, указываю 0->pin 2, указываю 1->pin 3. Попробую, отпишусь.
Тогда, для общего понимания, на esp прерывания соответствуют пинам в arduino ide?

multisu
Offline
Зарегистрирован: 20.10.2019

b707 пишет:

в 7 строчке

mySwitch.enableReceive(3);

цифра в скобках - вовсе не номер пина, а номер прерывания.


Спасибо. mySwitch.enableReceive(0); с подключением на 2 pin заработало.