Страница 1 из 1

[Arduino] Работа с TSOP1836

Добавлено: Ср мар 14, 2012 16:28:48
kras
Взял пульт Toshiba CT-9782 и ик-приемник, хочу распознавать каналы. Есть аналоговый вход, поэтому решил напрямую проверять, какой уровень сигнала приходит. Программа, которая позволяет лишь зафиксировать любой сигнал с пульта:

Код: Выделить всё

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

void loop() {
  float sv1 = analogRead(A6)*5/1024;
  float sv2 = analogRead(A6)*5/1024;
  if (sv1-sv2>1)
  {Serial.println(analogRead(A6), DEC);}
}
Но она выдает фигню, на первый взгляд! Первое нажатие на клавишу "7" дает:

2
0
2
0
1
2
0
0
0
1
1
1
2
2
0
1
Второе уже
2
2
0
0
1
1
0
1
0
1
1
2
1
2
2
1
2
2
Третье
0
2
2
1
0
2
2
1
0
0
1
1
1
0
0
0
1
1
Это как?
Долго жму:

1
0
1
2
0
1
2
0
0
1
1
1
0
1
0
2
2
2
0
2
2
2
1
0
2
0
1
0
1
1
2
2
0
2
0
2
0
1
1
2
0
0
0
2
2
1
1
0
1
0
1
2
0
0
0
1
2
0
1
1
1
0
0
1
2
2
2
1
1
1
0
0
3
0
2
2
2
0
1
0
1
2
0
2
0
0
0
0
2
1
1
0
1
1
3
1
0
1
1
1

Re: [Arduino] Работа с TSOP1836

Добавлено: Чт мар 15, 2012 05:55:07
kras
АУ. А насчет сигналов пульта вообще что? Давайте хоть с чем-то разберемся, а то я вообще профан какой-то в ик-связи.
1. Пусть с пульта шел бы следующий модулированный сигнал: высокочастотная несущая (про которую я не понял, зачем она), и низкочастотное собщение с частотой 32кГц.
2. TSOP при получении оставляет только 32кГц. Тогда я должен получить цифровое изменение. Было 5В, стало 0В, потом снова 5. Ну если сильный сигнал (я не пробовал издали, надо было проверить). Значит пока 0, сигнал есть. Ну, вроде, все совпадает на самый первый взгляд. Но 0 не чередуется с 5!!! А скорость обработки и так, вроде, высокая, но... А разные сигналы должны давать разную последовательность, а тут она даже для одного сигнала разная, даже если не прибегать к Excel-графику.
3. Сигнал то, в итоге, не в В, а в разрядности АЦП, как я понял, но меняется только один (два-три) разряд. При этом не фиксируется перепад! То есть, постоянный "0". А, согласно условию, сигнал, все-таки, меняется минимум на 1В, то есть должны выдаваться и 1023:( Может в протоколе проблема, скорость надо подстраивать? Или что?
Хотя показываются же только маленькие значения. Но встречается и 1023 в коде!!! Когда сильно отклоняю пульт. А как должен выглядить код для норм проверки
Так не помогает:

Код: Выделить всё

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

void loop() {
  float sv1 = analogRead(A6)*5/1024;
  float sv2 = analogRead(A6)*5/1024;
  if (sv1-sv2>1)
  {Serial.println(analogRead(A6), DEC);}
  else if (sv2-sv1>1)
  {Serial.println(analogRead(A6), DEC);}
}

Re: [Arduino] Работа с TSOP1836

Добавлено: Чт мар 15, 2012 07:08:58
dalay-lama
kras писал(а):Давайте хоть с чем-то разберемся
Для начала определитесь с протоколом и принципами http://www.getchip.net/posts/077-zapis- ... uyu-kartu/.

Re: [Arduino] Работа с TSOP1836

Добавлено: Чт мар 15, 2012 10:01:38
qwerky
сначала ответьте на вопрос - зачем там АЦП ?

Re: [Arduino] Работа с TSOP1836

Добавлено: Чт мар 15, 2012 11:23:49
Мастер Ломастер
32 кГц и есть высокочастотная несущая судя по всему, после ТСОПа ее не будет уже

Re: [Arduino] Работа с TSOP1836

Добавлено: Чт мар 15, 2012 15:28:12
kras
ОК, ну у меня проблема с тем, как различить каналы между собой, хотя бы в такой системе. Аналоговый вход, может быть, излишен, но тогда я не понял, как действует TSOP. Когда поступает любое напряжение, я так понял, он сразу выделяет только сообщение, демодулируя сигнал, но сообщение не может быть с нулевой частотой, например, то есть есть еще фильтр. И вот, я подаю одну гармонику амплитудой 1В. Так что, он не покажет на выходе гармоническое колебание? Если покажет, то я таким образом перестраховываюсь, чтобы не принять логическую единицу за 0. А если нет, то правильно, можно и не использовать аналоговый вход.

Re: [Arduino] Работа с TSOP1836

Добавлено: Сб мар 17, 2012 11:00:01
kras
Я пробую уже второй день разобраться со ссылкой, но пока проблема в том, что белый светодиод, который оказался под рукой, не загорается вообще при сигналах, генерируемых DVZ. На слух все ощущается с динамиков ноутбука, втыкаю диод со штекером во вход наушников - света нет. Думал, может вольтметр померит - а он выдает 0. Почему? Я пока думаю, что логический 0 - минус, а 1 - плюс. Наверное, так. Сигнал, получается, такой: 36кГц заполнения + 1 и 0 по 4.5с. Не срабатывает диод! Может быстродействия не хватать? Он долго от тестера загорается. А как тогда правильно купить светодиод?:)