- (4 Страниц)
- 1
- 2
- 3
- →
- Последняя »
Реобас с цифровой индикацией. Как ???
#1
Отправлено 25 Январь 2006 - 18:24
За основу была взята статья с Modlabs.net - "Самодельный реобас с индикацией скорости вращения кулеров".
Там написано что можно спаять схему диодной матрицы и подключить к уже существующей, и тогда вместо светодиодов (а может и вместе с ними) будут загораться цифры 1,2,3,….,9. Тоже круто будет.
Я сегодня стартанул в радиомагазин и приобрел индикатор. Прозвонив его я окончательно запутался Как сделать так чтобы вместо светодиодов загорались циферки
#2
Отправлено 26 Январь 2006 - 05:40
An-droid сказал:
За основу была взята статья с Modlabs.net - "Самодельный реобас с индикацией скорости вращения кулеров".
Там написано что можно спаять схему диодной матрицы и подключить к уже существующей, и тогда вместо светодиодов (а может и вместе с ними) будут загораться цифры 1,2,3,….,9. Тоже круто будет.
Я сегодня стартанул в радиомагазин и приобрел индикатор. Прозвонив его я окончательно запутался Как сделать так чтобы вместо светодиодов загорались циферки
На заборе много чего пишут, нельзя же всему написанному верить
А если серьезно, то из той схемы сделать то, что ты хочешь можно, только проще ее сделать заново.
Прикинем как можно сделать?
1. Микросхему LM3914 нужно включить в режим индикации "точка"
2. Для перевода сигнала с выхода LM3914 в код 7-сегментного индикатора можно пойти тремя путями
- сделать схему перекодировки позиционного кода в код индикатора, т.е использовать микросхемы "шифратор позиционного кода -> в двоичный код" и "дешифратор двоичного кода в код 7 индикатора", если вторые попадаются довольно часто, то с шифраторами живьем не сталкивался,
- сделать "дешифратор позиционного кода в код 7 индикатора" на диодах, вроде бы самый простой вариант, но много недостатков - нужна куча диодов, можно в них не запутаться, и ГЛАВНОЕ - яркость свечения цифр будет зависеть от количества горящих сегментов, т.е. будет меняться
- взять какую-нибудь микросхему ПЗУ с объемом не меньше 8 кбайт и организацией 1К*8 и сделать все на ней; первое,что пришло на ум - это микросхемы 2716, 2732, 2764 и т.п. Потребуется только прошить в ПЗУ 10 чисел. САМЫЙ ПРОСТОЙ ВАРИАНТ из перечисленных.
Недостатки всех вариантов-либо громозкость схемы, либо достаточно
дорого - для 4-х каналов нужно 4 схемы. Цены смотри сам.
Есть еще вариант - сделать все на одном микроконтроллере (мое любимое предложение!), по цене он будет 50-80 рублей, в зависимости от выбора. Ну и программу, конечно, нужно написать.
А тут уже и другой вопрос - если есть мкроконтроллер, то и регулирование можно сделать на нем же, в том числе и переменными резисторами - если очень хочется. А дальше см. ветку "Реобас с кнопками" http://forum.modlabs.net/viewtopic.php?t=7...5b342b9d69027fa
#3
Отправлено 26 Январь 2006 - 08:26
#4
Отправлено 26 Январь 2006 - 09:26
Ant[Y сказал:
49 диодов на КАЖДЫЙ индикатор!
Хотя, при использовании переключателя, можно обойтись "всего" 23 диодами на каждый индикатор, если ГАСИТЬ сегменты, а не зажигать.
Все равно много...
Впрочем, чего гадаем? Неизвестно даже какие индикаторы An-droid прикупил - с общим анодом или катодом. Хоть бы тип указал.
#5
Отправлено 26 Январь 2006 - 11:15
#6
Отправлено 26 Январь 2006 - 13:14
Другой вариант - на ПЗУ и, возможно, еще буферные микросхемы - надо по току выходы ПЗУ смотреть. А ПЗУ можно подключить либо к LM3914, либо так же, к самодельному переключателю.
Ты к чему склоняешься?
А может вообще на микроконтроллере? Например на PIC12F675, PIC16F676, PIC16F72?
#7
Отправлено 26 Январь 2006 - 14:50
ATLab сказал:
А мне собсно все-равно, но только не на микрухах, которые нужно программировать (это я сделать вряд ли смогу).
ATLab, а может ты схемку разработаешь? Заодно на сайте своем статейку повесишь
#8
Отправлено 26 Январь 2006 - 15:39
#9
Отправлено 26 Январь 2006 - 18:14
An-droid сказал:
ATLab сказал:
А мне собсно все-равно, но только не на микрухах, которые нужно программировать (это я сделать вряд ли смогу).
ATLab, а может ты схемку разработаешь? Заодно на сайте своем статейку повесишь
Если совсем ничего не программировать, и диоды лень паять, то остается
- приоритетный шифратор 74HC147 (К555ИВ3),
- после него инверторы 74HC04 (К555ЛН1) либо любые другие схемы с инверсией -74HC00 (К555ЛА3), 74HC02 (К555ЛЕ1)
- плюс дешифратор КР514ИД2 или что-нибудь в этом роде - любой дешифратор двоичного кода в код семи сегментного индикатора с ОБЩИМ АНОДОМ.
Это комплект на 1 индикатор - 3 микросхемы.
И еще реши, откуда будешь брать сигнал - с LM3914, либо с переключателя, как предложил Ant[Y].
Кстати, зря ты отказался от диодов - если использовать переключатель и диоды, никакого изменения яркости не будет. Ну да, громоздкая схема получится, зато диоды можно взять практически любые. В каких-нибудь очень старых калькуляторах или блоках их может быть тьма. А тебе их надо-то всего 92
#10
Отправлено 26 Январь 2006 - 19:26
ATLab сказал:
Хотелось бы с LM3914, а то с переключателем не прикольно и геморно.
Итак, я решил делать на диодах. В уме я представляю как это должно быть, но сейчас пытался нарисовать печатную плату с разводкой дорожек - не могу сделать так, чтоб дорожки не пересекались :e как-никак 49 диодов Целый час сидел думал - ничего не выходит Может подскажете как диоды лучше расположить и как разводку сделать, чтоб плата небольшого размера получилась
А может в природе есть индикаторы со встроенными диодами, чтоб они работали как старые лампы на которых раньше часы делали - там подаешь напругу на ножку и загорается сразу цифра, подаешь на другую - другая цифра. Вот оно счастье
P.S. На чем мне лучше собрать реобас: на кренке или транзисторе??? Может кто посоветует хорошую схему реобаса
#11
Отправлено 29 Январь 2006 - 05:44
А LM3914 - 50 рублей штука = 100 диодов
#12
Отправлено 29 Январь 2006 - 06:22
Ant[Y сказал:
Я давно уже говорю, что не использовать сейчас микроконтроллеры - это извращение.
К примеру: берем PIC16F676 с АЦП, и на нем делаем все - и измерение и индикацию. Стоимость - примерно 45 рублей.
Другой пример: для измерения и индикации 4-х каналов возьмем PIC 16F72 - стоимость примерно 65 рублей.
И никаких извращений с диодами, шифраторами, дешифраторами и самопальными переключателями, у которых постоянно будет пропадать контакт.
#13
Отправлено 29 Январь 2006 - 09:21
#14
Отправлено 29 Январь 2006 - 15:14
#15
Отправлено 29 Январь 2006 - 15:36
На ассемблере писал? Если нет опыта, то лучше начинать на C, все же попроще. Но с устройством все рано нужно разбираться, тут никуда не денешься. А забил зря - нужно было отложить, такое часто бывает: бьешься, бьешся - ничего не выходит, а сделаешь перерыв и решение приходит как бы само. Этому есть умное объяснение, но я это испытал на своей шкуре не единожды. Так что, попробуй возобновить проект, возможно все решится...
#16
Отправлено 29 Январь 2006 - 15:45
На C. С моими познаниями в дельфе и php ассемблер показался адом -)). Так сначала отложил, а потом работа закрутила, так что времени вернуться не было. Может на неделе и попробую, если на работу не вызовут...
Развёл и спаял на макетке пару 7ми значек, написал процедуру вывода на них данных. Любое двухзначное число выводится без проблем. А вот с ацп произошла бяка. Он должен был снимать показания температурного датчика на LM335, вроде бы даже правильно снимал, но при превышении непонятного уровня на индикаторы выводился мусор, с чем это связано я так и не понял, да и Pronix`а замучал по этому поводу напрочь -))
#17
Отправлено 29 Январь 2006 - 17:34
Мне сложно что-то посоветовать, не зная всей предистории. Возможно дело в выходе за 2 цифры. Надо было просто проверить: на АЦП подать с переменного резистора, выводить на 2 индикатора в HEX.
Если АЦП 10-битный, отбросить 2 младших разряда.
Я с AVR не знаком, работаю с PIC...
#18
Отправлено 29 Январь 2006 - 20:26
ATLab сказал:
Именно так и делал, когда с датчким не получилось.
ATLab сказал:
У меня вывод не в HEX,десятичной форме, от 00 до 99 был сделан.
фуф, с трудами нашёл исходники
вот вывод
int dig[11]={0xc0,0xf3,0x89,0xa1,0xb2,0xa4,0x84,0xf1,0x80,0xA0,0x00}; void out1(int n); ....... void out1(int n) { int h,l,kc; CLI(); h=n/10; l=n%10; PORTD=0x01; PORTB=dig[l]; for (kc=0;kc<1000;kc++); PORTD=0x02; PORTB=dig[h]; for (kc=0;kc<1000;kc++); SEI(); }
Вот так вот. Хоть, наверное, и не корректно, но функцию свою выполняла, выводила от 00 до 99 всё правильно.
обработка прерывания о выполнении преобразования
value=ADCL; //Read 8 low bits first (important) value|=(int)ADCH << 8; //read 2 high bits and shift into top byte show=ceil(value*5*100/1023-273);
Потом происходило что-то вроде out1(show)
Вот выдержка моих рассуждений, из переписки.
Цитата
Допустим на входе ацп 2.98В. Утрируя, примем что Vref=5В. Получить
должны после преобразования 2.98*1023/5=609.708, около 610, если в десятичных.
Чтобы получить обратно напряжение крутим в обратном направлении
610*5/1023=2.98, домножим на 100- получим в кельвинах, вычтем 273-в
цельсиях, НО. Если на 100 не умножать, в переменной оказывается 2.
Вроде всё правильно, т.к. переменная Value типа int дробные
отбрасываются. Умножаем на 10, получаем 30, как не странно... вычтем
27, получим десятки градусов, выводится 3- всё врено. Если умножаем на
100, получим 298, отнимаем 273 и получаем... что-то непонятное,
по-другому сказать не могу -))). Где косяк в моих рассуждениях ?
Датчик должен был выдавать 10мв на градус, тоесть при нуле по цельсию должно было быть 10*273=2.73в
вот такой вот был затык, который так и не поборолся -(
#19
Отправлено 30 Январь 2006 - 00:01
можно вопрос?
а зачем каждый раз запрещать прерывания, а потом их опять включать?
зачем?
#20
Отправлено 30 Январь 2006 - 00:04
В идеале-чтобы не сбивалась программа вывода. Делал по наитию, опыта ведь никакого...
Поделиться темой:
- (4 Страниц)
- 1
- 2
- 3
- →
- Последняя »