Программирование 24 индикаторов?

sonmax
Онлайн
Зарегистрирован: 30.06.2013

Добрый день, есть проблемка.

Собрал что-то типа панели из 24 семисегментных индикаторов.

Сами индикаторы разные: 3-х разрядные, 1-разрядные , и еще один 4х разрядный с динамической индикацией.

Все подключил каскадом через четыре 74HC595 регистра. Библиотека SPI.h.

Проблема в следующем: когда все начинают светится  - ОЧЕНЬ тускло получается.

Как это можно исправить?

Спасибо.

maksim
Offline
Зарегистрирован: 12.02.2012

Сделайте поярче.

sonmax
Онлайн
Зарегистрирован: 30.06.2013

???  Не очень понял. Как?

На сколько я понимаю, зажигание каждого сегмента делается по такому принципу:

digitalWrite(reg, LOW);
SPI.transfer(pos_dig[1]);  // номер сегмент. индикатора
SPI.transfer(digit[5]);    // отображение цифры
digitalWrite(reg, HIGH);
delay(del);

соответственно если зажечь 4 индик. - то они светят ярко, т.к. задержка небольшая.

 Если 24, то яркость сильно падает.

 

maksim
Offline
Зарегистрирован: 12.02.2012

sonmax пишет:

???  Не очень понял. Как?

Может тут знают как. А мне и никому кто читает эту тему не видно, что и как у вас подключено и какой код вы в дуину заливаете.

Почитайте темку, если не понимаете на что я вам намекаю.

sonmax
Онлайн
Зарегистрирован: 30.06.2013

Я конечно дико извиняюсь, что отнял у Вас драгоценное время ( ведь на поиск таких  сайтов "http://z90.ru/forum/index.php" нужно время). 

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

Вместо этого хотел попросить у Специалистов решение проблемы. И по-моему основную информацию предоставил.

4 регистра через каскад - думаю знающим людям это понятно. (для подключения к ардуине используются всего 3 провода) используемая библиотека и код зажигания написал.

Единственно что не написал, что подключаю индикаторы напрямую к ардуине.

А проблема все таже

Малое количество индикаторов светится ЯРКО, большое количество - тускло.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

sonmax пишет:

Единственно что не написал, что подключаю индикаторы напрямую к ардуине.

А проблема все таже

Малое количество индикаторов светится ЯРКО, большое количество - тускло.

Давайте я угадаю... если двигатель от моторолера установить в легковую машину, то машина едет медленно и двигатель сильно греется и ломается... но когда двигатель на моторолере, то моторолер же носится быстро.. в чем же проблема? :)

maksim
Offline
Зарегистрирован: 12.02.2012

sonmax пишет:

Вместо этого хотел попросить у Специалистов решение проблемы. И по-моему основную информацию предоставил.

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

__Alexander
Offline
Зарегистрирован: 24.10.2012

sonmax пишет:

 И по-моему основную информацию предоставил.

Так по-моему вам основной ответ и предоставили...  

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

дык чего тут гадать то? если несколько лампочек горит ярко, а много лампочек горит тускло.. уже даже пьяным ежикам в лесу понятно что напряжения просаживается.... вы бы еще плазменую панель от ардуино запитали :) и спрашивали чего она там скачко образно плазму поджигает...

Клапауций
Offline
Зарегистрирован: 10.02.2013

Puhlyaviy пишет:

дык чего тут гадать то? если несколько лампочек горит ярко, а много лампочек горит тускло.. уже даже пьяным ежикам в лесу понятно что напряжения просаживается.... вы бы еще плазменую панель от ардуино запитали :) и спрашивали чего она там скачко образно плазму поджигает...

Не факт - сейчас топикстартер заявит, что вы у него драгоценное время своими безосновательными догадками отбиратете и ардуино питается от киловатного блока питания.

(с) пьяные коньяком ёжики

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Клапауций пишет:

Не факт - сейчас топикстартер заявит, что вы у него драгоценное время своими безосновательными догадками отбиратете и ардуино питается от киловатного блока питания.

(с) пьяные коньяком ёжики

Да я уже даже уверен, что у него своя атомная станция которая питает Ардуино...

(С) Ёжик проводящий совещание с 3 бутылками вина под шашлык из лисы
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-ash4/1048187_471416206...

фотограф был немного не в фокусе, но вроде торт со свечками видно ясно.. 120 лет аднака!

maksim
Offline
Зарегистрирован: 12.02.2012

Puhlyaviy пишет:

дык чего тут гадать то?

Мало вы изучили динамическую индикация.... поизучайте, почитайте, подумайте...

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

maksim пишет:

Puhlyaviy пишет:

дык чего тут гадать то?

Мало вы изучили динамическую индикация.... поизучайте, почитайте, подумайте...

ну я как бы и не настаиваю, но это первое что бы я проверил, а то я видел одного.. он 30 метров светодиодных лент повесил на вроде бы большой трасформатор. только ленты соединил все в одну... и бегал удивлялся что это так все не равномерно светится :)

maksim
Offline
Зарегистрирован: 12.02.2012

Смотрим:

Видим - 4 цифры, в один момент времени горит только одна цифра, то есть на каждую цифру затрачено 1/4 времени свечения всего индикатора - то есть 25% периода.
А теперь представьте 10 таких цифр, и так же в один момент времени горит толька одна цифра. Получим 1/10 от всего времени - то есть 10% периода. 

Теперь подытожим. Ничего не напоминает? Например ШИМ. Так а теперь скажите какой светодиод будет светить ярче: с 10% заолнения периода или 25% ?

Так что для вас "дык чего тут гадать" - и это только по аппаратной части, а еще вариантов 5 - 10 по программной части может быть.

Но так ТС все знает, и уже все решил, то пусть ждет своего спецэкстрасенса.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

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

- Чаинки не умеют предсказывать будущее, это всем известно. 

- Кроме самих чаинок. 

- Ну да, нужно быть совсем слабоумной, чтобы спорить с чайной заваркой. 

(С) Пратчетт :)

sonmax
Онлайн
Зарегистрирован: 30.06.2013

Блин, ребята.

Ну просто смех, такую активность бы и на дело, а то столько мусора и слюней да впустую.

Ну кто ж спорит, что Вы гуру в програмировании ардуины и электроники.

Я в этом деле пока "чаинка в чайнике", (хотя владею пятью языками программирования, ну это так к слову).

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

единственно maksim ответил по делу:

maksim пишет:

Видим - 4 цифры, в один момент времени горит только одна цифра, то есть на каждую цифру затрачено 1/4 времени свечения всего индикатора - то есть 25% периода.
А теперь представьте 10 таких цифр, и так же в один момент времени горит толька одна цифра. Получим 1/10 от всего времени - то есть 10% периода.

Это я и имел ввиду, и просил помощи как это решается, программно или аппаратно.

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

ну так вы же гуру в 5 языках :)

и понимаете уже что в один период времени горит только один сегмент :)

продалжайте свои расуждения дальше... 

сегментов много.. в один момент времени может гореть только один...

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

а дальше опять начинаются гадания..

мы ж не видим вашего кода, чего вы там нагородили...

не видим вашей схематики чего вы там насоединяли...

пойду чаинок поспрашаю

__Alexander
Offline
Зарегистрирован: 24.10.2012

так дык. вы в первом посте указали что с динамической индикацией только один 4-х разрядный индикатор. следовательно, можно предположить что все остальные подключены напрямую к 595. А сама по себе 595 вполне себе может быть статичной. Записал и всё. Так что вы таки не полностью раскрыли суть вопроса.

step962
Offline
Зарегистрирован: 23.05.2011

Puhlyaviy пишет:

сегментов много.. в один момент времени может гореть только один...

Если вы имели в виду не разряд, а именно сегмент, то:

Ну почему же - и семь сегментов одновременно гореть могут - цифра "8".

И даже больше - если замусоленная здесь динамическая индикация не выходит за пределы одного модуля (1-, 2-, 3- или 4-разрядного). Лишь бы сдвиговых регистров хватило...

__Alexander пишет:

так дык. вы в первом посте указали что с динамической индикацией только один 4-х разрядный индикатор. следовательно, можно предположить что все остальные подключены напрямую к 595. А сама по себе 595 вполне себе может быть статичной. Записал и всё. Так что вы таки не полностью раскрыли суть вопроса.

Именно поэтому:

sonmax пишет:

Блин, ребята.

Ну просто смех, такую активность бы и на дело, а то столько мусора и слюней да впустую.

[...]

sonmax
Онлайн
Зарегистрирован: 30.06.2013

step962 пишет:

Если вы имели в виду не разряд, а именно сегмент, то:

Извиняюсь разряд, который отображает цифру.

__Alexander пишет:

так дык. вы в первом посте указали что с динамической индикацией только один 4-х разрядный индикатор. следовательно, можно предположить что все остальные подключены напрямую к 595. А сама по себе 595 вполне себе может быть статичной. Записал и всё. Так что вы таки не полностью раскрыли суть вопроса.

Не буду спорить, но я имел ввиду следующее:

3х разрядный (статический) 28 ног. если ноги отвечающие за сегменты запитать на один регистр, а за включение разрядов на другой получается - динамический. таких индикаторов 5 штук.

1х разрядный - 5 штук.

4х разрядный - 1шт.(динамический),

т.к. все пины со всех индикаторов отвечающие за сегменты запараллелены, т.е. один 595 на отображение сегментов, остальные три 595 отвечают за включение разрядов.

я так понимаю при таком подключении через 595, неважно динамический или статич. индикатор. разница в кол-ве ножек.

далее регистры включены каскадом, т.е. на ардуино приходит всего 3 провода управления . +5v и земля.

да код пока простецкий, для теста. если выполнить один любой цикл, то отобразится только 8 цифр на определенном регистре. и яркость будет приемлемая.

в таком виде все сегменты отображают пять. а так уже тускло.

for(int i==0; i<8; i++){
digitalWrite(reg, LOW);
SPI.transfer(pos_dig[25]);  // не существующий номер индикатора
SPI.transfer(pos_dig[25]);  // не существующий номер индикатора
SPI.transfer(pos_dig[i]);   // номер разряда индикатора
SPI.transfer(digit[5]);     // отображение цифры
digitalWrite(reg, HIGH);
}
for(int i==0; i<8; i++){
digitalWrite(reg, LOW);
SPI.transfer(pos_dig[25]);  // не существующий номер индикатора
SPI.transfer(pos_dig[i]);   // номер разряда индикатора
SPI.transfer(pos_dig[25]);  // не существующий номер индикатора
SPI.transfer(digit[5]);     // отображение цифры
digitalWrite(reg, HIGH);
}
for(int i==0; i<8; i++){
digitalWrite(reg, LOW);
SPI.transfer(pos_dig[i]);   // номер разряда индикатора
SPI.transfer(pos_dig[25]);  // не существующий номер индикатора
SPI.transfer(pos_dig[25]);  // не существующий номер индикатора
SPI.transfer(digit[5]);     // отображение цифры
digitalWrite(reg, HIGH);
}

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

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

Максим там чего то про шим рассказал - дык, 74HC595 должен хранить своё состояние в момент отсутствия опроса контроллера, т.е. находиться в статическом состоянии, а не тупо отключать индикаторы.

__Alexander
Offline
Зарегистрирован: 24.10.2012

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

и попробовать выводить не в цикле, а в прерывании таймера.

sonmax
Онлайн
Зарегистрирован: 30.06.2013

Клапауций пишет:

74HC595 должен хранить своё состояние в момент отсутствия опроса контроллера, т.е. находиться в статическом состоянии, а не тупо отключать индикаторы.

Об этом я не знал, если можно по подробнее.

__Alexander пишет:

и попробовать выводить не в цикле, а в прерывании таймера.

спасибо, об этом я не подумал наверное это правильный вариант.

хотя на мой взгляд выполнение For должно быть быстрее чем loop, т.е. чем частота проца

P.S.

трудно менять мышление с линенйного на циклическое программирование.

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

sonmax пишет:
Об этом я не знал, если можно по подробнее.

Первый попавшийся пример из гугла - http://www.rlocman.ru/shem/schematics.html?di=65110

Пока на выводе 12 (ST_CP, иногда обозначается как RCLK) низкий уровень, данные записываются в регистр сдвига. Когда уровень переходит в высокий, данные из сдвигового регистра фиксируются в регистре хранения, из которого поступают на выводы Q0…Q7.

Иначе, зачем вообще эта микросхема нужна?