Перейти к содержанию

Транзисторы Для Управления Сегментами


Рекомендуемые сообщения

Здравствуйте ! Собираю часы по материалах из этой статьи http://my-avr.at.ua/publ/1-1-0-22 , и есть вопрос, нужны ли изменения в прошивке и если ДА, то как катоды индикаторов включить через транзисторы?

Схему в Proteus прилагаю...

segment indicator.rar

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

А какие индикаторы используете? С общим катодом или с общим анодом? Или маркировку назовите...

А так вопрос получается в никуда)

23.png

рис. а - включение с общим катодом

рис. б - включение с общим анодом

Изменено пользователем hq4u

В мире нет ничего особенного. Никакого волшебства. Только физика.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

А какие индикаторы используете? С общим катодом или с общим анодом? Или маркировку назовите...

А так вопрос получается в никуда)

С общим катодом.

Ссылка на комментарий
Поделиться на другие сайты

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В комментариях к программе так же описывается случай с общим катодом, так что Вам к рис. а. В Proteus-е тоже все верно включено. Только я номинал резисторов уменьшил бы, хотя бы до 5 кОм

В мире нет ничего особенного. Никакого волшебства. Только физика.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Еще раз здравствуйте!

Запустил симуляцию - наблюдаю Вами описанные эффекты. Причина неисправности может быть следующая:

Симулятор работает в реальном режиме времени (появляется цифра и тут же уходит с экрана, а глаз на МОНИТОРЕ этого различить на может).

Метод проверки теории: поставьте задержку при отображении не 5 мс, а скажем секунду или 2. Время может отображать не корректно, однако увидите работает ли индикация. А у меня не открывается ваш проект... Ошибка лезет.

Проверьте у себя и отпишитесь)

В мире нет ничего особенного. Никакого волшебства. Только физика.

Ссылка на комментарий
Поделиться на другие сайты

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

Может быть проблема в том, что для катодов разрядов дается лог 0, а для NPN транзистора нужно на базу лог 1?

Вот кусок кода, где происходит стробирование...

 Display(hour); //разложили "часы" на 2 цифры и отобразили по очереди
 PORTB=254; //даем лог 0 для катода 1 разряда
 PORTD=Disp6; //1 цифра 
 delay_ms(5);
 PORTB=253; //даем лог 0 для катода 2 разряда
 PORTD=Disp7; //2 цифра 
 delay_ms(5);
 Display(min); //разложили "минуты" на 2 цифры и отобразили по очереди
 PORTB=251; //даем лог 0 для катода 3 разряда
 PORTD=Disp6; //3 цифра 
 delay_ms(5);
 PORTB=247; //даем лог 0 для катода 4 разряда
 PORTD=Disp7; //4... 
 delay_ms(5);
 Display(sek);
 PORTB=239;
 PORTD=Disp6;
 delay_ms(5);
 PORTB=223;
 PORTD=Disp7;
 delay_ms(5);
 };
}

Ссылка на комментарий
Поделиться на другие сайты

Гашения индикаторов нет. Вот и вся проблема.

Да и вообще, какая-то кривая реализация индикации.

Почему именно в основном цикле ? Почему не в таймер запихнуть, а цикл освободить для остальных тяжёлых операций ?

Что за магические числа

 Dig[0] = 95; // Сейчас у нас схема с общим катодом
 Dig[1] = 24;
 Dig[2] = 109;
 Dig[3] = 124;
 Dig[4] = 58;
 Dig[5] = 118;
 Dig[6] = 119;
 Dig[7] = 28;
 Dig[8] = 127;
 Dig[9] = 126;

?

Как по ним вообще можно проверить, что значения соответствуют необходимым сегментам ? Почему не константы в ROM ?

Ссылка на комментарий
Поделиться на другие сайты

Всем Спасибо за помощь! Поставил больше задержку как советовали - ВСЁ РАБОТАЕТ.

Что за магические числа

Dig[0] = 95; // Сейчас у нас схема с общим катодом

Dig[1] = 24;

Dig[2] = 109;

Dig[3] = 124;

Dig[4] = 58;

Dig[5] = 118;

Dig[6] = 119;

Dig[7] = 28;

Dig[8] = 127;

Dig[9] = 126;

Не Я автор кода, но как я понял в шестнадцатеричной системе это:

{

0x3f, //0

0x06, //1

0x5b, //2

0x4f, //3

0x66, //4

0x6d, //5

0x7d, //6

0x07, //7

0x7f, //8

0x6f //9

};

Ссылка на комментарий
Поделиться на другие сайты

в шестнадцатеричной системе это:

{

0x3f, //0

0x06, //1

0x5b, //2

0x4f, //3

0x66, //4

0x6d, //5

0x7d, //6

0x07, //7

0x7f, //8

0x6f //9

};

"Хрен редьки не слаще" © :)

Но если автор - не Вы, то вопрос отпадает :)

Ссылка на комментарий
Поделиться на другие сайты

Ну хорошо, что все заработало наконец! А код и вправду индийский)))

Вместо биполярных NPN я бы еще посоветовал поставить MOSFETы N канальные. Для МК не так напряжно будет. Но и с биполярными тоже должно работать...

В мире нет ничего особенного. Никакого волшебства. Только физика.

Ссылка на комментарий
Поделиться на другие сайты

Ребята, а как Вам такая реализация?

#include <mega8.h>
#include <delay.h>
static flash unsigned char Dig[10] =
{
 0xC0, //0
 0xF9, //1
 0xA4, //2
 0xB0, //3  
 0x99, //4
 0x92, //5
 0x82, //6
 0xF8, //7  
 0x80, //8
 0x90  //9   
};
unsigned char n;
void convertion(unsigned char number)
{
unsigned char des=0;
while(number>=10)
{
 number-=10;
 des++;
 }

 if(n==0)
 {
 PORTB.0=1;
 PORTD=Dig[des];
 delay_ms(5);
 PORTB.0=0;
 PORTB.1=1;
 PORTD=Dig[number];
 delay_ms(5);
 PORTB.1=0;
 n=1;
 }
 else
 {

 PORTB.2=1;
 PORTD=Dig[des];
 delay_ms(5);
 PORTB.2=0;
 PORTB.3=1;
 PORTD=Dig[number];
 delay_ms(5);
 PORTB.3=0;
 n=0;
 }
}

 void main(void)
 {

 PORTB=0x00;
 DDRB=0xFF;

 PORTD=0x00;
 DDRD=0xFF;
while (1)
   {
   convertion();
   convertion();
   }
}

Ссылка на комментарий
Поделиться на другие сайты

А Вам ? :)

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

ЗЫ: Вы изобретаете велик. Посмотрите как это делают другие. Ищите код с индикацией в обработчике прерываний от таймера.

Ссылка на комментарий
Поделиться на другие сайты

static flash

Такая запись лишена смысла, так как во флеш пишутся только константы. Начинающие страсть как любят использовать delay. Наверно потому, что на Си он очень просто и наглядно реализуется. Я начинал с ассемблера, поэтому сразу все временные интервалы делал через прерывание таймера.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...