узнать количество светодиодов
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
есть atmega8, к ней подключены сдвиговые регистры 74НС595, к ним соответственно светодиоды, собственно вопрос, как узнать количество светодиодов и самих сдвиговых регистров?
- Реклама
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
а что не понятно то? ну хорошоИС-пытатель писал(а):Поподробнее можно?
вот представьте к контроллеру подключена 74нс595, то бишь сдвиговый регистр, она заняла 3 ноги у контроллера, в то же время к регистру подключено 8 светодиодов и допустим еще одна 74рс595, к ней допустим подключили 5 светодиодов, в итоге мы задействовали 3 ножки контроллера , а управляем 13 светодиодами, всё бы хорошо, если у нас их 13 и останется, а если мы заполним оставшиеся ноги второй 74рс595, у нас получиться уже 16 светиков, я хочу сделать так чтобы не зависимо от того сколько светодиодов или регистров мы подключили кантролер сам узнавал подключённое количество и исходя из него делал уже дальнейшие вычисления, как пример использования некая шкала прибора, способная к расширению/уменьшению(повышению/понижению точности измерений)
То есть Вы хотите, чтобы контроллер угадывал мысли разработчика?
Вам тогда явно не сюда.
Единственное, Вы можете померить общее потребление схемы при помощи АЦП контроллера. И сделать кое-какие выводы. Но точность не велика будет. Или же каким-то образом сообщать контроллеру о типе подключенной нагрузки (но это опять придется задействовать порты). А иначе никак он не угадает, что Вы имели в виду.
Или как вариант, делать перебор регистром в цикле и смотреть, изменилось потребление или нет. Если увеличилось - значит светодиод подключен к ноге. если нет - значит выход пустой. А там уже сплюсовать все пустые и не пустые.
А количество регистров вообще определить сложно. У них потребление маленькое очень.
Вам тогда явно не сюда.
Единственное, Вы можете померить общее потребление схемы при помощи АЦП контроллера. И сделать кое-какие выводы. Но точность не велика будет. Или же каким-то образом сообщать контроллеру о типе подключенной нагрузки (но это опять придется задействовать порты). А иначе никак он не угадает, что Вы имели в виду.
Или как вариант, делать перебор регистром в цикле и смотреть, изменилось потребление или нет. Если увеличилось - значит светодиод подключен к ноге. если нет - значит выход пустой. А там уже сплюсовать все пустые и не пустые.
А количество регистров вообще определить сложно. У них потребление маленькое очень.
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
было бы не плохо если бы он мысли угадывал
я не против использовать для этого ещё пару портов, пусть даже по 1 на регистр, но я не знаю как это реализовать, поэтому и пришёл сюда
измерение нагрузок это не выход слишком много там от температур зависит, погрешностей, кривости рук граждан китайской народной республики и настроение таукитянок, я хочу точно знать количество светодиодов, количество регисторов меня в принципе не очень волнует
зы: совсем забыл сказать про то что светодиоды подключаются снизу вверх и подряд, т.е. нужно по сути нужно узнать первый, последний светодиоды и количество между ними
я не против использовать для этого ещё пару портов, пусть даже по 1 на регистр, но я не знаю как это реализовать, поэтому и пришёл сюда
измерение нагрузок это не выход слишком много там от температур зависит, погрешностей, кривости рук граждан китайской народной республики и настроение таукитянок, я хочу точно знать количество светодиодов, количество регисторов меня в принципе не очень волнует
зы: совсем забыл сказать про то что светодиоды подключаются снизу вверх и подряд, т.е. нужно по сути нужно узнать первый, последний светодиоды и количество между ними
- Реклама
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
можно например узнать сидит ли на ноге регистра светодиод или нет?, если сидит, значит он потребляет что то, значит переходим к следующему.
Так я про что и говорю. ) Меряете общее потребление с помощью АЦП. Затем переключаете свой регистр на след ногу и опять меряете. если есть разница выше определенного порога - значит что-то висит. Если разница небольшая - значит шумы и погрешность АЦП. потом переключаете на следующую ногу и т.д.
А померять общий ток очень просто. Включаете в основную цепь резистор маленького номинала (несколько Ом), делаете от него отвод к ноге АЦП и потом программно меряете падение напряжения на нем (т.е. фактически зная номинал резистора и преобразовав полученное значение в АЦП по закону Ома Вы получаете значение тока). АЦП у AVR довольно-таки точный.
А померять общий ток очень просто. Включаете в основную цепь резистор маленького номинала (несколько Ом), делаете от него отвод к ноге АЦП и потом программно меряете падение напряжения на нем (т.е. фактически зная номинал резистора и преобразовав полученное значение в АЦП по закону Ома Вы получаете значение тока). АЦП у AVR довольно-таки точный.
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
ацп может и точный, резисторы не точные и хорактеристики плывут со временем и даже важно не само число, а факт
обьясните пожалуйста что бы имеете ввиду "Затем переключаете свой регистр на след ногу"
обьясните пожалуйста что бы имеете ввиду "Затем переключаете свой регистр на след ногу"
А как вариант- выход последнего регистра "вернуть" в МК.. И пусть "при инициализации регистра" смотрит, после какого шага ему "ответ" пришел... так можно?
Это, я так понимаю решает вопрос только "сколько регистров".
Я думаю, что самое оптимальное - это пробежаться бегущим активным уровнем (уровень, при котором горит светодиод) и измерять ток - если больше нуля - значит есть подключённый светик. Бежать, пока светики не закончатся
Я думаю, что самое оптимальное - это пробежаться бегущим активным уровнем (уровень, при котором горит светодиод) и измерять ток - если больше нуля - значит есть подключённый светик. Бежать, пока светики не закончатся
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
да в этом есть логика, а как узнать что светики закончились?? может же например сгореть парочкаorinoko писал(а): пробежаться бегущим активным уровнем (уровень, при котором горит светодиод) и измерять ток - если больше нуля - значит есть подключённый светик.
несложно дать количество тактов, явно превышающее количество светиков - например 1000. Или совместить с предложением
как вариант- выход последнего регистра "вернуть" в МК
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
спасибо, а не могли бы вы, что бы не плодить новых тем показать как измерять ток?
1. от +Uпит (5В) на Vref МК. МК настроить на внешний Vref.
2. от +Uпит (5В) через диод (1N4007) и параллельный ему резистор где то на 1к на светодиоды. Диод в прямом включении.
3. от цепи питания светодиодов после цепи (2) на вход АЦП МК
Без нагрузки напряжение на входе АЦП будет равно Vref, т.е. он будет выдавать 0х3FF (так как резистор)
При появлении нагрузки напряжение упадёт на 0,5-0,7 вольт (так как диод)
Просто лень рисовать.
2. от +Uпит (5В) через диод (1N4007) и параллельный ему резистор где то на 1к на светодиоды. Диод в прямом включении.
3. от цепи питания светодиодов после цепи (2) на вход АЦП МК
Без нагрузки напряжение на входе АЦП будет равно Vref, т.е. он будет выдавать 0х3FF (так как резистор)
При появлении нагрузки напряжение упадёт на 0,5-0,7 вольт (так как диод)
Просто лень рисовать.
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
А не получится ли у Вас так, что на диоде будет в любом случае падать 0,7 Вольта? Если Диод выкинуть, то как раз будет падение напряжения раза в два.orinoko писал(а):1. от +Uпит (5В) на Vref МК. МК настроить на внешний Vref.
2. от +Uпит (5В) через диод (1N4007) и параллельный ему резистор где то на 1к на светодиоды. Диод в прямом включении.
3. от цепи питания светодиодов после цепи (2) на вход АЦП МК
Без нагрузки напряжение на входе АЦП будет равно Vref, т.е. он будет выдавать 0х3FF (так как резистор)
При появлении нагрузки напряжение упадёт на 0,5-0,7 вольт (так как диод)
Просто лень рисовать.
Хотя вряд ли, наверное.. Ток потребления АЦП маленький... не хватит, чтобы открыть диод.. Но в любом случае, без диода будет лучше. Меньше элементов и падение напряжения больше.
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
покажите как без диода?ИС-пытатель писал(а):Но в любом случае, без диода будет лучше
Без диода лучше не будет. Объясняю, как для чайников. Не забываем, что входное сопротивление АЦП достаточно большое и Rвх >> R1.
Вариант 1. Все светодиоды выключены. Ток через светодиоды равен 0. Значит падение напряжения на резисторе будет около нуля, т.е. меньше, чем на диоде, а значит на входе АЦП напряжение близко к Uпит (5В).
Вариант 2. Хоть 1 светодиод включен. Тогда падение на R1 будет больше напряжения открытия диода, диод откроется и ограничит падение в цепи питания светодиодов до (Uпит - 0,6В).
Увеличение количества включённых диодов практически не будет влиять на падение напряжения на диоде и, таким образом, яркость отдельно взятого диода практически не изменится независимо от их количества.
А теперь домашнее задание: Как себя поведёт схема если диод убрать?
Вариант 1. Все светодиоды выключены. Ток через светодиоды равен 0. Значит падение напряжения на резисторе будет около нуля, т.е. меньше, чем на диоде, а значит на входе АЦП напряжение близко к Uпит (5В).
Вариант 2. Хоть 1 светодиод включен. Тогда падение на R1 будет больше напряжения открытия диода, диод откроется и ограничит падение в цепи питания светодиодов до (Uпит - 0,6В).
Увеличение количества включённых диодов практически не будет влиять на падение напряжения на диоде и, таким образом, яркость отдельно взятого диода практически не изменится независимо от их количества.
А теперь домашнее задание: Как себя поведёт схема если диод убрать?


