Top.Mail.Ru
Ответы

Arduino ir receiver v 1222 ir transmitter v1221

короче надо что бы записался сигнал с пульта а потом его можно было воспроизвести
вот мой код но он не работает #include <IRremote.h> #define RECEIVER_PIN 4 // Пин для ИК-приемника (OUT) #define TRANSMITTER_PIN 5 // Пин для ИК-передатчика (DAT) #define BUTTON_PIN 6 // Пин для кнопки IRrecv irrecv(RECEIVER_PIN); decode_results results; uint32_t savedCode = 0; // Переменная для хранения сохраненного кода bool signalSaved = false; // Флаг, указывающий, что сигнал сохранен void setup() { Serial.begin(115200); irrecv.enableIRIn(); // Запуск ИК-приемника pinMode(BUTTON_PIN, INPUT_PULLUP); // Настройка кнопки Serial.println("Поднесите пульт к ИК-приемнику для записи сигнала..."); } void loop() { // Считывание сигнала с ИК-пульта if (irrecv.decode(&results)) { savedCode = results.value; // Сохраняем код signalSaved = true; // Устанавливаем флаг, что сигнал сохранен Serial.print("Код сигнала: "); Serial.println(savedCode, HEX); // Вывод кода в шестнадцатеричном формате irrecv.resume(); // Возобновляем прием } // Проверка нажатия кнопки для отправки сигнала if (signalSaved && digitalRead(BUTTON_PIN) == LOW) { // Воспроизведение сигнала с ИК-передатчика IRsend irsend(TRANSMITTER_PIN); irsend.sendNEC(savedCode, 32); // Отправка сигнала (например, NEC) Serial.println("Сигнал отправлен!"); signalSaved = false; // Сбрасываем флаг delay(2000); // Задержка для предотвращения повторной отправки } }
помогите пожалуйста

По дате
По рейтингу
Аватар пользователя
Знаток
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
 #include <IRremote.h> 
 
#define RECEIVER_PIN 4    
#define TRANSMITTER_PIN 5 
#define BUTTON_PIN 6      
 
IRrecv irrecv(RECEIVER_PIN); 
decode_results results; 
IRsend irsend(TRANSMITTER_PIN); 
 
uint32_t savedCode = 0; 
int protocol = 0;       
bool signalSaved = false; 
 
void setup() { 
  Serial.begin(115200); 
  pinMode(BUTTON_PIN, INPUT_PULLUP); 
  irrecv.enableIRIn(); 
  Serial.println("Поднесите пульт к ИК-приемнику для записи сигнала..."); 
} 
 
void loop() { 
  if (irrecv.decode(&results)) { 
    savedCode = results.value; 
    protocol = results.decode_type; 
    signalSaved = true; 
    Serial.print("Код: "); Serial.println(savedCode, HEX); 
    Serial.print("Протокол: "); 
    switch (protocol) { 
      case NEC: Serial.println("NEC"); break; 
      case SONY: Serial.println("SONY"); break; 
      case RC5: Serial.println("RC5"); break; 
      case RC6: Serial.println("RC6"); break; 
      case DISH: Serial.println("DISH"); break; 
      default: Serial.println("Неизвестный"); 
    } 
    irrecv.resume(); 
  } 
 
  if (digitalRead(BUTTON_PIN) == LOW && signalSaved) { 
    switch (protocol) { 
      case NEC: 
        irsend.sendNEC(savedCode, 32); 
        break; 
      case SONY: 
        irsend.sendSony(savedCode, 20); // Для SONY 12/20 бит 
        break; 
      case RC5: 
        irsend.sendRC5(savedCode, 13); 
        break; 
      case RC6: 
        irsend.sendRC6(savedCode, 20); 
        break; 
      default: 
        Serial.println("Протокол не поддерживается!"); 
        break; 
    } 
    Serial.println("Сигнал отправлен!"); 
    signalSaved = false; 
    delay(2000);
  } 
} 

Тут исправлен IRsend irsend(TRANSMITTER_PIN) и еще по мелочи
Только глянь, что передатчик подсоединен к пину 5 и имеет резистор 220-330 Ом в цепи. После запуска кода поднеси пульт и нажми кнопку. В Serial Monitor увидишь протокол, например, NEC. Если протокол не поддерживается, укажи его в switch-конструкции

Аватар пользователя
Ученик

Спасибо

Аватар пользователя
Ученик

не неработает

Аватар пользователя
Ученик

Там написано протокол не поддерживается

Аватар пользователя
Ученик

А с чего бы работало то, что нагенерил ЧятЖПТ? :)

Аватар пользователя
Ученик

вот что выходит

Аватар пользователя
Ученик

Код: 0x0
Протокол: Неизвестный
Код: 0x0
Протокол: Неизвестный
Код: 0x0
Протокол: Неизвестный
Код: 0x0
Протокол: Неизвестный
Код: 0x2E36A7EE
Протокол: Неизвестный
Код: 0x88A5C215
Протокол: Неизвестный
Нажата кнопка! Отправка сигнала...
Сигнал отправлен (raw)!
при отправле на трансмиттере лампочка загорается но телевизору по барабану

Аватар пользователя
Ученик

К********0"�
Протокол: Неизвестный
Длина raw: 68

Аватар пользователя
Ученик

телику все равно

Аватар пользователя
Ученик

телевизор самсунг кнопка включения выключения

Аватар пользователя
Ученик

Пока не научишься вставлять текст кода, работать ничего не будет



Видео по теме