Выбор PIN для подключения радиочастотного приемника
Я использую библиотеку RCSwitch для приема сигналов с помощью радиочастотного приемника. Мне действительно нужно изменить контакт, к которому подключен приемник на Arduino Uno.
Что я должен изменить в своем скетче? К каким контактам я могу подключить приемник?
Это мой код:
#include <RCSwitch.h>
RCSwitch receiver = RCSwitch();
void setup() {
Serial.begin(9600);
receiver.enableReceive(0);
pinMode(1, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
Serial.println("READY");
}
void loop() {
if (receiver.available()) {
int value = receiver.getReceivedValue();
Serial.println(value);
switch(value) {
case 1:
digitalWrite(1, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
break;
case 2:
digitalWrite(1, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
break;
case 3:
digitalWrite(1, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
break;
case 4:
digitalWrite(1, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
break;
}
}
}
@manarinian, 👍1
Обсуждение1 ответ
Лучший ответ:
Вы можете измениться
receiver.enableReceive(0);
который использует вывод 2, чтобы
receiver.enableReceive(1);
это вывод 3 на Uno. Это номера внешнего прерывания. У Uno есть только два из них, которые привязаны к этим двум контактам. Поэтому, пока вы используете Arduino Uno, вам нужно использовать один из них. Например, Arduino Mega имеет больше внешних прерываний.
Для справки также загляните на страницу github библиотеки RCSwitch и ее вики, особенно на сайт о получении, где это описано.
Кроме того: поскольку вы используете Serial, вы можете захотеть изменить
pinMode(1, OUTPUT);
к другому контакту, так как контакты 0 и 1 используются для аппаратного последовательного интерфейса (Serial
, который подключается к USB). Таким образом, использование этого вывода сталкивается с последовательной связью.
Разве нет другого способа использовать вывод типа 9?, @manarinian
@manarinian Ему нужен вывод с поддержкой прерываний: https://github.com/sui77/rc-switch/blob/7925dfb753c78bf22f6b8164995cac76fdaa97e1/RCSwitch.cpp#L561, @Dave Newton
- Попытка прочитать разные уровни газа с помощью датчика газа MQ2
- Можно ли создать сигнал повышения hemi-цикла с помощью одного штифта, а другой сигнал hemi-цикла-с помощью другого штифта?
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
- Сколько датчиков может поддерживать один модуль Arduino?
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Как выбрать вывод передачи в библиотеке IRremote для Arduino Uno?
- Глобальные переменные занимают много места в динамической памяти.
IIRC ему нужен вывод с поддержкой прерываний, поэтому 2 и 3 на Uno. Зачем вам нужно переключать контакты?, @Dave Newton