Использование 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();

 }

 

}

Но я не получаю никаких выходных данных от последовательного монитора. Не могли бы вы помочь мне в его отладке?

, 👍0

Обсуждение

Вы уверены, что у вас есть правильный пульт дистанционного управления? Как вы получили постоянные значения?, @jfpoilpret

Вы должны добавить Serial.println(results.value); after, если irrecv.decode(&results)) { чтобы проверить, какие коды действительно получены с вашего пульта дистанционного управления., @jfpoilpret

@jfpoilpret Он ничего не печатает, он не входит внутрь этого if() . Я использую правильный контроллер, потому что все они собрались вместе, как комплект., @Eray


5 ответов


3

Смотрим дальше здесь

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


1

Я могу ошибаться, но я считаю, что этот приемник работает на частоте 38 кГц (по крайней мере, это указано в спецификациях), поэтому источник ИК-излучения должен колебаться на этой частоте, чтобы этот приемник мог его видеть. Ознакомьтесь с этой ссылкой, чтобы узнать, как создать схему для генерации ИК-светодиода:

http://www.electro-tech-online.com/threads/ir-emitter-at-38khz.94119/

,

Хотя ваша ссылка может ответить на вопрос, [было бы предпочтительнее](http://meta.stackoverflow.com/q/8259) включить **основные части, приведенные здесь,** и предоставить ссылку для цитирования. Спасибо!, @Anonymous Penguin


2

я также купил ИК приемник с пультом дистанционного управления (в комплекте), и у меня была такая же проблема, я поменял пульт дистанционного управления и он работал отлично, так что даже если ИК и радиоуправляемые пришло в комплекте это не значит, что они будут работать, если у вас нет другой пульт дистанционного управления в руке, вы можете использовать зажигалку, чтобы проверить, если ИК не работает.

,

1
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");
   }
}
,

1

подключите 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 в качестве скорости передачи данных Используйте пульт дистанционного управления телевизором, инфракрасный автомобильный пульт или пульт дистанционного управления от модуля. Вы увидите шестнадцатеричный код каждой кнопки после ее нажатия.

,