Вопрос по ИК-модему для Serial (вечный байт 255)
- Войдите на сайт для отправки комментариев
Приветствую, all.
Это, как вы можете видеть, стандартный вариант генератора на 555 по примеру "astable mode" из "калькулятора 555", подогнанный на следующие параметры:
- duty как можно ближе к 50%
- сделать как можно ближе к 38 кГц, исходя из того что у меня конденсаторы только 1.8 нФ и 0.1 мкФ.
Самовольное изменение схемы: конденсатор на выводе 5 не 10 нФ а 100 нФ, т. к. другого у меня не было. Влияет?
Отличия от "astable mode":
- управление по 4 выводу (активная единица). И т. к. арда держит линии сериала в состоянии HIGH, полагаю что там логика активный ноль, поэтому по входу инвертор.
На той стороне просто интегральный приёмник (VS1838, резистор, конденсатор по питанию). Если почитать ДШ, то видно что у приёмника ОК N-типа, то есть активный ноль, поэтому выход идёт просто в Rx.
Отличия от Serial:
- воткнуто в A1, A0 как SoftwareSerial. Системным требованиям соответствует (на обоих проводах есть в пинмапе надпись PCINT).
Жалобы:
1. Приняв единичную посылку, сериал приёмника сходит с ума и начинает вечно повторять последний принятый байт, приходится флушить сериал.
2. Любой посланный байт читается как 255, но количество байтов никогда не читается неправильно. Посылаю один - приходит чётко один, из чего заключаю что проблема не в передатчике. Итак, чем же оно с#ка больное? Какое у него заболевание?
Работает одинаково, пробовались скорости 2400, 1200, 600. Одинаково.
Оригинальная статья: http://forum.arduino.cc/index.php?topic=10555.0 (Хочу сделать внешний генератор чтобы не трогать настройки T2. Проект готовится для управления контроллером TLC5940, в котором все таймеры будут забиты под завязку, так что отводить T2 под какую-то несущую 38 кГц я не хочу.)
1. временно отодвинуть всё народное творчество и соединить выход мк-передатчика со входом мк-приемника проводом - проверить программное обеспечение.
2. подавать на базу Q1 постоянные ноли или единицы. убедиться, что в статике сигналы на входе генератора и выходе IR-приемника совпадают.
3. посмотреть осциллографом, что творится на выходе TSOP при приеме на разных скоростях.
4. тогда не знаю.
Спасибо за ответ, попробую.
Но пока что 1 - порядок, 2 - порядок, 3 - нет возможности.
На данный момент буду двигаться в сторону покупки хотя-бы простецкого лог. анализатора с Али...
Спасибо за ответ, попробую.
Но пока что 1 - порядок, 2 - порядок, 3 - нет возможности.
На данный момент буду двигаться в сторону покупки хотя-бы простецкого лог. анализатора с Али...
двухлучевой осциллограф сразу дал бы кучу информации, анализатор тоже.
есть у мя некоторые предположения:
- частота генератора не 38, TSOP при получении пакетов не успевает срабатывать даже на 600, хотя по мануалу вроде бы должен. Стоит попробовать 300 бод.
Что ещё можно придумать?
- слепить на ардуине простой программный частотомер и отладить генератор.
- функцию tone() несложно допилить, чтобы она выдавала пакеты длиной сколько надо микросекунд - подать на светодиод пакеты разной длительности, посмотреть, какие проходят.