Использование VS1838B с Arduino
Я только что купил ИК-модуль VS1838B (отсюда), и я пытаюсь заставить его работать. Ниже вы можете найти схему, чтобы увидеть, как я подключил ИК-приемник 1838B:
Мой код (Здесь) :
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
#define CH1 0xFFA25D
#define CH 0xFF629D
#define CH2 0xFFE21D
...
#define BUTON8 0xFF4AB5
#define BUTON9 0xFF52AD
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results))
{
if (results.value == CH1)
{
Serial.println("CH-");
}
if (results.value == CH)
{
Serial.println("CH");
}
if (results.value == CH2)
{
Serial.println("CH+");
}
...
if (results.value == BUTON8)
{
Serial.println("BUTON8");
}
if (results.value == BUTON9)
{
Serial.println("BUTON9");
}
irrecv.resume();
}
}
Но я не получаю никаких выходных данных от последовательного монитора. Не могли бы вы помочь мне в его отладке?
@Eray, 👍0
Обсуждение5 ответов
Смотрим дальше здесь
http://forum.arduino.cc/index.php/topic,188236,0.ч...
Я обнаружил следующее
"Удаление файлов - libraries\RobotIRremote\IRremoteTools.cpp и библиотеки\RobotIRremote\Незаменимые инструменты.h решил проблему. Это примеры файлов, которые каким-то образом включаются. Вы можете переместить эти два файла в другое место в качестве резервной копии."
Я зашел в файл своих библиотек, сделал это и могу подтвердить, что приведенный выше пример затем отлично компилируется без загрузки новой библиотеки. Это проблема с библиотеками Arduino .
В любом случае это сработает
ответ отсюда и работал на меня
я использую этот код:
#include <IRremote.h>
int input_pin = 10; //установить D10 в качестве вывода входного сигнала
IRrecv irrecv(input_pin);
decode_results signals;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // включить вход с ИК-приемника
}
void loop() {
if (irrecv.decode(&signals)) {
Serial.println(signals.value, HEX);
irrecv.resume(); // получить следующий сигнал
}
}
Да, это тоже была моя проблема. На macOS файлы хранятся в содержимом "Arduino.app", поэтому с помощью Finder вам нужно перейти в раздел "/Приложения, затем щелкнуть правой кнопкой мыши " Arduino.app
и нажать "Показать содержимое пакета". Теперь перейдите в папку " /Приложения/Arduino.app/Содержимое/Java/библиотеки` и удалите папку "RobotIRremote". Вы также можете легко сделать это с терминала, используя команду "rm-r /Приложения/Arduino.app/Содержимое/Java/библиотеки/RobotIRremote"., @cody.codes
Я могу ошибаться, но я считаю, что этот приемник работает на частоте 38 кГц (по крайней мере, это указано в спецификациях), поэтому источник ИК-излучения должен колебаться на этой частоте, чтобы этот приемник мог его видеть. Ознакомьтесь с этой ссылкой, чтобы узнать, как создать схему для генерации ИК-светодиода:
http://www.electro-tech-online.com/threads/ir-emitter-at-38khz.94119/
Хотя ваша ссылка может ответить на вопрос, [было бы предпочтительнее](http://meta.stackoverflow.com/q/8259) включить **основные части, приведенные здесь,** и предоставить ссылку для цитирования. Спасибо!, @Anonymous Penguin
я также купил ИК приемник с пультом дистанционного управления (в комплекте), и у меня была такая же проблема, я поменял пульт дистанционного управления и он работал отлично, так что даже если ИК и радиоуправляемые пришло в комплекте это не значит, что они будут работать, если у вас нет другой пульт дистанционного управления в руке, вы можете использовать зажигалку, чтобы проверить, если ИК не работает.
void loop(void) {
int numberpulses;
numberpulses = listenForIR();
Serial.print("Heard ");
Serial.print(numberpulses);
Serial.println("-pulse long IR signal");
if (IRcompare(numberpulses, ApplePlaySignal)) {
Serial.println("PLAY");
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
// установите светодиод с помощью состояния светодиода переменной:
digitalWrite(ledPin, ledState);
}
if (IRcompare(numberpulses, AppleRewindSignal)) {
Serial.println("REWIND");
}
if (IRcompare(numberpulses, AppleForwardSignal)) {
Serial.println("FORWARD");
}
}
подключите vcc к 5 В, Подключите Gnd к GND , Подключитесь к контакту D11 на Uno, Nano и т.д. скачайте библиотеку отсюда и следуйте инструкциям/где распаковать и удалить другие папки/: http://z3t0.github.io/Arduino-IRremote/
Откройте программу Arduino и вставьте этот код в новый проект Arduino:
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
Выберите "Скетч" /Импортировать библиотеку из Arduino и выберите Удалить из выпадающего меню.
Загрузите скетч Откройте Инструменты/Последовательный монитор, затем выберите 9600 в качестве скорости передачи данных Используйте пульт дистанционного управления телевизором, инфракрасный автомобильный пульт или пульт дистанционного управления от модуля. Вы увидите шестнадцатеричный код каждой кнопки после ее нажатия.
- Tone() конфликтует с библиотекой IRremote (множественное определение `__vector_7')
- Как остановить вращение сервопривода?
- Arduino IRremote перестает работать
- Использование ИК-пульта с Arduino
- ИК приемник принимает только 0
- Переключение между циклами Arduino ИК-пульт дистанционного управления
- Эмулятор Nikon IR remote trigger (ML-L3) не работает
- Управление двигателем с помощью ИК-пульта дистанционного управления
Вы уверены, что у вас есть правильный пульт дистанционного управления? Как вы получили постоянные значения?, @jfpoilpret
Вы должны добавить
Serial.println(results.value);
after, если irrecv.decode(&results)) {
чтобы проверить, какие коды действительно получены с вашего пульта дистанционного управления., @jfpoilpret@jfpoilpret Он ничего не печатает, он не входит внутрь этого if() . Я использую правильный контроллер, потому что все они собрались вместе, как комплект., @Eray