roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 02:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 13:20 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
Суть проблемы вы можите посмотреть в прикрепленном файле. Комутацию индикитора производил как обычно, на порт D посадил через резисторы 100 Ом семь сегментов индикатора, переключение индикаторов произвожу с порта B через транзистор (переключаю "минус"). Выводиться то они выводятся, но друг другу мешают, как бы немного засвечивают. Пробывал менять честоту, думал возможно она как то влияет - нет не помогло. Может я что то упустил из виду. Ткните носом, где не прав.


Вложения:
MOV00458.rar [284.82 КиБ]
Скачиваний: 17
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 13:28 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А при отключенном индикаторе (транзистор закрыт) - оно подтянуто к питанию? Схемку бы выложить вообще.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 13:31 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Или ток проходит слишком большой и из-за больше мощности идёт засветка...

У меня на плате драйвера один светодиод горит при лог. 0 на выходе МК :ROFL:
(светодиод подключён на землю)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 13:42 
Выходной порт в Z-состоянии.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 13:53 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
вот схема


Вложения:
nm.JPG
nm.JPG [ 15.85 КиБ | Просмотров: 1852 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:04 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
вопщем задержки ковырять нада, имхо...
длительность работы индикатора + задержка перед включением нового...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:30 
Не в сети

Зарегистрирован: 14 фев 2009, 01:11
Сообщения: 4
Откуда: Казань
А осцилом не судьба посмотреть что там на транзисторах?
Ну или код покажи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:37 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
loid писал(а):
вот схема

А что нельзя попробовать подтяжки поставить к питанию выше транзисторов, чтобы когда цифра отключена - у неё хвост в воздухе не болтался?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:42 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
С временем индикации уже химичел - ни к чему не приводит. Уже транзисторы убрал, думал они межленно затухают. Результата нет.
Кто то же делал на форуме часы, как индикацию сочинял?

Добавлено спустя 4 минуты 29 секунд:
вот код:
Код:
#include <mega8.h>
#include <delay.h>
int n;
int nm1;
int nm; //числовое значение для вывода на дисплей
int number[]={0b01101111,0b00001100,0b00111011,0b00111101,0b01011100,0b01110101,0b01010111,0b00101100,0b01111111,0b01111100};
//int step;

void printnm()  //вывод числового значения на дисплей
             {
             for (n=0; n<4; n++){
             PORTB.0=0;
             PORTB.1=1;
             PORTD =number[nm%100/10];
             PORTB.0=1;
             PORTB.1=0;
             PORTD =number[nm%10];
                                 }
             }     
             

void main(void)
{
PORTB=0xFF;
DDRB=0xFF;

PORTC=0x7F;
DDRC=0x7F;

PORTD=0x00;
DDRD=0xFF;

TCCR0=0b00000101;
TCNT0=0x00;

while (1)
      {
      //nm=TCNT0;
      //ta++;
      //if(ta>1000){ta=0; printnm();}
      if(TCNT0>10){printnm(); nm1++; TCNT0=0;}
      PORTD=0x00;
      if(nm1>50){nm1=0; nm++;}
      if(nm>99){nm=0;}
      };
}




Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:44 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
loid писал(а):
Кто то же делал на форуме часы, как индикацию сочинял?

http://www.gaw.ru/html.cgi/txt/app/micr ... AVR242.htm - читали?

А вообще подтяжку таки пробовали сделать? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:50 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
В базы транзисторов ОБЯЗАТЕЛЬНО надо ставить ограничительные резисторы 500ом - 1ком.

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:53 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
yak-40 писал(а):
В базы транзисторов ОБЯЗАТЕЛЬНО надо ставить ограничительные резисторы 500ом - 1ком.

Кстати, да, что опять же указано в приведённой выше статье.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 14:59 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
1. Сначала выключай все разряды, затем выставляй нужные сегменты, и только потом включай нужный разряд.
2. Сильно не пытался в твоем коде разбираться, но сдается мне что он совсем не рабочий. Не вижу кода, который циклически меняет текущий отображаемый разряд.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 16:18 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
blindman, спасибо, ошибку ты мне показал. Всё заработало. :Yahoo!:
Ошибка была в следующем:
- включаю нужный разряд
- зажигаю нужные сегменты (не гашу их)
- переключаю разряд
- зажигаю нужные сегменты (другие)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с динамической индикацией
СообщениеДобавлено: 16 фев 2009, 16:49 
Не в сети

Зарегистрирован: 14 фев 2009, 01:11
Сообщения: 4
Откуда: Казань
дык очевидно все

PORTB.0=0;
PORTB.1=1;
тут сделай паузу
PORTB.1=0;
PORTD =number[nm%100/10];
PORTB.0=1;
...

ты сам засвечиваешь разряды.
и про резюки в базах не забудь


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO