отправка ir сигнала с ардуины

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Здравствуйте, помоги бездарю, справится и ir, сигнал принял, а дальше отравить не получается, разные примеры попробовал(вот, что надо отравить 0x10EF30CF, hex). Помогите пожалуйста, уже 2 дня воюю с ir, за ранее спасибо 

#include <IRremote.h>
 #define JVCPower              0x10EF30CF
IRsend irsend;
void setup()
{
}

void loop() {
  irsend.sendJVC(JVCPower, 16,1); 
  delay(2000); 
  
}

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

В примерах к библиотеке чего-то про особенности JVC есть. Там с повторной посылкой какая-то магия делается.

Ну и традиционно - а правильно ли передатчик подключен? а шлёт ли он вобще хоть что-то? а тот ли код надо слать? и т.д.

fanat.arduino
Offline
Зарегистрирован: 10.11.2019
#include <IRremote.h>
int RECEIVE_PIN = 7;
IRrecv irrecv(RECEIVE_PIN);
decode_results results;
void setup() {
    Serial.begin(9600);
    irrecv.enableIRIn(); // Start the receiver
}
void loop() {
    if (irrecv.decode(&results)) {
        Serial.print("0x");
        Serial.println(results.value, HEX);
        delay(50);
        irrecv.resume();// Receive the next value
    }
}

передатчик стоит на 3 пине, светится на камеру. Я код считал  

negavoid
Offline
Зарегистрирован: 09.07.2016

А-а. ИК-передатчик должен быть включен через транзистор, то, что он светится на камеру, это пофигу, ему не хватает тока. Поднесите прямо в упор к приёмнику - если код отправляется правильный, сработает, иначе подключайте через любой транзистор.

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

а скетч правильный, подскажите пожалуйста 

negavoid
Offline
Зарегистрирован: 09.07.2016

Есть куча библиотек с кучей примеров, все почти одинаковые, так что подойдёт любой под ваш протокол, только код свой правильно вставьте в него.

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Не понял

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

сейчас попробовал прям в плотную, сменил резистор на 100 ом, нечего не происходит. 

SLKH
Offline
Зарегистрирован: 17.08.2015

negavoid пишет:

А-а. ИК-передатчик должен быть включен через транзистор, то, что он светится на камеру, это пофигу, ему не хватает тока. 

 

если не мутить дальнюю связь, то 20-30 миллиампер в комнате хватает и ещё остается.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Ну, в бильбитеке же чёрным по белому написано, что JVC - тупой, он с первого раза не понимает, потому ему два раза слать надо. Сначала с 0, а потом с 1. И пример там есть:

  irsend.sendJVC(JVCPower, 16,0); // hex value, 16 bits, no repeat
  delayMicroseconds(50); // 
  irsend.sendJVC(JVCPower, 16,1); // hex value, 16 bits, repeat
  delayMicroseconds(50);

see http://www.sbprojects.com/knowledge/ir/jvc.php for information

Вот так и шли. Для кого писали-то?

SLKH
Offline
Зарегистрирован: 17.08.2015

fanat.arduino пишет:

сейчас попробовал прям в плотную, сменил резистор на 100 ом, нечего не происходит. 

без всех библиотек подай на передатчик tone(pin, 38000) посылками по полсекунды и посмотри, что делается на выходе приемника.

 

negavoid
Offline
Зарегистрирован: 09.07.2016

SLKH пишет:

negavoid пишет:

А-а. ИК-передатчик должен быть включен через транзистор, то, что он светится на камеру, это пофигу, ему не хватает тока. 

если не мутить дальнюю связь, то 20-30 миллиампер в комнате хватает и ещё остается.

Мы не знаем, какой у тс диод, может как был у меня, выпаянный из пульта 25 летней давности, с пина на камеру визуально светился, но приёмник реагировал на него только вот прям вплотную, а с ключом по комнате стало нормально.

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Все получилось,спасибо большое, со схемой вообще далеко берет, то что надо. Только есть загвоздка, я использую версия 1.6.5,а там не работает, пришлость ставить 1.8.9, а на этой версии у меня  lcd (16x2), выводит первый символ. Буду сейчас искать информация. 

#include <iarduino_IR_TX.h>                     
iarduino_IR_TX VD(10);                         
void setup(){
  VD.begin();                                   
                       
void loop(){
  VD.send(0x40BF08F7);   
 VD.send(F4E60A8F);  

} 

 

fanat.arduino
Offline
Зарегистрирован: 10.11.2019