Всем привет. Вопрос наверно глупый, но я только начинаю изучать электронику, так что сильно не пинайте)
Собственно изучая вопрос расширения кол-ва портов у Arduino наткнулся на сдвиговые регистры. Во многих примерах для наглядности через регистр зажигают 8 светодиодов, а если выстраивают регистры каскадом то число светодиодов пропорционально растет. Подскажите где я не прав.
Смотрю даташит на микросхему 74HC595, там написано: "There is another limit: the 74HC595 must not provide more than 70mA in total." Если светодиоды съедают по 10-15mA, не сожжет ли это порт ? А если подключить допустим десяток таких регистров, не будет ли превышения по току на пине самой Arduino.
Возьмите горсть китайских новые светодиодов, которые имеют высокую яркость и работают с низким током. Подключайте сколько хотите, с ИС ничего не происходит. Пример: к любым микроконтроллерам на рабочем столе при необходимости включаю светодиод 3 mm с 1 kOhm. Горит ярко. А ток: напр. (5 - 1,85) / 1000 = 3,15 mA. И с 8 светодиодами будете далеко от максимально допустимого тока ИС.
Спасибо. А если, допустим, есть задача подключить каскадом до 10 микросхем 74HC595 для световой индикации около 80, плюс минус 5мм светодиодов. Каждый будет включаться в ответ на определенное событие. Если регистры 74HC595 выдержат по току, то Arduino, так понимаю, уже не сможет дать такой ток ? Как в таком случае будет лучше обеспечить питание для индикации ?
[uquote="asus2015",url="/forum/viewtopic.php?p=4388372#p4388372"]А что на выходе планировалось такое? Ну то есть что эта схема долна делать?[/uquote]
Кокпит для авиасимулятора. Пока что хочу попробовать собрать overhead. Такой долгострой в самообразовательных целях. Пока что думаю как лучше сделать индикацию для таких панелек(обвел синим):
Ну и 3 десятка 7-сегментных индикаторов. Под них думал сразу такие сборки поставить. Портов много не займут и также можно каскадом подключить на сколько понял.
Не знаю конечно на сколько реально на одну ардуину повесить ещё и все эти тумблеры, энкодеры, шаговики, под них хотел ещё расширить порты регистрами 74HC165. Несколько ардуин на эту панель использовать по возможности не хотелось бы. Кто-то такую панель на 6-8 мега2560 собирает не парясь с нехваткой портов.
В принципе, скорость передачи информации не так чтобы и критична, данные могут хоть 1-2 секунды добираться. Но как смотрел статьи по регистрам, работают они весьма быстро даже в каскаде. Да и в Ардуине вычислять по сути ничего не надо, только считывать или заполнять биты в регистрах. Обработкой полученных данных уже программа на компьютере займется.
Для "длинных регистров", да еще и с "силовой" нагрузкой более актуальными будут время задержки для передачи сигнала и развязка путей "силового" и "сигнального" токов при наличии длинных шлейфов межплатных соединений.
Как пример подобного решения мои старые регистровые сборки для светодиодной анимации: https://img.radiokot.ru/files/20529/hkjedehd8.JPG https://img.radiokot.ru/files/20529/hkjbckakx.JPG https://img.radiokot.ru/files/20529/hkjb4s72g.JPG
но там всего 8 регистров и расстояние не слишком большое (то, что проверенно на практике).
Более рациональным было бы применение ленты на основе WS2812 (и подобных "умных светиков").
[uquote="veso74",url="/forum/viewtopic.php?p=4388303#p4388303"]Требуется время для последовательной передачи такого количества информации.[/uquote] Лошади кушают овёс и сено. Волга впадает в Каспийское море. Дважды два будет четыре.
Ну и напоследок: время требуется для любой передачи любого количества информации. Особенно на Ардуине, которая для заполнения 8-разрядного порта (что процессор выполнил бы двумя командами по 1 такту каждая) будет 8 раз вызывать подпрограмму вывода одного бита.
Тем не менее последовательная передача данных в 595-е регистры и им подобные применялась ещё в 80-х годах прошлого века в профессиональных магнитофонах. Там каскадировали по 5-8 регистров, центральный процессор 6803 работал на частоте 1 МГц и ничего, всех устраивало и до сих пор устраивает. Время реакции человека не бывает меньше 0.1 секунды, и за этот промежуток даже Ардуина успеет проделать огромную работу. При решении поставленной топикстартером задачи выбранный им же вариант из 2 регистров по быстродействию более чем достаточен. И даже 8 регистров его не затормозят.
В таком "табло" все же предпочтительно на каждый субдисплейчик (цифровые семисегментники, всяко движки и прочие "поля кнопок/тумблеров") по собственному МК малолапому поставить.
А уж связь между ними по какому-либо малопроводному (I2C, SPI, uLan или еще чему) физическому интерфейсу да со своим протоколом адресации сооружать.
Управлять же всеми "периферийными головами" можно и с одной адуринки.
Иначе проблем с развязкой сигналов управления и питания не избежать.
Можно глянуть в сторону tpic6595 если надо что то чутка помощнее мелких светодиодов питать.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
[uquote="Eats",url="/forum/viewtopic.php?p=4388511#p4388511"]Лошади кушают овёс и сено...[/uquote]
С SPI пофигу на количество, потому как наиболее шустро. Хотя, тут даже скорость не на первом месте. Всё реально. Даже с ТАКИМ кол-вом индикаторов.
[uquote="Martian",url="/forum/viewtopic.php?p=4388673#p4388673"]Тактовая частота 74НС595 описана в даташите и составляет десятки мегагерц[/uquote]
Более того. Китайцы подключают 595 к LED без токоограничивающих резисторов. И ничё.
На даташит имеет смысл ориентироваться. На китайцев - нет. Если только Вы не ошиблись, спутав со регистрами-драйверами для светодиодов типа STP08DP05, MBI5026...
[uquote="veso74",url="/forum/viewtopic.php?p=4388535#p4388535"]Eats, в четвертом сообщении не знали, где будет использоваться 10 х 74HC595.[/uquote]Дык тем, кто в четвёртом не знали, надо было прочитать всего лишь первое сообщение темы. В нём указано, что всё это делается для светодиодов, то есть для индикации. А индикация (даже если она динамичная типа бегущих огней) изначально предназначена для восприятия человеком, так что быстродействия в 0.1 сек более чем достаточно. Дважды два — четыре!
[uquote="Martian",url="/forum/viewtopic.php?p=4388692#p4388692"]На даташит имеет смысл ориентироваться. На китайцев - нет. Если только Вы не ошиблись...[/uquote]
Конечно ошибся. https://thinkrobotics.com/products/4-bi ... t-register
Картинка в самом первом сообщении - дикий ужас. Ни в коем случае не питайте 595-е от ардуины. Для них сделайте отдельное питалово, например от обычного зарядника для смартфона (+5В). Самое главное шину GND с пина Ардуины соединить с пином GND той микры куда будет подключаться линия данных.
Как раз таки картинка в 1-м сообщении вполне рабочая. Пару конденсаторов 0.1 по питанию только желательно. Ну и следите за нагревом 7805 при питании от БП.