[Arduino] Работа с TSOP1836

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Сообщение 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
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Реклама
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Сообщение 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);}
}
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 328
Зарегистрирован: Вт ноя 20, 2007 17:30:36
Откуда: Раша

Сообщение dalay-lama »

kras писал(а):Давайте хоть с чем-то разберемся
Для начала определитесь с протоколом и принципами http://www.getchip.net/posts/077-zapis- ... uyu-kartu/.
Важнейшая задача цивилизации - научить человека мыслить. /Т. Эдисон/
Мучитель микросхем
Сообщения: 487
Зарегистрирован: Пт июн 12, 2009 19:17:35

Сообщение qwerky »

сначала ответьте на вопрос - зачем там АЦП ?
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

32 кГц и есть высокочастотная несущая судя по всему, после ТСОПа ее не будет уже
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Реклама
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Сообщение kras »

ОК, ну у меня проблема с тем, как различить каналы между собой, хотя бы в такой системе. Аналоговый вход, может быть, излишен, но тогда я не понял, как действует TSOP. Когда поступает любое напряжение, я так понял, он сразу выделяет только сообщение, демодулируя сигнал, но сообщение не может быть с нулевой частотой, например, то есть есть еще фильтр. И вот, я подаю одну гармонику амплитудой 1В. Так что, он не покажет на выходе гармоническое колебание? Если покажет, то я таким образом перестраховываюсь, чтобы не принять логическую единицу за 0. А если нет, то правильно, можно и не использовать аналоговый вход.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Реклама
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Сообщение kras »

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

Вернуться в «Микроконтроллеры и ПЛИС»