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

4 X (7 Сегментные Led + 74Hc595)


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

Здравствуйте. Очень нужна ваша помощь, а то нахожусь на грани отчаянья.

Дано:

4 х 7 сегментных индикатора SA15-11SRWA (общий анод)

4 х микросхемы 74HC595N

220Ом резисторы

100nF конденсаторы

стабилизатор 7805CT

Вопрос:

http://www.sqlskills...t-displays.aspx

Захотел собрать такую штуку, а она не работает (загораются сегменты в произвольном порядке, вне зависимости от кода).

Собирал всё в точности как на схеме (вывод из 74HC595N идёт к А - веду именно к индикаторной ноге А по даташиту), использовал тот же код, изменял код (менял g_digits [N] в разных вариантах, включая Bxxxxxxxx; делал вставки в код на мигание одного светодида - мигал). Питание от ИП со стабилизатором 7805CT, менял на питание от платы arduino - эффекта нет. Пробовал включать отдельно (1 индикатор на 1 микросхему 74HC595N) - всё работало => нет неисправных деталей. Собирал и на breadboard'е, и на вытравленной плате.

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

Буду крайне признателен за помощь и советы

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

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

(общий анод)

А на схеме, общий катод. Инвертируй сигнал на пине 4 адурины.

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

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

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

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

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

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

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

А на схеме, общий катод.

Не знаю что на это ответить. Просто посыпаю голову пеплом... ))

Инвертируй сигнал на пине 4 адурины.

А как это правильнее сделать? Посмотрел/погуглил - страшно сделать неправильно.

Не сочтите наглостью, просто боюс сжечь плату =\

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

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

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

А как это правильнее сделать?

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

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

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

Тогда брать с общим катодом.

К сожалению, это не вариант. По-крайней мере на данный момент )

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

Про сложнее: как я понял это значит изменить блок g_digits [N] на противоположные значения?

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

Вообще дурацкое подключение сегментников на схеме. Сопротивление нужно ставить не одно на катоде, а 7 - на сегментах. А катод вешать на минус без оного.

Для анода - вешаем его на плюс, ставим сопротивления на сегменты, и ивертируем данные в таблице.

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

Спасибо всем за советы!

Немного занят был, но сегодня получилось заняться снова и запустить.

Правда с одним индикатором (перемычек мало для breadboard'а) =\ , но это мелочи.

1. С транзисторами недопонял немного какие брать и как подключить. Пошёл вновь по схеме

2. Исправил свои пару недочетов в сборке (каюсь, был недостаточно внимателен)

3. Инвертировал таблицу символов

 // Setup the digits array
 // a = 8 b = 4 c = 2 d = 64 e = 32 f = 1 g = 16
 g_digits [0] = 16; //1 + 2 + 4 + 8 + 32 + 64;
 g_digits [1] = 1 + 8 + 16 + 32 + 64; //2 + 4;
 g_digits [2] = 1 + 2; //4 + 8 + 16 + 32 + 64;
 g_digits [3] = 1 + 32; //2 + 4 + 8 + 16 + 64;
 g_digits [4] = 8 + 32 + 64; //1 + 2 + 4 + 16;
 g_digits [5] = 4 + 32; //1 + 2 + 8 + 16 + 64;
 g_digits [6] = 4; //1 + 2 + 8 + 16 + 32 + 64;
 g_digits [7] = 1 + 16 + 32 + 64; //2 + 4 + 8;
 g_digits [8] = 0; //1 + 2 + 4 + 8 + 16 + 32 + 64;
 g_digits [9] = 32; //1 + 2 + 4 + 8 + 16 + 64;
} // setup

4. Заработало!

5. Заказал индикаторов с общим катодом (нынешнюю сборку сделаю тестовой, а следующую уже ОТ и ДО нормально сделаю, включая корпус)

Вообще дурацкое подключение сегментников на схеме. Сопротивление нужно ставить не одно на катоде, а 7 - на сегментах. А катод вешать на минус без оного.

Для анода - вешаем его на плюс, ставим сопротивления на сегменты, и ивертируем данные в таблице.

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

попробуй uln2003 4штуки

Если честно, недопонял зачем её устанавливать... Можете пояснить в двух словах?

Если питание экономичное, то ULN2004.

А в каком смысле экономичное?

И последнее, возник вопрос: сегменты, которые отключены и не должны светить, немного мерцают. Буду рад совету.

P.s. Ещё раз всех преогромнейше благодарю!

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

А в каком смысле экономичное?

Для ULN2003 ток базы одного ключа, при Uпит=5В, равен 1мА. Помнижить на 28 каналов, 28мА только на управление.

Для ULN2004 - 300mkА. Все каналы - 9мА.

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

немного мерцают. Буду рад совету.
Перенести вот эту строку
digitalWrite (g_pinCommLatch, LOW);

Вперёд, перед этой

digitalWrite (g_pinCommLatch, HIGH);

В итоге должно получиться так

void sendSerialData (
byte registerCount, // How many shift registers?
byte *pValueArray) // Array of bytes with LSByte in array [0]
{
// Signal to the 595s to listen for data
digitalWrite (g_pinCommLatch, LOW);

for (byte reg = registerCount; reg > 0; reg--)
{
 byte value = pValueArray [reg - 1];

 for (byte bitMask = 128; bitMask > 0; bitMask >>= 1)
 {
 digitalWrite (g_pinClock, LOW);

 digitalWrite (g_pinData, value & bitMask ? HIGH : LOW);

 digitalWrite (g_pinClock, HIGH);
 }
}
// Signal to the 595s that I'm done sending
digitalWrite (g_pinCommLatch, LOW);
digitalWrite (g_pinCommLatch, HIGH);
} // sendSerialData

Код, конечно, оставляет желать лучшего :crazy: Вот к чему приводит ардуинобыдлокодописательство :(

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

Для ULN2003 ток базы одного ключа, при Uпит=5В, равен 1мА. Помнижить на 28 каналов, 28мА только на управление.

Для ULN2004 - 300mkА. Все каналы - 9мА.

То есть, чтоб выводы Ардуинины не спалить?

Код, конечно, оставляет желать лучшего :crazy: Вот к чему приводит ардуинобыдлокодописательство :(

Благодарю, но я только учусь. Надо же с чего-то начинать.

Логично получается... Надо обдумать на выходных, проверить смогу только в понедельник =)

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

uln2003,2004 переводят + управления в минус т.е. инвертируют. Я когда изучал управление с arduino регистрами сдвига заметел тоже мерцание всех сегментов или вообще все 8888 горели и мигали. поставил экранчик в два раза меньше и всё пошло. Torolus ты бы примеры управления посмотрел в нете своей конструкцией и начинал с одного семисегментника, а потом уже увеличивал их число. Понимаеш, железо которое у тебя идёт в обвес ардуино надо также плотно изучать как и программирование самого чипа. Fan of the Microchip- на вкус и цвет товарищей нет.(про ардуино)

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

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

Я итак с этого начал. Наигрался с одним индикатором (ставил эти же со сдвиговым регистром, цифры\буквы\отдельные_символы - всё хорошо было, без проблем).

Учитывая, что ТАМ я заметил общий анод и подключал правильно. А тут как клин - забыл про него напрочь... Стыдно, капец ))))

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

Но мало же просто читать, надо и практику усложнять. Вот усложнил на свою голову =\ Подумалось что это немного посложней, оказалось поболее ))

Но вроде начинает получаться, слава Богу. Надеюсь собрать наконец-то часы =)

ULN200x ставятся после 74HC595, поэтому на выходы Дурины никак не влияют. Снижается общее потребление устройства на 20мА.

Понял, ушёл читать. Спасибо за совет!

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

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

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

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

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

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

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

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

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

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

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

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

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