Передача значений ИК-сигнала с помощью инфракрасного излучателя на Arduino

У меня есть Arduino Mega и светодиод, излучающий ИК-излучение, и я хочу отправить данные "шестнадцатеричные данные", которые я выбрал, используя этот светодиод, и я попробовал библиотеку IRRemote, и я успешно использовал IRrecv класс, но при использовании IRsend я не получил никакого сигнала и попытался посмотреть на светодиод через мобильную камеру
контакт ИК-излучателя имеет ШИМ 3 и подключил его к 3,3 В один раз и к 5 В один раз

#include <IRremote.h>

IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(40);
    }
  }
}

и для получателя:

#include <IRremote.h>

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
  }
}

любая помощь приветствуется:) Хисо

1 ответ

Решение

Я посмотрел на библиотеку IRRemote.cpp, на которую вы ссылались, и в заголовочном файле вы можете увидеть, что каждая плата Arduino имеет уникальный PWM контакт, который используется для передачи инфракрасных данных, поэтому используйте PWM 9 уверен, что работать на Arduino Mega

Другие вопросы по тегам