реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> алгоритм для записи пульта в AVR, помогите пожалуйста :(
VAHOO
сообщение May 11 2008, 19:04
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Всем привет! уже более 3 недели мучаюсь не могу написать код,
делаю выключатель который регулирует яркость и надо
что-бы работал с любым пультом, тоесть надо стачало записать
сигнали от пульта в EEPROM а потом сравнить, делаю проект
на mega88 в CVAVR на языке СИ, протоколы пультов очень много,
если я все протоколы сунул в AVR то место не будет хватать,
у меня алгоритм был такой но корекно не работает,
я записал временные интервалы между импулсами, но
временные интервалы от растояния пульта всегда меняются.

буду рад любой информации

спасибо!


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 11 2008, 19:25
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



У вас осциллограф есть?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 11 2008, 19:28
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(DpInRock @ May 11 2008, 23:25) *
У вас осциллограф есть?


да, конечно есть


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
Клим
сообщение May 11 2008, 19:30
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(VAHOO @ May 11 2008, 22:04) *
у меня алгоритм был такой но корекно не работает,
я записал временные интервалы между импулсами, но
временные интервалы от растояния пульта всегда меняются.

Что значит меняется ?
Какой пульт, самое главное, какой приемник ?
И чем записываете ?
Не должно быть настолько больших отклонений в зависимости от расстояния.
Go to the top of the page
 
+Quote Post
yarunt
сообщение May 11 2008, 19:44
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(VAHOO @ May 11 2008, 22:04) *
Всем привет! уже более 3 недели мучаюсь не могу написать код,
делаю выключатель который регулирует яркость и надо
что-бы работал с любым пультом, тоесть надо стачало записать
сигнали от пульта в EEPROM а потом сравнить, делаю проект
на mega88 в CVAVR на языке СИ, протоколы пультов очень много,
если я все протоколы сунул в AVR то место не будет хватать,
у меня алгоритм был такой но корекно не работает,
я записал временные интервалы между импулсами, но
временные интервалы от растояния пульта всегда меняются.

буду рад любой информации

спасибо!

В китайских выключателях света ,принцип простой.Специально загрубляется чувствительность фотоприемника импульсы с него выпрямляются в логическую 1 и идут на тригер.
Все просто,пульт направляется на выключатель ,фпремник ловит и управляет тригером ,а он тиристором .

Цитата(yarunt @ May 11 2008, 22:35) *
В китайских выключателях света ,принцип простой.Специально загрубляется чувствительность фотоприемника импульсы с него выпрямляются в логическую 1 и идут на тригер.
Все просто,пульт направляется на выключатель ,фпремник ловит и управляет тригером ,а он тиристором .

Вобщем надо в место тригера всунуть АВР ,который нубудет заморачиватся на код с пульта а будет заниматся регулировкой яркости.
Все равно управлять чем-то одним телевизором или выключателем

Сообщение отредактировал yarunt - May 11 2008, 19:36


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 11 2008, 19:46
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Поменяйте батарейки в пульте. Или поменяйте пульт.
А если есть осциллограф, то почему не говорите о том, что вы на нем видите.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 11 2008, 19:51
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



фотоприемник TSOP4838, подключил к вывду МК INT0,
вот кусок кода

Цитата(DpInRock @ May 11 2008, 23:46) *
Поменяйте батарейки в пульте. Или поменяйте пульт.
А если есть осциллограф, то почему не говорите о том, что вы на нем видите.


я настроил UART, и в терминале видно
Прикрепленные файлы
Прикрепленный файл  tu.rar ( 1.56 килобайт ) Кол-во скачиваний: 74
 


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
Клим
сообщение May 11 2008, 20:00
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(VAHOO @ May 11 2008, 22:51) *
фотоприемник TSOP4838, подключил к вывду МК INT0,
вот кусок кода
я настроил UART, и в терминале видно

Рекомендовал смореть либо на осциллографе либо подключить к компу. А потом уже подключать к контроллеру.
Про батарейки - правильно написано если слабый уровень сигнала - то не все имульсы доходят - и могут быть глюки.
Также важно напряжение питания приемника - на них хоть и пишут 4,5-5,5 - но в действительности даже при 4,5 уже работает гораздо хуже чем при 5. Также экранирование не помешает и фильрация питания - приемник сильно шумат, если к нему, к примеру, палец поднести.
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 11 2008, 20:08
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Взял другой пульт не помогло sad.gif


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 11 2008, 20:10
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



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


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 11 2008, 20:20
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(DpInRock @ May 12 2008, 00:10) *
Никогда не использовал принт внутри прерывания.
Неизвестно, какое время он отнимает.
И вообще. В прерываниях нужно выполнять только необходимую работу. А смотреть наполнение массива следует в фоне.


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


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
Клим
сообщение May 11 2008, 20:51
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(VAHOO @ May 11 2008, 23:20) *
скажите пожалуйста, какой нибудь алгоритм что-бы я использовал.
спасибо!

Алгоритм - мерять длину импульса и длину паузы.
Только для начала сообразить и отладить это все на компе.
А в исходнике у вас черти что творится. И меряется только длина самого имульса - что есть неправильно. Еще, принт в цикле - как отметили выше - тоже неправильно.
Могу предложить такой метод:
1.вешаем приемник на int0 или int1 - прерывание при смене уровня.
2. При лог 0 запускаем таймер
3. при следующем прерывании пишем в массив текущее значение таймера и сбрасываем таймер.
4. выключение таймера и просмотр результата - при переполнении таймера либо при переполнении массива.
5. только после этого вывод результата

Сообщение отредактировал Клим - May 11 2008, 20:52
Go to the top of the page
 
+Quote Post
VDG
сообщение May 11 2008, 21:57
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Цитата(VAHOO @ May 11 2008, 23:04) *
если я все протоколы сунул в AVR то место не будет хватать,
..
буду рад любой информации

все протоколы не "всунете", их ~ 10000 smile.gif

граббить нужно только одну посылку. а то мож у вас там сграблено обованными кусками. во вторых, один бит при удержании кнопки всегда меняется от пакета к пакету.

Сообщение отредактировал VDG - May 11 2008, 22:01


--------------------
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 11 2008, 22:52
Сообщение #14


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(yarunt @ May 12 2008, 05:14) *
В китайских выключателях света ,принцип простой.Специально загрубляется чувствительность фотоприемника импульсы с него выпрямляются в логическую 1 и идут на тригер.
Все просто,пульт направляется на выключатель ,фпремник ловит и управляет тригером ,а он тиристором .
Вобщем надо в место тригера всунуть АВР ,который нубудет заморачиватся на код с пульта а будет заниматся регулировкой яркости.
Все равно управлять чем-то одним телевизором или выключателем

Ничего не понял. Вернее, то, что удалось выудить из вашего сообщения, выглядит... как бы помягче сказать?.. э-э-э... полной ерундой.

Цитата(VAHOO @ May 12 2008, 04:34) *
делаю выключатель который регулирует яркость и надо
что-бы работал с любым пультом, тоесть надо стачало записать
сигнали от пульта в EEPROM а потом сравнить

То есть, вы пытаетесь сделать "обучаемый" приемник, способный настраиваться на любой ИК пульт? Бросьте эту затею, это совершенно точно задача не для начинающих. В общем виде она скорей всего вообще не решается. Вряд ли вы представляете себе, насколько разнообразны ИК протоколы в пультах, поэтому поставили себе задачу, с которой не справитесь.
Go to the top of the page
 
+Quote Post
Ден
сообщение May 12 2008, 02:47
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 21-06-07
Из: Омск
Пользователь №: 28 594



Дело в том, что в некоторых протоколах, когда подаете первую посылку, она имеет одни временные интервалы, когда идут следующие (с этой же нажатой клавиши) временные интервалы уже другие. Обычно они инверсные и поэтому если просто тупо записать временные интервалы, то с некоторыми протоколами ничего работать не будет.
Во вторых
Цитата
все протоколы не "всунете", их ~ 10000

Точно сказать не могу столько их или нет в мире, но могу сказать точно, что на практике, в бытовой аппаратуре чаще всего используется RC-5, и его модификации, да и к тому же количество фирм производящей аппаратуру не так уж и много, поэтому я считаю что все же лучше запихнуть несколько наиболее распространенных модификаций RC5 в AVR и уже не заморачиваться с такой сверхуниверсальностью.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 21:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01501 секунд с 7
ELECTRONIX ©2004-2016