ик пульт и ик приёмник на Attiny13

Здесь обсуждаем устройства на МК и программы для них
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: ик пульт и ик приёмник на Attiny13

Сообщение rhf-admin »

Вот приёмник на тиньке, не зависящий от точности частоты кварца:
avr_rc5.zip
(2.65 КБ) 600 скачиваний
Разница в Cr0, Cr1 обусловлена разной скоростью работы тиньки и пика. У пика внутренний кварц на 4 МГц, а у Тиньки на 9,6 + Пик выполняет команды за 4 такта, а Тинька за 1. Плюс сам код чуть отличается. Потому и разница. Ты фьюзы в Тиньке правильно настроил, чтоб 9,6 МГц включить?

P.S. Походу придётся поставить себе этот ваш протеус-шматеус :lol:
С уважением, администрация сайта.
sergejus
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 09 дек 2012, 13:30

Re: ик пульт и ик приёмник на Attiny13

Сообщение sergejus »

оооо!!! от пульта телика теперь зажигаются 3 разных диода! :clapping: вот только самодельный пульт ничего не зажигает вообще. :? фьюзы я вообще не менял, как купил тиньку посмотрел что по стандарту уже был 9,6 настроен
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: ик пульт и ик приёмник на Attiny13

Сообщение rhf-admin »

Так, уже кое-что. :) А почему только 3, а не 4?
А про самодельный пульт - будем думать. :-? Ты в него старую прошивку вернул, со старыми значениями Cr0, Cr1?
С уважением, администрация сайта.
sergejus
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 09 дек 2012, 13:30

Re: ик пульт и ик приёмник на Attiny13

Сообщение sergejus »

rhf-admin писал(а):Так, уже кое-что. :) А почему только 3, а не 4?
А про самодельный пульт - будем думать. :-? Ты в него старую прошивку вернул, со старыми значениями Cr0, Cr1?
ай не, всё ок с тв пультом. в том видать кнопка заела. с другим пультом все 4 светика зажигаются :rightly:

а в самодельный пульт я залил прогу с сайта не изменённую
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: ик пульт и ик приёмник на Attiny13

Сообщение rhf-admin »

Кстати, а при повторном-то нажатии состояние инвертируется, диоды гаснут? А то у меня с пиком-то не гасли почему-то.

А с самопальным пультом - непонятно, вроде должно работать. Жаль тесты не могу провести. Сам-то пульт я нашёл, но только он пустой. Тиньку из него я походу уже куда-то в другое место пристроил. И в магазинах у нас тинек 13-х нет. Но тесты в AVRStudio говорят, что всё нормально. И потом, когда я статью-то писал - я это всё собирал и всё работало.
С уважением, администрация сайта.
sergejus
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 09 дек 2012, 13:30

Re: ик пульт и ик приёмник на Attiny13

Сообщение sergejus »

rhf-admin писал(а):Кстати, а при повторном-то нажатии состояние инвертируется, диоды гаснут? А то у меня с пиком-то не гасли почему-то.

А с самопальным пультом - непонятно, вроде должно работать. Жаль тесты не могу провести. Сам-то пульт я нашёл, но только он пустой. Тиньку из него я походу уже куда-то в другое место пристроил. И в магазинах у нас тинек 13-х нет. Но тесты в AVRStudio говорят, что всё нормально. И потом, когда я статью-то писал - я это всё собирал и всё работало.
да и инвертируются, что тоже прекрасно. спасибо ;)

эх значит не судьба мне самодельный пульт сделать, без вас не разберусь :(
sergejus
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 09 дек 2012, 13:30

Re: ик пульт и ик приёмник на Attiny13

Сообщение sergejus »

а вы могли бы объяснить по проще работу приёмника на attiny? я смотрю ассемблер для avr это вообще какой то космос.. всё на таймерах, прерываниях... на пике приёмник такой понятный был (с вашей помощью особенно) а тут я вообще запутался на алгоритм глядя:)
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: ик пульт и ик приёмник на Attiny13

Сообщение rhf-admin »

Смысл такой. Мы точно знаем, что первые два бита - единица. Значит первые два прерывания от изменения уровня на входе произойдут с интервалом в полубит. Вот мы по первому прерыванию от изменения уровня включаем таймер и засекаем время до второго прерывания. Это время равно длительности полубита.
Дальше вычисляем на основе этого времени длительность 3/4 бита.
Потом начинаем последовательно заполнять оставшимися битами два приёмных регистра, определяя значение очередного бита по тому, какой был предыдущий и через сколько времени после него произошло очередное прерывание от ноги.
Засекаем время между следующими прерываниями и отнимая от этого времени 3/4 бита - определяем к чему оно ближе - к половине бита или к целому биту (если разность отрицательная - ближе к половине, если положительная - ближе к целому). Если очередное измеренное время ближе к половине бита, то считаем, что прерывание произошло через половину бита. Если очередное время ближе к целому биту, то считаем, что прерывание произошло через целый бит.
Если прерывание произошло через полбита - значит передаётся такой же бит, как и предыдущий, но следующий измеренный интервал нужно пропустить и очередной бит по нему не записывать (но таймер пересбросить). Если прерывание произошло через целый бит, - значит следующий бит инвертирован по отношению к последнему, который мы записали. В этом случае следующий интервал (следующее прерывание) пропускать не надо (а надо по нему тоже очередной бит записать).
Так и записываем постепенно все 14 бит.
Если вдруг случилось прерывание от таймера - значит почему-то перестали сыпаться импульсы на приёмную ногу до того, как мы успели набрать 14 бит. Ресетим всё нафиг.

Что конкретно непонятно? Асм - он везде асм. Для AVR не сложнее, чем для пиков, только названия команд чуть отличаются.
С уважением, администрация сайта.
PDM
Читатель
Читатель
Сообщения: 1
Зарегистрирован: 17 июн 2013, 18:13

Re: ик пульт и ик приёмник на Attiny13

Сообщение PDM »

Добрый день.
Скажите, пожалуйста, можете ли вы разбить управление на 2 группы:
группа 1: при нажатии кнопки 1, зажигался светодиод (СД) №1, при наж. кн 2 сд №1 тух и зажигался сд №2, и наоборот, если горит сд №2, при нажатии на кнопку 1 сд №2 тух, а №1 зажигался и так по кругу (причем зажегся - потух именно в такой последовательности, как я описал).
группа 2: при нажатии на кн 3 горел сд №3 до опускании кнопки №3, а при нажатии на кн 4 горел сд №4 тоже до опускания кнопки.

Хочу применить данный алгоритм для управления советским кондиционером БК-2000.

Контроллер могу только прошить, править или написать программу сам не умею...
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: ик пульт и ик приёмник на Attiny13

Сообщение rhf-admin »

Контроллер могу только прошить, править или написать программу сам не умею...
Так учись, ёлы-палы. Первую часть совсем просто сделать.
Как я понял, для первых двух, - надо сначала гасить тот, который не соответствует номеру кнопки, потом зажигать тот, который соответствует номеру кнопки. Кстати, какая задержка должна быть между гашением одного и включением другого?
С уважением, администрация сайта.
Ответить

Вернуться в «Устройства на микроконтроллерах»