У меня есть ИК- пульт. есть AT328P, ИК-приёмник. Я подключаю ик приёмник к контроллеру. мне нужна программа\скетч которая будет распознавать команды с пульта и выводить 1/0 последовательности(пакеты) в IDE Arduino для последующей работы с ними.

#include 
// Определяем пин, к которому подключен ИК-приемник
const int RECV_PIN = 2;  // Например, пин 2

// Создаем объект приемника
IRrecv irrecv(RECV_PIN);

// Структура для хранения результата декодирования
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запускаем приемник
  Serial.println("Ready to receive IR signals");
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.print("Raw Data: ");
    dumpRawData();
    Serial.println();
    irrecv.resume(); // Принимаем следующее значение
  }
}

// Функция для вывода raw данных в виде 1 и 0
void dumpRawData() {
  // Получаем длительности импульсов и пауз
  int length = results.rawlen;

  Serial.print(" (");
  Serial.print(length, DEC);
  Serial.print(" bits): ");

  for (int i = 0; i < length; i++) {
    // Выводим длительность импульса или паузы.  Обычно, импульсы и паузы
    // кодируются как кратные некоторой базовой единице времени (например, 560 мкс).
    // Можно выводить непосредственно длительности в микросекундах, но для
    // упрощения можно нормализовать их, выводя '1' для импульса и '0' для паузы.

    // Проверяем, является ли текущий элемент импульсом (нечетный индекс) или паузой (четный индекс)
    if (i % 2 == 0) { // Пауза (четный индекс)
      Serial.print("0");
    } else { // Импульс (нечетный индекс)
      Serial.print("1");
    }
  }
}

Установите библиотеку IRremote: В Arduino IDE перейдите в Sketch -> Include Library -> Manage Libraries... Найдите и установите библиотеку "IRremote by Shirriff". Если не получается установить эту версию, попробуйте установить IRremoteESP8266 или Arduino-IRremote, и возможно, потребуется немного изменить код, так как разные версии библиотеки могут иметь слегка различающиеся вызовы функций.

Подключите ИК-приемник:

Загрузите скетч: Загрузите этот код в вашу плату Arduino.

Откройте Serial Monitor: Откройте Serial Monitor в Arduino IDE (Tools -> Serial Monitor). Убедитесь, что скорость установлена на 9600 бод.

Направьте пульт на приемник и нажимайте кнопки: Направьте ИК-пульт на ИК-приемник и нажимайте кнопки. В Serial Monitor вы увидите "Raw Data:" а затем длинную последовательность из 0 и 1. Каждая строка соответствует нажатию кнопки на пульте.

Анализируйте вывод: Анализируйте вывод в Serial Monitor. Вы увидите сырые данные, представляющие длительности импульсов и пауз. Обратите внимание на последовательности, которые соответствуют разным кнопкам на вашем пульте. Эти последовательности можно использовать в вашем основном проекте для распознавания команд.

Разъяснения:

Важные моменты:

Этот код даст вам "сырые" данные. Для более продвинутого использования (например, для прямого определения нажатой кнопки) вам потребуется изучить структуру results и, возможно, использовать другие функции библиотеки IRremote для декодирования конкретного протокола. Начните с этого примера, а затем адаптируйте его под свои нужды.