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

Подскажите в чем дело??? Гаснет сегмент.

Добавлено: Вс янв 03, 2010 23:22:14
Славасян
Категорически всех приветствую и поздравляю с наступившим НГ. Начинающий радиолюбитель микроконтроллеров. Собрал схему, возникли вопросы, поюзал инет, и наткнулся на Ваш сайт. Схема похожая из обучалки http://radiokot.ru/start/mcu_fpga/avr . Отличие незначительные, индикаторы с общим анодом подключены к порту D через транзисторы КТ315. Проблема вот в чем. Дошел до раздела Динамическая индикация. Вывожу на индикаторы число 1234, и через секунд 10 у цифры 3 начинает гаснуть сегмент d!!! Вывожу на всех 8, чтоб проверить может индикатор или пин не держит нагрузки, нет, все нормально. Подскажите в чем же дело?

Добавлено: Вс янв 03, 2010 23:41:18
Arlleex
лучше бы программку выложили бы)

Добавлено: Пн янв 04, 2010 00:54:08
Славасян
Прога вот. Схема http://www.radiokot.ru/start/mcu_fpga/avr/15/03.gif Но как я уже говорил индикаторы с общим анодом. Транзисторы удалил, чем приблизился к схеме радиокота. Индикаторы подключены у меня abfgchde, по схеме abcdefgh. И если 0 выводить везде, то тоже сегмент этот гаснет. Может дело все таки в нагрузке на порт? Тогда почему гаснет именно сегмент d (18 лапа), а скажем не b (13) или с (16)?

Добавлено: Пн янв 04, 2010 08:55:25
SeamaNCOS
По коду так сразу ничего косячного не нашел.
А при тесте программатор отключал?

Добавлено: Пн янв 04, 2010 14:58:54
pyzhman
Возможно дело в индикаторе, отображающем цифру 3. Попробуйте поменять местами любой с ним, поменяв местами скажем выводы 2 и 3 МК.

Добавлено: Пн янв 04, 2010 15:01:31
Terr0r!sT
Неплохо было бы после индикации первого сегмента выводить в PortB
8 едениц чтобы выключить его, иначе в 4 сегменте будет слабо заметен 3 сегмент, в 3 2, во 2 1

Добавлено: Вт янв 05, 2010 15:10:56
Славасян
SeamaNCOS писал(а):По коду так сразу ничего косячного не нашел.
А при тесте программатор отключал?


Отключал.
**************************************************************
pyzh_man писал(а):Возможно дело в индикаторе, отображающем цифру 3. Попробуйте поменять местами любой с ним, поменяв местами скажем выводы 2 и 3 МК


Менял, но все осталось по прежнему. Более того если выводить цифру 3 на все индикаторы, у всех сегмент гаснет почти сразу.
**************************************************************
Terr0r!sT писал(а):Неплохо было бы после индикации первого сегмента выводить в PortB
8 едениц чтобы выключить его, иначе в 4 сегменте будет слабо заметен 3 сегмент, в 3 2, во 2


Спасибо учтем

Добавлено: Вт янв 05, 2010 17:57:48
Славасян
Где то вычитал, не скажу где именно, т.к. не помню. Порт может держать нагрузку - 8 пинов х 20 мА =160 мА по теории, а на практике ТОЛЬКО ДО 120 мА! Вообщем если там посчитать то в схеме как раз перебор получается. Контроллер Attiny2313. (УВАЖАЕМЫЕ ТОВАРИЩИ кто очень хорошо шарит в электронике скажите так ли это или мне это приснилось). Поставил доп резисторы, проблема решилась...на время, сейчас сегмент гаснет медленно, но все же гаснет! Че за фигня??? :cry:

Re: Подскажите в чем дело??? Гаснет сегмент.

Добавлено: Ср янв 06, 2010 13:10:49
kot1972
Славасян писал(а):Категорически всех приветствую и поздравляю с наступившим НГ. Начинающий радиолюбитель микроконтроллеров. Собрал схему, возникли вопросы, поюзал инет, и наткнулся на Ваш сайт. Схема похожая из обучалки http://radiokot.ru/start/mcu_fpga/avr . Отличие незначительные, индикаторы с общим анодом подключены к порту D через транзисторы КТ315. Проблема вот в чем. Дошел до раздела Динамическая индикация. Вывожу на индикаторы число 1234, и через секунд 10 у цифры 3 начинает гаснуть сегмент d!!! Вывожу на всех 8, чтоб проверить может индикатор или пин не держит нагрузки, нет, все нормально. Подскажите в чем же дело?


Имел точно такую же проблему. Попытаюсь ответить.
У меня дело оказалось не в токах на пинах а в логике программы.

Я четыре байта перекодировал из binary в значения для семисегментного индикатора. Делал это в цикле, цикл, по лени написал такой, что после перекодировки один раз он не заканчивался а доходил до конца. Так вот получалось так, что один раз перекодированное значение могло перекодироваться еще раз.

То есть для примера был байт 01. Перекодировался он в семисегментное например 03. А 03 перекодировалось в чтото ещё.

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

Добавлено: Чт янв 07, 2010 14:44:32
Ivanchik
верхний пост проверь, на всякий случай, может поможет

я бы транзисторы не убирал так сразу, как никак равномерность свечения с этим связана+ у нас веть динамическая индикация

проверь на всякий случай замыкание сегментов между собой и на землю( на сопротивление)

Добавлено: Сб янв 09, 2010 21:40:27
Славасян
Много полезной информации новичку. С проблемкой разобрался, у меня, повторюсь, индикаторы с общим анодом, т.е. что бы зажечь сегмент, нужен 0, а погасить 1. У меня подтягивающие резисторы не тянут к 1, я когда кнопки подключил к порту D, и начал опрашивать, контроллер сума сходить начинает. Поставил доп резисторы на 10 кОм на кнопки, все отлично работает, и кнопки и индикаторы. http://easyelectronics.ru/category/avr-uchebnyj-kurs тут много чего интересного для чайников, так для информации.

Всем спасибо. :beer:

Re: Подскажите в чем дело??? Гаснет сегмент.

Добавлено: Пт мар 23, 2012 00:18:32
Welmord
Здравствуйте уважаемые форумчане. какие резисторы поставить на базу кт315? Нужно ли делать делитель напряжения?