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

Не совсем бегущая строка...

Добавлено: Пн июн 01, 2009 16:19:04
abodin
Здравствуй, прошу помощи в написании проекта на atmega 16.
На семь светодиодов выходит слово. светодиоды вращаются на планке. скорость вращения планки считывается с энкодера. Хоть набросок в каком направлении идти. Спасибо (Атмегу взял потому как их купил штук 20 по доступной цене в свое время)

Re: Не совсем бегущая строка...

Добавлено: Пн июн 01, 2009 16:31:14
woroba
abodin писал(а):Здравствуй, прошу помощи в написании проекта на atmega 16.
На семь светодиодов выходит слово. светодиоды вращаются на планке. скорость вращения планки считывается с энкодера. Хоть набросок в каком направлении идти. Спасибо (Атмегу взял потому как их купил штук 20 по доступной цене в свое время)
Смотрите журнал Схемотехника, там был аналогичный прект с прошивками.

Re: Не совсем бегущая строка...

Добавлено: Пн июн 01, 2009 16:39:44
abodin
woroba писал(а):
abodin писал(а):Здравствуй, прошу помощи в написании проекта на atmega 16.
На семь светодиодов выходит слово. светодиоды вращаются на планке. скорость вращения планки считывается с энкодера. Хоть набросок в каком направлении идти. Спасибо (Атмегу взял потому как их купил штук 20 по доступной цене в свое время)
Смотрите журнал Схемотехника, там был аналогичный прект с прошивками.
сейчас поищу, а как устройство назвать?

Re: Не совсем бегущая строка...

Добавлено: Пн июн 01, 2009 19:08:16
Rokl
abodin писал(а):Здравствуй, прошу помощи в написании проекта на atmega 16.
На семь светодиодов выходит слово. светодиоды вращаются на планке. скорость вращения планки считывается с энкодера. Хоть набросок в каком направлении идти.
Может сначала зайти сюда?
http://radiokot.ru/circuit/digital/home/13/

Добавлено: Пн июн 01, 2009 21:06:26
SeamaNCOS
Тоже самое что и рисунок на колесе.http://radiokot.ru/forum/viewtopic.php?t=14736
тлько у тебя будет частота вращения одинаковая. Хотя можно просто прошивку переписать под мегу ну и добавить несколько матриц с буквами (высота 14 светиков)

Добавлено: Пн июн 01, 2009 23:42:01
Аксель
:))

Есть тут ещё для наброска направления:

http://radiokot.ru/forum/viewtopic.php?t=12864

Propeller clock

Добавлено: Вт июн 02, 2009 10:35:11
abodin
Спасибо буду разбираться только проблема в использовании энкодера (есть в наличии на 2500 импульсов) вход в 8кГц получится обработать?
Можно чтобы я сам разобрался кинуть кусок кода в CodeVisionAVR с таким примером: включение выходов синхронно поступающим сигналам по определенному входу. т.е. пришел сигнал на вход 1 включились выходы с 1 по 7, пришел следующий импульс на вход 1 включили выходы 1,7 тока написать все это в Си могу, но скорости думаю не хватит и программа раздуется на 200 и более строк. Можно как то описать все варианты включения выходов в какой то массив и потом только вызывать от туда нужный вариант включения, но опять повторюсь все сдвиги делать по входу к которому подключен энкодер. Спасибо.

Добавлено: Вт июн 02, 2009 13:01:06
1995kenny
Есть такая вещь MiniPov. http://www.ladyada.net/make/minipov3/index.html Сам в прошлом году сделал такую-же.там токо 8 светодиодов, вроде функция для определения скорости предусмотрена. :)

Также могу дать почти законченные исходники на си для такой штуки с 24 светодиодами, под atmega8, с регистрами 74HC164,без определения скорости,передача по SPI.

Добавлено: Вт июн 02, 2009 19:32:14
abodin
А нельзя кусок кода с синхронным смещением выходов по входу от энкодера? Если можно с предварительным делением 2500 импульсов многовато както

Добавлено: Вт июн 02, 2009 22:38:11
maglev
abodin писал(а):А нельзя кусок кода с синхронным смещением выходов по входу от энкодера? Если можно с предварительным делением 2500 импульсов многовато както
в этой задаче энкодер (тем более на 2500ppr) не нужен. Обычно достаточно одного датчика оборота, остальное - программно.

Добавлено: Ср июн 03, 2009 00:41:26
Аксель
"скорость вращения" - ну нафиг не надо при энкодере :))
Ну есть у человека энкодер, хули ему пропадать (энкодеру). (Ну или нет энкодера, но есть архисложная задача.)
Энкодер из вышесказанного выходит что инкрементный - т.е. повернули его на 2500 часть круга - он нам импульс.
(Если не так - сам автор виноват за постановку своего вопроса :))) т.е. об чём спрашивали то и получили)

Просит код, ну.... ежели хто дасть :)))

А на пальцах:
Допустим в кругу будет 250 столбцов.
Объявляем массив с данными, данные байтовые, 250 байтов по одному на столбец.
Одна ячейка массива - 1 байт, данные об одном столбце из 7-ми светодиодов.

Задаём переменную S как байт - будем считать ей шаги энкодера.
Задаём переменную M как байт - будем считать элементы массива
s=0
m=0

Делаем внешнее прерыванине (например по возрастанию).


Начало цикла.

По внешнему прерыванию делаем
-------------------------
s=s+1
Проверяем:
.........Если s = 10 (отсчитали 10 шагов, а каждые 10 шагов энкодера в нашем кругу начинается новый столбец) то:
s=0
м=м+1
....если м=251 то м=1 (если достигли и вывели последний элемент массива (250), то выводить начинать с первого).

и передать на светодиоды данные из ячейки массива за номером м

........Конец Если (перврго)
------------------------------------------------


Вернутся в начало цикла.






Да, возможны варианты, но вот на этот алгоритм автор, я надеюсь, сможет написать свой код?

А потом можно дальше пообсуждать...
Удачи.